734
Comment:
|
990
|
Deletions are marked like this. | Additions are marked like this. |
Line 16: | Line 16: |
4. Should be subclassable so third parties can offer richer subclasses. Use {{{self.__class__()}}} instead of {{{Path()}}} in method bodies. Alternate constructors like {{{Path.cwd()}}} should be a class methods rather than static methods. (MikeOrr) |
Path class Pre-Pre-PEP
Implementation(s)
Reinhold has modified Jason Orendorff's original path.py to fit discussions in python-dev and comp.lang.python and has placed it in Python CVS under nondist/sandbox/path.
Other implementations to look at include the original, path.py and some things that others have mentioned on c.l.p. and python-dev.
Design Principles
1. A Path should be a drop-in replacement for a str or unicode as much as possible.
2. Properties are the interface for immutable attributes of a Path. For example, a Path's basename will be the same regardless of data on the local filesystem.
3. Methods are the interface for mutable attributes, for example, the last-modified-time.
4. Should be subclassable so third parties can offer richer subclasses. Use self.__class__() instead of Path() in method bodies. Alternate constructors like Path.cwd() should be a class methods rather than static methods. (MikeOrr)