summaryrefslogtreecommitdiff
path: root/repoze/bfg/zcml.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-06-30 13:10:44 +0000
committerChris McDonough <chrism@agendaless.com>2009-06-30 13:10:44 +0000
commit9d6fcd1eeb030be9e0a24399493924cf5d963b28 (patch)
tree29ea582d3d32d2d67c7ea96cfdb4d734c163556a /repoze/bfg/zcml.py
parentaf17cce0c37c29981b7f8893433e668ae0197a69 (diff)
downloadpyramid-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.py20
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,