diff options
author | PJ Eby <distutils-sig@python.org> | 2005-07-17 19:01:15 +0000 |
---|---|---|
committer | PJ Eby <distutils-sig@python.org> | 2005-07-17 19:01:15 +0000 |
commit | 63d507adccf8207a40e2b22a8c11f79efb83f56a (patch) | |
tree | 079ea1f80004c18837a93f3bdc66b039d8d5127a /pkg_resources.py | |
parent | 30f1c5ad93e21ec007d371313e2a27e4d0efb661 (diff) | |
download | external_python_setuptools-63d507adccf8207a40e2b22a8c11f79efb83f56a.tar.gz external_python_setuptools-63d507adccf8207a40e2b22a8c11f79efb83f56a.tar.bz2 external_python_setuptools-63d507adccf8207a40e2b22a8c11f79efb83f56a.zip |
``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.
--HG--
branch : setuptools
extra : convert_revision : svn%3A6015fed2-1504-0410-9fe1-9d1591cc4771/sandbox/trunk/setuptools%4041133
Diffstat (limited to 'pkg_resources.py')
-rw-r--r-- | pkg_resources.py | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/pkg_resources.py b/pkg_resources.py index 81c6314d..8eabdd25 100644 --- a/pkg_resources.py +++ b/pkg_resources.py @@ -23,7 +23,7 @@ __all__ = [ '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 @@ def run_script(dist_spec, script_name): 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 @@ class DefaultProvider(NullProvider): 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 @@ class Distribution(object): 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 @@ class Distribution(object): 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 @@ class Distribution(object): 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) |