At 12:29 PM 5/25/2009 +0200, Tarek Ziadé wrote:
Hello,

I have updated PEP 376, mainly with Phillip's feedback, and changed
the API section so it looks like the current prototype.

- PEP : http://svn.python.org/view/peps/trunk/pep-0376.txt?view=markup
- prototype code : http://bitbucket.org/tarek/pep376/src/tip/pkgutil.py

I'll wait for a new round of feedbacks, Thanks !

* There's no reason for anything shown in the module to be private; is_egg_info() and egg_info_dirs() would be useful API functions, and the additions to DistributionMetadata might as well go in distutils

* Better yet, move DistributionMetadata to pkgutil and have distutils.dist import it; that way you won't get tons of distutils.* imports any time you import pkgutil.

* get_egg_infos() should take a pathlist argument, which if None can default to sys.path.

* Project name normalization and case insensitive comparison is still not implemented

* File path normalization (absolutizing, case-normalization, de-cross-platforming, etc.) is not implemented

* There is extensive coupling both to sys.path and to the global cache; in particular, the owns() operation properly belongs to an object representing a *directory*, rather than an object representing an individual project.

Note too that such "directory" objects would then also be an appropriate cache target, and a suitable home for egg_info_dirs() and get_file_users() operations. This also simplifies get_egg_infos, since it would simply either retrieves directories from the cache or creates them and optionally caches them, without also meddling in the details of cache contents.

Also, an application that wishes to do so can simply create directory objects of its own and manage their lifecycle accordingly.

Personally, I would also make an object for a collection of directories, but you could possibly get away without it.

(At this point, I have only briefly skimmed the updated PEP; I'll take a closer look at it once the API/implementation gets more settled.)

_______________________________________________
Distutils-SIG maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to