fs.info¶
Container for filesystem resource informations.
-
class
fs.info.Info(raw_info, to_datetime=<function epoch_to_datetime>)[source]¶ Container for Resource Info.
Resource information is returned by the following methods:
Parameters: - raw_info (dict) – A dict containing resource info.
- to_datetime (callable) – A callable that converts an
epoch time to a datetime object. The default uses
epoch_to_datetime.
-
__init__(raw_info, to_datetime=<function epoch_to_datetime>)[source]¶ Create a resource info object from a raw info dict.
-
accessed¶ the resource last access time, or
None.Requires the
"details"namespace.Raises: MissingInfoNamespace– if the"details"namespace is not in the Info.Type: datetime
-
created¶ the resource creation time, or
None.Requires the
"details"namespace.Raises: MissingInfoNamespace– if the"details"namespace is not in the Info.Type: datetime
-
get(namespace, key, default=None)[source]¶ Get a raw info value.
Parameters: Example
>>> info = my_fs.getinfo("foo.py", namespaces=["details"]) >>> info.get('details', 'type') 2
-
gid¶ the group id of the resource, or
None.Requires the
"access"namespace.Raises: MissingInfoNamespace– if the"access"namespace is not in the Info.Type: int
-
group¶ the group of the resource owner, or
None.Requires the
"access"namespace.Raises: MissingInfoNamespace– if the"access"namespace is not in the Info.Type: str
-
has_namespace(namespace)[source]¶ Check if the resource info contains a given namespace.
Parameters: namespace (str) – A namespace identifier. Returns: Trueif the namespace was found,Falseotherwise.Return type: bool
-
is_writeable(namespace, key)[source]¶ Check if a given key in a namespace is writable.
When creating an
Infoobject, you can add a_writekey to each raw namespace that lists which keys are writable or not.In general, this means they are compatible with the
setinfofunction of filesystem objects.Parameters: Returns: Return type: Example
Create an
Infoobject that marks only themodifiedkey as writable in thedetailsnamespace:>>> now = time.time() >>> info = Info({ ... "basic": {"name": "foo", "is_dir": False}, ... "details": { ... "modified": now, ... "created": now, ... "_write": ["modified"], ... } ... }) >>> info.is_writeable("details", "created") False >>> info.is_writeable("details", "modified") True
-
make_path(dir_path)[source]¶ Make a path by joining
dir_pathwith the resource name.Parameters: dir_path (str) – A path to a directory. Returns: A path to the resource. Return type: str
-
metadata_changed¶ the resource metadata change time, or
None.Requires the
"details"namespace.Raises: MissingInfoNamespace– if the"details"namespace is not in the Info.Type: datetime
-
modified¶ the resource last modification time, or
None.Requires the
"details"namespace.Raises: MissingInfoNamespace– if the"details"namespace is not in the Info.Type: datetime
-
permissions¶ the permissions of the resource, or
None.Requires the
"access"namespace.Raises: MissingInfoNamespace– if the"access"namespace is not in the Info.Type: Permissions
-
size¶ the size of the resource, in bytes.
Requires the
"details"namespace.Raises: MissingInfoNamespace– if the"details"namespace is not in the Info.Type: int
-
stem¶ the name minus any suffixes.
Example
>>> info = my_fs.getinfo("foo.tar.gz") >>> info.stem 'foo'
Type: str
-
suffix¶ the last component of the name (with dot).
In case there is no suffix, an empty string is returned.
Example
>>> info = my_fs.getinfo("foo.py") >>> info.suffix '.py' >>> info2 = my_fs.getinfo("bar") >>> info2.suffix ''
Type: str
-
suffixes¶ a list of any suffixes in the name.
Example
>>> info = my_fs.getinfo("foo.tar.gz") >>> info.suffixes ['.tar', '.gz']
Type: List
-
target¶ the link target (if resource is a symlink), or
None.Requires the
"link"namespace.Raises: MissingInfoNamespace– if the"link"namespace is not in the Info.Type: str
-
type¶ the type of the resource.
Requires the
"details"namespace.Raises: MissingInfoNamespace– if the ‘details’ namespace is not in the Info.Type: ResourceType
-
uid¶ the user id of the resource, or
None.Requires the
"access"namespace.Raises: MissingInfoNamespace– if the"access"namespace is not in the Info.Type: int
-
user¶ the owner of the resource, or
None.Requires the
"access"namespace.Raises: MissingInfoNamespace– if the"access"namespace is not in the Info.Type: str