Adds .open() to HTTPPath to return file like objects Adds .checksum() to Path. Adds .as_zip to base leafbranch path Adds path argument to newfile
Adds minimal archive support to contrib.
Fixes bugs with CSV header rows when CSV rows have trailing commas/periods. Uses simplejson when available. Add the .mimetype property to Path objects
Add Path.here() for a nicer syntax for the directory of the calling file.
Add Path.newfile() and Path.newdir() - non destructive versions of the contextmanager tempfile() && tempath()
Add __version__ to main module
Add glob patterns to Path().ls() Add a header argument to Path.csv() to autocreate CSV row classes
Fix bug with Path.ls() so that children are returned as Path objects relative to the parent.
Expose Path.decode (Useful when using Paths as Django template directories)
Add ffs.contrib.mold for templating helpers.
Add a mv() method to Path. Re-enable rstrip(). (Stdlib uses it e.g. shutil._basename) Catch the case where we call Path(Path('foo')) and get recursion errors. Add the formats module for helpers with Fileformats. Frist entry is the Indeterminate CSV class (ducktypes as both a reader and writer until you do something deterministic)x Add a csv contextmanager to Path DiskFilesystem.open() implicitly calls expanduser Initial implementation of a HTTP path system
Copying: Add a GNU cp clone to nix. Add the --recursive argument to the filesystem cp implementation Add a cp(target) method to the Path class
Touching: When touching a subpath where some parents do not exist, Path().touch('this/that/theother.txt') should create them and assume the caller knows their own mind. This is consistent with the behaviour of << and open().
Reduce the level of String duck-typing to sane levels. Although we do inherit from str, we bail with AttributeErrors when we think that we're being used for something absurd - e.g. what's the sane use of Path().splitlines() ?
Overload the / operator to be equivalent to path addition.
Add a mkdir() method to Path. This (and now also touch()) take starargs of child nodes to the current Path, assuming it is a directory. This allows creating many directories with one call:
>>> p = Path(rpmroot) >>> p.mkdir('BUILD', 'SOURCES', 'SPECS', 'RPM', 'SRPMS')
Maintain immutability for in-place append and update tests to catch this regression.
Add a Filesystem abstraction layer that allows us to use *nix semantics and metaphors with anything that uses Path-like structures.
Added the Path class - string-like with shortcuts! nix.cd doubles as a function and a contextmanager Many extra aliases in ffs.nix
Initial release. Minimal useful feature set. Known incomplete implementations.