[Python-checkins] python/nondist/sandbox/setuptools pkg_resources.py, 1.43, 1.44 setuptools.txt, 1.16, 1.17
pje@users.sourceforge.net
pje at users.sourceforge.net
Sun Jul 17 21:01:19 CEST 2005
Update of /cvsroot/python/python/nondist/sandbox/setuptools
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30805
Modified Files:
pkg_resources.py setuptools.txt
Log Message:
``Distribution`` objects now implement the ``IResourceProvider`` and
``IMetadataProvider`` interfaces, so you don't need to reference the (no
longer available) ``metadata`` attribute to get at these interfaces.
Index: pkg_resources.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/setuptools/pkg_resources.py,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -d -r1.43 -r1.44
--- pkg_resources.py 17 Jul 2005 04:42:41 -0000 1.43
+++ pkg_resources.py 17 Jul 2005 19:01:14 -0000 1.44
@@ -23,7 +23,7 @@
'get_importer', 'find_distributions', 'find_on_path', 'register_finder',
'split_sections', 'declare_namespace', 'register_namespace_handler',
'safe_name', 'safe_version', 'run_main', 'BINARY_DIST', 'run_script',
- 'get_default_cache',
+ 'get_default_cache', 'EmptyProvider', 'empty_provider',
]
import sys, os, zipimport, time, re, imp
@@ -108,7 +108,7 @@
name = ns['__name__']
ns.clear()
ns['__name__'] = name
- require(dist_spec)[0].metadata.run_script(script_name, ns)
+ require(dist_spec)[0].run_script(script_name, ns)
run_main = run_script # backward compatibility
@@ -714,18 +714,18 @@
register_loader_type(type(None), DefaultProvider)
+class EmptyProvider(NullProvider):
+ """Provider that returns nothing for all requests"""
+ _isdir = _has = lambda self,path: False
+ _get = lambda self,path: ''
+ _listdir = lambda self,path: []
+ module_path = None
+ def __init__(self):
+ pass
-
-
-
-
-
-
-
-
-
+empty_provider = EmptyProvider()
@@ -1325,7 +1325,7 @@
self.platform = platform
self.path = path_str
self.distro_type = distro_type
- self.metadata = metadata
+ self._provider = metadata or empty_provider
def installed_on(self,path=None):
"""Is this distro installed on `path`? (defaults to ``sys.path``)"""
@@ -1419,8 +1419,8 @@
return deps
def _get_metadata(self,name):
- if self.metadata is not None and self.metadata.has_metadata(name):
- for line in self.metadata.get_metadata_lines(name):
+ if self.has_metadata(name):
+ for line in self.get_metadata_lines(name):
yield line
def install_on(self,path=None):
@@ -1452,11 +1452,11 @@
version = getattr(self,'version',None) or "[unknown version]"
return "%s %s" % (self.project_name,version)
-
-
-
-
-
+ def __getattr__(self,attr):
+ """Delegate all unrecognized public attributes to .metadata provider"""
+ if attr.startswith('_'):
+ raise AttributeError,attr
+ return getattr(self._provider, attr)
Index: setuptools.txt
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/setuptools/setuptools.txt,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- setuptools.txt 17 Jul 2005 04:42:41 -0000 1.16
+++ setuptools.txt 17 Jul 2005 19:01:15 -0000 1.17
@@ -1342,6 +1342,16 @@
* Fixed ``pkg_resources.resource_exists()`` not working correctly.
+ * Many ``pkg_resources`` API changes:
+
+ * ``Distribution`` objects now implement the ``IResourceProvider`` and
+ ``IMetadataProvider`` interfaces, so you don't need to reference the (no
+ longer available) ``metadata`` attribute to get at these interfaces.
+
+ * ``Distribution`` and ``Requirement`` both have a ``project_name``
+ attribute for the project name they refer to. (Previously these were
+ ``name`` and ``distname`` attributes.)
+
0.5a13
* Fixed a bug in resource extraction from nested packages in a zipped egg.
More information about the Python-checkins
mailing list