Extends the standard library pathlib.Path class.
Project description
pathier
Extends the standard library pathlib.Path class.
Installation
Install with:
pip install pathier
Usage
Functions the same as pathlib.Path, but with added functions and some altered default arguments.
Navigation
New paths can be obtained by:
- naming the parent with moveup()
- subtracting a number of levels from the current path
- naming the parent of the path you actually want with move_under()
- separating a relative path at a named parent with separate()
- set current working directory to path
>>> from pathier import Pathier >>> path = Pathier("C:/some/directory/to/some/file/on/the/system") >>> path.moveup("directory") WindowsPath('C:/some/directory') >>> path - 3 WindowsPath('C:/some/directory/to/some/file') >>> path.move_under("directory") WindowsPath('C:/some/directory/to') >>> path.separate("file") WindowsPath('on/the/system') >>> path.separate("file", True) WindowsPath('file/on/the/system') >>> path.mkcwd() >>> Pathier.cwd() WindowsPath('C:/some/directory/to/some/file/on/the/system')
PATH
Pathier objects can be added and removed from sys.path:
(The path will only be added if it isn't already in sys.path)
>>> from pathier import Pathier >>> path = Pathier.cwd() >>> path.in_PATH False >>> path.add_to_PATH(0) >>> path.in_PATH True >>> path.remove_from_PATH() >>> path.in_PATH False >>> path.append_to_PATH() >>> path.in_PATH True
Read and Write
Can dump and load toml and json files without needed to explicityly import and call functions from the respective libraries:
from pathier import Pathier path = Pathier("some_file.toml") content = path.loads() path.with_suffix(".json").dumps(content, indent=2)
Pathier().mkdir()
creates parent directories and doesn't throw an error if the path already exists by default.
Pathier().write_text()
and Pathier().write_bytes()
will create parent directories by default if they won't exist.
Pathier().write_text()
will also try to cast the data to be written to a string if a TypeError is thrown.
Pathier().delete()
will delete a file or directory, event if that directory isn't empty.
Pathier().copy()
will copy a file or a directory tree to a new destination and return a Pathier object for the new path
By default, files in the destination will not be overwritten.
Stats and Comparisons
>>> from pathier import Pathier >>> p = Pathier.cwd() / "pathier.py" >>> i = p.parent / "__init__.py" >>> p.dob datetime.datetime(2023, 3, 31, 18, 43, 12, 360000) >>> p.age 8846.024934 >>> p.mod_date datetime.datetime(2023, 3, 31, 21, 7, 30) >>> p.mod_delta 207.488857 >>> p.size() 10744 >>> p.size(True) '10.74 kb' >>> p.is_larger(i) True >>> p.is_older(i) False >>> p.modified_more_recently(i) True
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.