Path manipulation library
Project description
betterpath, or “bp”, is an adaptation of the classic Twisted FilePath type and interface. bp provides a simple, robust, well-tested object abstraction over file paths, generalizing the concept of file paths beyond filesystems.
File Paths
bp exposes an interface, bp.abstract.IFilePath, for file paths, and provides the following concrete implementations:
bp.filepath.FilePath, for the root filesystem
bp.zippath.ZipPath, for ZIP archives
bp.memory.MemoryPath, for in-memory temporary filesystems
In addition, there are combining abstract file paths which can be wrapped around other file paths:
bp.readonly.ReadOnlyPath, for read-only filesystems
API documentation is available at http://betterpath.rtfd.org/.
Vs. the Competition
os.path
The venerable champ, os.path has been the cause of (and solution to) most of Python’s path problems over the years.
Pros
In the standard library
Cons
Unsafe
Verbose
Operates on strs
No interfaces or ABCs for functionality
Only covers the root filesystem
pathlib
pathlib hopes to carve a path towards greatness through PEP 428.
Pros
Convenient __div__() overloading
Cons
No interfaces or ABCs for functionality
Only covers the root filesystem
Examples
Saving Data to Disk
The Old Way
def save(base, fragments, data): # `fragments` could contain unsafe paths! if ".." in fragments or "." in fragments: raise ValueError("Unsafe paths!") path = os.path.join(os.path.abspath(base), os.sep.join(fragments)) # Alternatively: path = os.path.join(os.path.abspath(base), *fragments) # I hope that this doesn't fail mid-write! Also, did the directories # exist? I think so, yes. with open(path, "wb") as handle: handle.write(data)
The New Way
def save(base, fragments, data): path = base.descendant(fragments) path.parent().makeDirs() path.setContent(data)
Changelog
0.2
Initial release
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.
Source Distribution
File details
Details for the file betterpath-0.2.2.tar.gz
.
File metadata
- Download URL: betterpath-0.2.2.tar.gz
- Upload date:
- Size: 38.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e8d04e884d404dae3e622248e1b9c4b80876e21cd1fbdd76fd50ee0d2cb26fe4 |
|
MD5 | f8242ab4477ef923a4996716fffa467b |
|
BLAKE2b-256 | 7460be35047cf73c77b76aeee08de0a729b745f9f3e6c7393670115f52597e81 |