PRE-PEP: new Path class
Gerrit Holl
gerrit at nl.linux.org
Tue Jan 6 14:31:22 EST 2004
Just wrote:
> In article <vvivefh35qjv9a at news.supernews.com>,
> "John Roth" <newsgroups at jhrothjr.com> wrote:
> > 4) Should path expose an iterator for listdir(?)
> >
> > I don't see why not, as long as the path is to a
> > directory.
>
> _An_ iterator, sure, but not __iter__. How about path.listdir()? :)
> __iter__ could also iterate over the path elements, so it's ambiguous at
> least.
I think it should be called .list(): this way, it is better extendable
to archive files like zip and tar. Indeed: I know at least 3 different
possibilities for path.__iter__. Because of "In the face of ambiguity,
refuse the temptation to guess.", I think there should be no __iter__
(which is even another reason not to subclass __str__, by the way) [0].
> > 15. Should files and directories be the same
> > class.
> >
> > Probably not. While they share a lot of common
> > functionality (which should be spelled out as an
> > interface) they also have a lot of dissimilar
> > functionality. Separating them also makes it easy
> > to create objects for things like symbolic links.
>
> But what about paths for not-yet-existing files of folders? I don't
> think you should actually _hit_ the file system, if all your doing is
> path.join().
Another problem is dat I may not know whether I have a file or a
directory. If a directory is a different type than a file, it would
probably have a different constructor as well, and I may end up doing:
p = path(foo)
if p.isdir():
p = dirpath(foo)
If this is done implicitly, you can't create a path without
fs-interaction, which is bad for virtual-fs extensibility and confusing
if it doesn't mean a path always exists [1].
[0] http://people.nl.linux.org/~gerrit/creaties/path/pep-xxxx.html#for-foo-in-mypath
[1] http://people.nl.linux.org/~gerrit/creaties/path/pep-xxxx.html#absent-paths
yours,
Gerrit.
--
257. If any one hire a field laborer, he shall pay him eight gur of
corn per year.
-- 1780 BC, Hammurabi, Code of Law
--
Asperger's Syndrome - a personal approach:
http://people.nl.linux.org/~gerrit/english/
More information about the Python-list
mailing list