summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTres Seaver <tseaver@palladion.com>2014-11-26 15:16:42 -0500
committerTres Seaver <tseaver@palladion.com>2014-11-26 15:16:42 -0500
commit30c443fc3b02857d89408668eeca63b7762578b2 (patch)
treef4181d5e4e7e0c5bfff441e0fcd9ed2a601cafd2
parentf9d58b5843c49248262bbadeacb6e7b209f7abd7 (diff)
parentd89c5f76b3032a1447f19dc87a7a6ceb7508c3cb (diff)
downloadpyramid-30c443fc3b02857d89408668eeca63b7762578b2.tar.gz
pyramid-30c443fc3b02857d89408668eeca63b7762578b2.tar.bz2
pyramid-30c443fc3b02857d89408668eeca63b7762578b2.zip
Merge pull request #1475 from hugobranquinho/master
Shortcut for package name on registry
-rw-r--r--CONTRIBUTORS.txt2
-rw-r--r--docs/api/registry.rst12
-rw-r--r--pyramid/registry.py5
-rw-r--r--pyramid/tests/test_registry.py5
4 files changed, 24 insertions, 0 deletions
diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt
index 66f029cb7..9c2191f3b 100644
--- a/CONTRIBUTORS.txt
+++ b/CONTRIBUTORS.txt
@@ -234,3 +234,5 @@ Contributors
- Fenton Travers, 2014/05/06
- Randall Leeds, 2014/11/11
+
+- Hugo Branquinho, 2014/11/25
diff --git a/docs/api/registry.rst b/docs/api/registry.rst
index bab3e26ba..57a80b3f5 100644
--- a/docs/api/registry.rst
+++ b/docs/api/registry.rst
@@ -14,6 +14,18 @@
accessed as ``request.registry.settings`` or
``config.registry.settings`` in a typical Pyramid application.
+ .. attribute:: package_name
+
+ .. versionadded:: 1.6
+
+ When a registry is set up (or created) by a :term:`Configurator`, this
+ attribute will be the shortcut for
+ :attr:`pyramid.config.Configurator.package_name`.
+
+ This attribute is often accessed as ``request.registry.package_name`` or
+ ``config.registry.package_name`` or ``config.package_name``
+ in a typical Pyramid application.
+
.. attribute:: introspector
.. versionadded:: 1.3
diff --git a/pyramid/registry.py b/pyramid/registry.py
index 606251a8d..8c05940b9 100644
--- a/pyramid/registry.py
+++ b/pyramid/registry.py
@@ -5,6 +5,7 @@ from zope.interface import implementer
from zope.interface.registry import Components
from pyramid.compat import text_
+from pyramid.decorator import reify
from pyramid.interfaces import (
ISettings,
@@ -42,6 +43,10 @@ class Registry(Components, dict):
# defeat bool determination via dict.__len__
return True
+ @reify
+ def package_name(self):
+ return self.__name__
+
def registerSubscriptionAdapter(self, *arg, **kw):
result = Components.registerSubscriptionAdapter(self, *arg, **kw)
self.has_listeners = True
diff --git a/pyramid/tests/test_registry.py b/pyramid/tests/test_registry.py
index 11019b852..50f49f24d 100644
--- a/pyramid/tests/test_registry.py
+++ b/pyramid/tests/test_registry.py
@@ -12,6 +12,11 @@ class TestRegistry(unittest.TestCase):
registry = self._makeOne()
self.assertEqual(registry.__nonzero__(), True)
+ def test_package_name(self):
+ package_name = 'testing'
+ registry = self._getTargetClass()(package_name)
+ self.assertEqual(registry.package_name, package_name)
+
def test_registerHandler_and_notify(self):
registry = self._makeOne()
self.assertEqual(registry.has_listeners, False)