datalad_next.iter_collections.utils

Utilities and types for collection iterators

class datalad_next.iter_collections.utils.FileSystemItem(type: 'FileSystemItemType', name: 'PurePath', size: 'int', mtime: 'float | None' = None, mode: 'int | None' = None, uid: 'int | None' = None, gid: 'int | None' = None, link_target: 'PurePath | None' = None, fp: 'IO | None' = None)[source]

Bases: PathBasedItem, TypedItem

fp: IO | None = None
classmethod from_path(path: Path, *, link_target: bool = True)[source]

Populate item properties from a single stat and readlink call

The given path must exist. The link_target flag indicates whether to report the result of readlink for a symlink-type path.

gid: int | None = None
mode: int | None = None
mtime: float | None = None
size: int
type: FileSystemItemType
uid: int | None = None
class datalad_next.iter_collections.utils.FileSystemItemType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: Enum

Enumeration of file system path types

The associated str values are chosen to be appropriate for downstream use (e.g, as type labels in DataLad result records).

directory = 'directory'
file = 'file'
specialfile = 'specialfile'
class datalad_next.iter_collections.utils.NamedItem(name: 'Any')[source]

Bases: object

name: Any
class datalad_next.iter_collections.utils.PathBasedItem(name: 'PurePath')[source]

Bases: NamedItem

name: PurePath
class datalad_next.iter_collections.utils.TypedItem(type: 'Any')[source]

Bases: object

type: Any
datalad_next.iter_collections.utils.compute_multihash_from_fp(fp, hash: List[str], bufsize=65536)[source]

Compute multiple hashes from a file-like