docs: def create_all_parent_directories(ase, dirs_created, timeout=None):
      # type: (blobxfer.models.azure.StorageEntity, dict, int) -> None
      """Create all parent directories for a file
      :param blobxfer.models.azure.StorageEntity ase: Azure StorageEntity
      :param dict dirs_created: directories already created map
      :param int timeout: timeout
      """
      dirs = pathlib.Path(ase.name).parts
      if len(dirs) <= 1:
          return
      # remove last part (which is the file)
      dirs = dirs[:-1]
      dk = ase.client.account_name + ':' + ase.container
      for i in range(0, len(dirs)):
          dir = str(pathlib.Path(*(dirs[0:i + 1])))
          if dk not in dirs_created or dir not in dirs_created[dk]:
              ase.client.create_directory(
                  share_name=ase.container,
                  directory_name=dir,
                  fail_on_exist=False,
                  timeout=timeout)
              if dk not in dirs_created:
                  dirs_created[dk] = set()
              dirs_created[dk].add(dir)