An object-oriented path interface to archives, images, remote filesystems, etc
Project description
Pathlab provides an object-oriented path interface to archives, images, remote filesystems, etc. It is built upon pathlib and includes built-in support for:
tar archives
zip archives
iso disc images (inc Rock Ridge; exc Joliet and UDF)
JFrog Artifactory (via requests)
You can also define your own Path subclass with its own accessor.
Installation
Requires Python 3.6+. Use pip:
pip install --user pathlab
Usage
These usage examples are adapted from the pathlib documentation.
Getting a path type:
>>> from pathlab import TarAccessor >>> TarPath = TarAccessor('project.tgz').TarPath
Listing subdirectories:
>>> root = TarPath('/') >>> [x for x in root.iterdir() if x.is_dir()] [TarAccessor('project.tgz').TarPath('/docs') TarAccessor('project.tgz').TarPath('/etc'), TarAccessor('project.tgz').TarPath('/project')]
Listing Python source files in this directory tree:
>>> list(root.glob('**/*.py')) [TarAccessor('project.tgz').TarPath('/setup.py'), TarAccessor('project.tgz').TarPath('/docs/conf.py'), TarAccessor('project.tgz').TarPath('/project/__init__.py')]
Navigating inside a directory tree:
>>> p = TarPath('/etc') >>> q = p / 'init.d' / 'reboot' >>> q TarAccessor('project.tgz').TarPath('/etc/init.d/reboot') >>> q.resolve() TarAccessor('project.tgz').TarPath('/etc/rc.d/init.d/halt')
Querying path properties:
>>> q.exists() True >>> q.is_dir() False
Opening a file:
>>> with q.open() as f: f.readline() ... '#!/bin/bash\n'
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.