Unipath 0.2.1
Object-oriented alternative to os/os.path/shutil
2011-01-13: Unipath has been stable since May 2008 and in production since 2007; I just haven't bothered to make a formal 1.0 release. Few bugs have been reported so the code is solid. I haven't tried using it with Python 3 yet.
The source is at http://bitbucket.org/sluggo/unipath.
Unipath is package for doing pathname calculations and filesystem access in an object-oriented manner, an alternative to os.path.*, shutil.*, glob, and some os.* functions.. It's based on Jason Orendorff's path.py but does not adhere as strictly to the underlying functions' syntax, in order to provide more user convenience and higher-level functionality. For example:
- p.mkdir() succeeds silently if the directory already exists, and
- p.mkdir(True) creates intermediate directories a la os.makedirs.
- p.rmtree(parents=True) combines shutil.rmtree, os.path.isdir, os.remove, and os.removedirs, to recursively remove whatever it is if it exists.
- p.read_file("rb") returns the file's contents in binary mode.
- p.needs_update([other_path1, ...]) returns True if p doesn't exist or has an older timestamp than any of the others.
- extra convenience functions in the unipath.tools module. dict2dir creates a directory hierarchy described by a dict. dump_path displays an ASCII tree of a directory hierarchy.
The Path class subclasses AbstractPath, which contains only those methods that don't consult the filesystem. Most users just use the Path class and ignore the base class, but it's there for specialized uses.
Here's a comparision of some Path operations and their stdlib equivalents:
# Reference a file that's two directories above another file. p = os.path.join(os.path.dirname(os.path.dirname("/A/B/C")), "file.txt") p = Path("A/B/C").parent.parent.child("file.txt") p = Path("A/B/C").ancestor(2).child("file.txt") p0 = Path("/A/B/C"); p = Path(p0.parent.parent, "file.txt")
# Change the extension of a path. p = os.path.splitext("image.jpg")[0] + ".png" p = Path("image.jpg").name + ".png"
Documentation is in the README and on the website.
Unipath is for Python 2.4 or higher, and comes with a test suite. The API is pretty much stable now. The development repository is http://bitbucket.org/sluggo/unipath .
| File | Type | Py Version | Uploaded on | Size | # downloads |
|---|---|---|---|---|---|
| Unipath-0.2.1.tar.gz (md5) | Source | 2009-03-29 | 146KB | 6575 | |
- Author: Mike Orr
- Home Page: http://sluggo.scrapping.cc/python/unipath/
- Keywords: os.path filename pathspec path files directories filesystem
- License: Python
- Categories
- Package Index Owner: rex
- DOAP record: Unipath-0.2.1.xml
