diff options
| author | Chris McDonough <chrism@agendaless.com> | 2009-06-30 13:10:44 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2009-06-30 13:10:44 +0000 |
| commit | 9d6fcd1eeb030be9e0a24399493924cf5d963b28 (patch) | |
| tree | 29ea582d3d32d2d67c7ea96cfdb4d734c163556a /repoze/bfg/zcml.py | |
| parent | af17cce0c37c29981b7f8893433e668ae0197a69 (diff) | |
| download | pyramid-9d6fcd1eeb030be9e0a24399493924cf5d963b28.tar.gz pyramid-9d6fcd1eeb030be9e0a24399493924cf5d963b28.tar.bz2 pyramid-9d6fcd1eeb030be9e0a24399493924cf5d963b28.zip | |
- Register a ``repoze.bfg.resource.OverrideProvider`` as a
pkg_resources provider only for modules which are known to have
overrides, instead of globally, when a <resource> directive is used
(performance).
Diffstat (limited to 'repoze/bfg/zcml.py')
| -rw-r--r-- | repoze/bfg/zcml.py | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/repoze/bfg/zcml.py b/repoze/bfg/zcml.py index 1aedd88e4..cf9a3d880 100644 --- a/repoze/bfg/zcml.py +++ b/repoze/bfg/zcml.py @@ -175,18 +175,16 @@ class IResourceDirective(Interface): required=True) def _override(package, path, override_package, override_prefix, - PackageOverrides=PackageOverrides, pkg_resources=pkg_resources): - # PackageOverrides and pkg_resources kw args for tests + PackageOverrides=PackageOverrides): + # PackageOverrides kw arg for tests sm = getSiteManager() - override = queryUtility(IPackageOverrides, name=package) + package_name = package.__name__ + override_package_name = override_package.__name__ + override = queryUtility(IPackageOverrides, name=package_name) if override is None: override = PackageOverrides(package) - sm.registerUtility(override, IPackageOverrides, name=package) - # register_loader_type will be called too many times if there - # is more than one overridden package; that's OK, as our - # mutation is idempotent - pkg_resources.register_loader_type(type(None), OverrideProvider) - override.insert(path, override_package, override_prefix) + sm.registerUtility(override, IPackageOverrides, name=package_name) + override.insert(path, override_package_name, override_prefix) def resource(context, to_override, override_with): if to_override == override_with: @@ -214,8 +212,8 @@ def resource(context, to_override, override_with): 'A file cannot be overridden with a directory (put a slash ' 'at the end of to_override if necessary)') - package = context.resolve(package).__name__ - override_package = context.resolve(package).__name__ + package = context.resolve(package) + override_package = context.resolve(override_package) context.action( discriminator = None, |
