docs: def _generate_destination_for_source(self, src_ase):
          # type: (SyncCopy, blobxfer.models.azure.StorageEntity) ->
          #        blobxfer.models.azure.StorageEntity)
          """Generate entities for source path
          :param SyncCopy self: this
          :param blobxfer.models.azure.StorageEntity src_ase: source ase
          :rtype: blobxfer.models.azure.StorageEntity
          :return: destination storage entity
          """
          # create a storage entity for each destination
          for sa, cont, name, dpath in self._get_destination_paths():
              if self._spec.options.rename:
                  name = str(pathlib.Path(name))
                  if name == '.':
                      raise RuntimeError(
                          'attempting rename multiple files to a directory')
              else:
                  name = str(pathlib.Path(name) / src_ase.name)
              # translate source mode to dest mode
              dst_mode = self._translate_src_mode_to_dst_mode(src_ase.mode)
              dst_ase = self._check_for_existing_remote(sa, cont, name, dst_mode)
              if dst_ase is None:
                  dst_ase = blobxfer.models.azure.StorageEntity(cont, ed=None)
                  dst_ase.populate_from_local(
                      sa, cont, name, dst_mode, src_ase.cache_control)
                  dst_ase.size = src_ase.size
              # overwrite tier with specified storage tier
              if (dst_mode == blobxfer.models.azure.StorageModes.Block and
                      self._spec.options.access_tier is not None):
                  dst_ase.access_tier = self._spec.options.access_tier
              # check condition for dst
              action = self._check_copy_conditions(src_ase, dst_ase)
              if action == SynccopyAction.Copy:
                  yield dst_ase
              elif action == SynccopyAction.Skip:
                  # add to exclusion set if skipping
                  if self._spec.options.delete_extraneous_destination:
                      uid = (
                          blobxfer.operations.synccopy.SyncCopy.
                          create_deletion_id(
                              dst_ase._client, dst_ase.container, dst_ase.name)
                      )
                      self._delete_exclude.add(uid)
                  if self._general_options.dry_run:
                      logger.info('[DRY RUN] skipping: {} -> {}'.format(
                          src_ase.path, dst_ase.path))