FileAttributeMatcher#
- class FileAttributeMatcher(**kwargs)#
Determines if a string matches a file attribute.
Constructors#
- class FileAttributeMatcher
- classmethod new(attributes: str) FileAttributeMatcher#
Creates a new file attribute matcher, which matches attributes against a given string.
FileAttributeMatcherare reference counted structures, and are created with a reference count of 1. If the number of references falls to 0, theFileAttributeMatcheris automatically destroyed.The
attributesstring should be formatted with specific keys separated from namespaces with a double colon. Several “namespace::key” strings may be concatenated with a single comma (e.g. “standard::type,standard::is-hidden”). The wildcard “*” may be used to match all keys and namespaces, or “namespace::*" will match all keys in a given namespace.Examples of file attribute matcher strings and results#
"*": matches all attributes."standard::is-hidden": matches only the key is-hidden in the standard namespace."standard::type,unix::*": matches the type key in the standard namespace and all keys in the unix namespace.
- param attributes:
an attribute string to match.
Methods#
- class FileAttributeMatcher
- enumerate_namespace(ns: str) bool#
Checks if the matcher will match all of the keys in a given namespace. This will always return
Trueif a wildcard character is in use (e.g. if matcher was created with “standard::” and ``ns`` is “standard”, or if matcher was created using “" and namespace is anything.)TODO: this is awkwardly worded.
- Parameters:
ns – a string containing a file attribute namespace.
- enumerate_next() str | None#
Gets the next matched attribute from a
FileAttributeMatcher.
- matches(attribute: str) bool#
Checks if an attribute will be matched by an attribute matcher. If the matcher was created with the “*” matching string, this function will always return
True.- Parameters:
attribute – a file attribute key.
- matches_only(attribute: str) bool#
Checks if an attribute matcher only matches a given attribute. Always returns
Falseif “*” was used when creating the matcher.- Parameters:
attribute – a file attribute key.
- subtract(subtract: FileAttributeMatcher | None = None) FileAttributeMatcher | None#
Subtracts all attributes of
subtractfrommatcherand returns a matcher that supports those attributes.Note that currently it is not possible to remove a single attribute when the
matchermatches the whole namespace - or remove a namespace or attribute when the matcher matches everything. This is a limitation of the current implementation, but may be fixed in the future.- Parameters:
subtract – The matcher to subtract