Skip to main content

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')

Environment PATH Variable

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.

Pathier().backup() will create a copy of the path with _backup appended to the stem. If the optional parameter, timestamp, is True, a datetime string will be added after _backup to prevent overwriting previous backup files.

Pathier().replace() will read the file the instance points to, replace the provided old_string with the provided new_string, and then write it back to the file.
Essentially just condenses reading the file, using str.replace(), and then writing the new content into one function call.

Pathier().execute() wraps calling os.system() on the path pointed to be the Pathier instance.
Optional strings that should come before and after the path string can be specified with the command and args params, respectively.
Pathier("file.py").execute("py", "--iterations 10") is equivalent to os.system("py file.py --iterations 10")

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pathier-0.10.0.tar.gz (46.9 kB view details)

Uploaded Source

Built Distribution

pathier-0.10.0-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file pathier-0.10.0.tar.gz.

File metadata

  • Download URL: pathier-0.10.0.tar.gz
  • Upload date:
  • Size: 46.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for pathier-0.10.0.tar.gz
Algorithm Hash digest
SHA256 1b0bf260c1bd6767a1c3f3a98454546b191897ba75965bb79e6ef9928bf6f531
MD5 498220c0963cf07d2a49a2483afc2f7e
BLAKE2b-256 bc206a098331fd9518892b0f8f84434d5659a28e2ad1f9cd0b39dd06d08ec4d8

See more details on using hashes here.

Provenance

File details

Details for the file pathier-0.10.0-py3-none-any.whl.

File metadata

  • Download URL: pathier-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for pathier-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fbbf86624f765b036ad2c09bd1071f102f075998a6b382a93b107a9ceb4cdc45
MD5 a45bb0c63bc9e04675823dcdf2bc060f
BLAKE2b-256 d55e21b54c5220092c75fd25b9a661f93941d14c8429e96fc3e712991495c3b4

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page