Assorted filesystem related utility functions, some of which have been bloating cs.fileutils for too long.
Latest release 20220805: Doc update.
Function atomic_directory(*da, **dkw)
Decorator for a function which fills in a directory which calls the function against a temporary directory then renames the temporary to the target name on completion.
Parameters:
infill_func: the function to fill in the target directorymake_placeholder: optional flag, defaultFalse: if true an empty directory will be make at the target name and after completion it will be removed and the completed directory renamed to the target name
Function fnmatchdir(dirpath, fnglob)
Return a list of the names in dirpath matching the glob fnglob.
Class FSPathBasedSingleton(cs.obj.SingletonMixin, HasFSPath)
The basis for a SingletonMixin based on realpath(self.fspath).
Class HasFSPath
An object with a .fspath attribute representing a filesystem location.
Function is_clean_subpath(subpath: str)
Test that subpath is clean:
- not empty or '.' or '..'
- not an absolute path
- normalised
- does not walk up out of its parent directory
Examples:
>>> is_clean_subpath('')
False
>>> is_clean_subpath('.')
Function longpath(path, environ=None, prefixes=None)
Return path with prefixes and environment variables substituted.
The converse of shortpath().
Function needdir(dirpath, mode=511, *, use_makedirs=False)
Create the directory dirpath if missing.
Parameters:
dirpath: the required directory pathmode: the permissions mode, default0o777use_makedirs: optional creation mode, defaultFalse; if true, useos.makedirs, otherwiseos.mkdir
Function rpaths(dirpath='.', *, only_suffixes=None, skip_suffixes=None, sort_paths=False)
Yield relative file paths from a directory.
Parameters:
dirpath: optional top directory, default'.'only_suffixes: optional iterable of suffixes of interest; if provided only files ending in these suffixes will be yieldedskip_suffixes: optional iterable if suffixes to ignore; if provided files ending in these suffixes will not be yieldedsort_paths: optional flag specifying that filenames should be sorted, defaultFalse
Function shortpath(path, environ=None, prefixes=None)
Return path with the first matching leading prefix replaced.
Parameters:
environ: environment mapping if not os.environprefixes: iterable of(prefix,subst)to consider for replacement; eachprefixis subject to environment variable substitution before consideration The default considers "$HOME/" for replacement by "~/".
Release Log
Release 20220805: Doc update.
Release 20220530:
FSPathBasedSingleton._resolve_fspath: new envvar and default_attr parameters.
Release 20220429:
- New HasFSPath and FSPathBasedSingleton.
- Add longpath and shortpath from cs.fileutils.
- New is_clean_subpath(subpath).
- New needdir(path).
- New fnmatchdir(dirpath,fnglob) pulled out from HasFSPath.fnmatch(fnglob).
Release 20220327: New module cs.fs to contain more filesystem focussed functions than cs.fileutils, which is feeling a bit bloated.
Release files for cs-fs 20220805
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cs.fs-20220805.tar.gz | 5.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cs.fs-20220805-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.5 kB
Release files / cs.fs-20220805.tar.gz
| Download URL | cs.fs-20220805.tar.gz |
|---|---|
| Size | 5.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ef2b23f334e9f444cba4831474c6e49debc3788638280fa0b3093288abb410db
|
|
BLAKE2b-256 checksum How to use checksums |
3508722c18718d67cca08703ed8566f1dea329db9d3401114326a7cb331fa0f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 pkginfo/1.8.1 readme-renderer/30.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.7 tqdm/4.62.3 importlib-metadata/4.8.2 keyring/23.3.0 rfc3986/1.5.0 colorama/0.4.4 CPython/3.9.13
|
Release files / cs.fs-20220805-py3-none-any.whl
| Download URL | cs.fs-20220805-py3-none-any.whl |
|---|---|
| Size | 5.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8517d632bbc16b24c64b496cf9feb3da3c56084f044abbf28848d6047de6db34
|
|
BLAKE2b-256 checksum How to use checksums |
4f42da5ed513eb28d5ff9aaf959a32e467369f604b5e778ec6a96c4242a09caa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 pkginfo/1.8.1 readme-renderer/30.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.7 tqdm/4.62.3 importlib-metadata/4.8.2 keyring/23.3.0 rfc3986/1.5.0 colorama/0.4.4 CPython/3.9.13
|