[Checkins] SVN: grokcore.component/trunk/ make the util.* methods part of the grokcore.component API
Jan Wijbrand Kolman
cvs-admin at zope.org
Tue May 1 12:40:37 UTC 2012
Log message for revision 125472:
make the util.* methods part of the grokcore.component API
Changed:
U grokcore.component/trunk/CHANGES.txt
U grokcore.component/trunk/src/grokcore/component/__init__.py
U grokcore.component/trunk/src/grokcore/component/interfaces.py
U grokcore.component/trunk/src/grokcore/component/meta.py
U grokcore.component/trunk/src/grokcore/component/tests/order/arg_orderdirective.py
U grokcore.component/trunk/src/grokcore/component/tests/order/combined_orderdirective.py
U grokcore.component/trunk/src/grokcore/component/tests/order/combinednoorder_orderdirective.py
U grokcore.component/trunk/src/grokcore/component/tests/order/inter1.py
U grokcore.component/trunk/src/grokcore/component/tests/order/noarg_orderdirective.py
U grokcore.component/trunk/src/grokcore/component/tests/order/nodirective.py
-=-
Modified: grokcore.component/trunk/CHANGES.txt
===================================================================
--- grokcore.component/trunk/CHANGES.txt 2012-05-01 10:36:44 UTC (rev 125471)
+++ grokcore.component/trunk/CHANGES.txt 2012-05-01 12:40:33 UTC (rev 125472)
@@ -4,6 +4,12 @@
2.5 (unreleased)
----------------
+- Introduce provideUtility, providerAdapter, provideSubscriptionAdapter,
+ provideHandler and provideInterface in grokcore.component. These by default
+ delegate the registration of components to the global site manager like
+ was done before, but provide the possibility for custom registries for the
+ grokked components.
+
- Fix the `global_adapter` to properly use information annotated by
``grok.adapter``, and using the IContext object if it was not
specified. (Fix Launchpad issue #960097).
@@ -11,7 +17,6 @@
- Add a ``key`` option to ``sort_components`` that behave like ``key``
options available on standard Python sort methods.
-
2.4 (2011-04-27)
----------------
Modified: grokcore.component/trunk/src/grokcore/component/__init__.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/__init__.py 2012-05-01 10:36:44 UTC (rev 125471)
+++ grokcore.component/trunk/src/grokcore/component/__init__.py 2012-05-01 12:40:33 UTC (rev 125472)
@@ -24,20 +24,51 @@
from martian import ClassGrokker, InstanceGrokker, GlobalGrokker
from grokcore.component.components import (
- Adapter, GlobalUtility, MultiAdapter, Context, Subscription,
- MultiSubscription)
+ Adapter,
+ Context,
+ GlobalUtility,
+ MultiAdapter,
+ MultiSubscription,
+ Subscription,
+ )
from grokcore.component.directive import (
- context, description, direct, name, order, path, provides, title,
- global_utility, global_adapter, order)
+ context,
+ description,
+ direct,
+ global_adapter,
+ global_utility,
+ name,
+ order,
+ path,
+ provides,
+ title,
+ )
from grokcore.component.decorators import (
- subscribe, adapter, implementer, provider)
+ adapter,
+ implementer,
+ provider,
+ subscribe,
+ )
from grokcore.component.subscription import (
- querySubscriptions, queryMultiSubscriptions,
- queryOrderedSubscriptions, queryOrderedMultiSubscriptions)
+ queryMultiSubscriptions,
+ queryOrderedMultiSubscriptions,
+ queryOrderedSubscriptions,
+ querySubscriptions,
+ )
+from grokcore.component.util import (
+ getSiteManager,
+ provideAdapter,
+ provideHandler,
+ provideInterface,
+ provideSubscriptionAdapter,
+ provideUtility,
+ sort_components,
+ )
+
# Import this module so that it's available as soon as you import the
# 'grokcore.component' package. Useful for tests and interpreter examples.
import grokcore.component.testing
Modified: grokcore.component/trunk/src/grokcore/component/interfaces.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/interfaces.py 2012-05-01 10:36:44 UTC (rev 125471)
+++ grokcore.component/trunk/src/grokcore/component/interfaces.py 2012-05-01 12:40:33 UTC (rev 125472)
@@ -34,21 +34,26 @@
class IBaseClasses(Interface):
+ Adapter = Attribute("Base class for adapters.")
ClassGrokker = Attribute("Base class to define a class grokker.")
- InstanceGrokker = Attribute("Base class to define an instance grokker.")
- GlobalGrokker = Attribute("Base class to define a module grokker.")
Context = Attribute("Base class for automatically associated contexts.")
- Adapter = Attribute("Base class for adapters.")
+ GlobalGrokker = Attribute("Base class to define a module grokker.")
+
+ GlobalUtility = Attribute("Base class for global utilities.")
+
+ InstanceGrokker = Attribute("Base class to define an instance grokker.")
+
MultiAdapter = Attribute("Base class for multi-adapters.")
- GlobalUtility = Attribute("Base class for global utilities.")
- Subscription = Attribute("Base class for subscription adapters.")
+
MultiSubscription = Attribute(
"Base class for subscription mult-adapters.")
+ Subscription = Attribute("Base class for subscription adapters.")
+
class IDirectives(Interface):
def baseclass():
@@ -186,22 +191,49 @@
class IMartianAPI(Interface):
- """Part of Martian's API exposed by grokcore.component."""
+ """Part of Martian's API exposed by grokcore.component.
+ """
- # This should probably move to martian at some point.
+ ClassGrokker = Attribute("Grokker for classes.")
- ClassGrokker = Attribute("Grokker for classes.")
- InstanceGrokker = Attribute("Grokker for instances.")
GlobalGrokker = Attribute("Grokker that's invoked for a module.")
+ InstanceGrokker = Attribute("Grokker for instances.")
-class IGrokcoreComponentAPI(IBaseClasses, IDirectives, IDecorators,
- IGrokErrors, IMartianAPI):
- """grokcore.component's public API."""
+class IGrokcoreComponentAPI(
+ IBaseClasses,
+ IDecorators,
+ IDirectives,
+ IGrokErrors,
+ IMartianAPI,
+ ):
+ """grokcore.component's public API.
+ """
+
+ getSiteManager = Attribute('Get the site manager for the nearest site.')
+
+ provideAdapter = Attribute('Registers an adapters')
+
+ provideHandler = Attribute('Registers an handler')
+
+ provideInterface = Attribute('Regsiters an interfaces as a utility')
+
+ provideSubscriptionAdapter = Attribute(
+ 'Registers an subscriptions adapter')
+
+ provideUtility = Attribute('Registers an utility')
+
querySubscriptions = Attribute("Function to query subscriptions.")
+
queryOrderedSubscriptions = Attribute(
"Function to query subscription in order.")
+
queryMultiSubscriptions = Attribute("Function to query subscriptions.")
+
queryOrderedMultiSubscriptions = Attribute(
"Function to query subscriptions in order.")
+
+ sort_components = Attribute(
+ 'Sort a list of components using the information provided by '
+ '`grok.order`.')
Modified: grokcore.component/trunk/src/grokcore/component/meta.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/meta.py 2012-05-01 10:36:44 UTC (rev 125471)
+++ grokcore.component/trunk/src/grokcore/component/meta.py 2012-05-01 12:40:33 UTC (rev 125472)
@@ -22,7 +22,6 @@
from zope import component, interface
from martian.error import GrokError
from zope.interface import implementedBy
-from grokcore.component import util
def _provides(component, module=None, **data):
martian.util.check_implements_one(component)
@@ -44,7 +43,7 @@
def execute(self, factory, config, context, provides, name, **kw):
config.action(
discriminator=('adapter', context, provides, name),
- callable=util.provideAdapter,
+ callable=grokcore.component.provideAdapter,
args=(factory, (context,), provides, name),
)
return True
@@ -64,7 +63,7 @@
config.action(
discriminator=('adapter', for_, provides, name),
- callable=util.provideAdapter,
+ callable=grokcore.component.provideAdapter,
args=(factory, None, provides, name),
)
return True
@@ -79,7 +78,7 @@
def execute(self, factory, config, context, provides, name, **kw):
config.action(
discriminator=None,
- callable=util.provideSubscriptionAdapter,
+ callable=grokcore.component.provideSubscriptionAdapter,
args=(factory, (context,), provides),
)
return True
@@ -99,7 +98,7 @@
config.action(
discriminator=None,
- callable=util.provideSubscriptionAdapter,
+ callable=grokcore.component.provideSubscriptionAdapter,
args=(factory, adapts, provides),
)
return True
@@ -123,7 +122,7 @@
config.action(
discriminator=('utility', provides, name),
- callable=util.provideUtility,
+ callable=grokcore.component.provideUtility,
args=(factory, provides, name),
)
return True
@@ -150,7 +149,7 @@
name = getattr(function, '__component_name__', u"")
config.action(
discriminator=('adapter', interfaces, function.__implemented__, name),
- callable=util.provideAdapter,
+ callable=grokcore.component.provideAdapter,
args=(function, interfaces, function.__implemented__, name),
)
return True
@@ -181,7 +180,7 @@
config.action(
discriminator=('utility', provides, name),
- callable=util.provideUtility,
+ callable=grokcore.component.provideUtility,
args=(obj, provides, name),
)
@@ -203,7 +202,7 @@
config.action(
discriminator=('adapter', adapts, provides, name),
- callable=util.provideAdapter,
+ callable=grokcore.component.provideAdapter,
args=(factory, adapts, provides, name),
)
@@ -228,17 +227,17 @@
if provides is None:
config.action(
discriminator=None,
- callable=util.provideHandler,
+ callable=grokcore.component.provideHandler,
args=(factory, subscribed))
else:
config.action(
discriminator=None,
- callable=util.provideSubscriptionAdapter,
+ callable=grokcore.component.provideSubscriptionAdapter,
args=(factory, subscribed, provides))
for iface in subscribed:
config.action(
discriminator=None,
- callable=util.provideInterface,
+ callable=grokcore.component.provideInterface,
args=('', iface))
return True
Modified: grokcore.component/trunk/src/grokcore/component/tests/order/arg_orderdirective.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/order/arg_orderdirective.py 2012-05-01 10:36:44 UTC (rev 125471)
+++ grokcore.component/trunk/src/grokcore/component/tests/order/arg_orderdirective.py 2012-05-01 12:40:33 UTC (rev 125472)
@@ -2,7 +2,7 @@
If the grok.order directive is present with arguments, sorting will be
done by the order specified.
- >>> from grokcore.component.util import sort_components
+ >>> from grokcore.component import sort_components
>>> components = [First(), Second(), Third(), Fourth(), Fifth()]
>>> sort_components(components)
Modified: grokcore.component/trunk/src/grokcore/component/tests/order/combined_orderdirective.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/order/combined_orderdirective.py 2012-05-01 10:36:44 UTC (rev 125471)
+++ grokcore.component/trunk/src/grokcore/component/tests/order/combined_orderdirective.py 2012-05-01 12:40:33 UTC (rev 125472)
@@ -6,7 +6,7 @@
>>> components = [First(), Second(), Third(), Fourth(), Fifth()]
- >>> from grokcore.component.util import sort_components
+ >>> from grokcore.component import sort_components
>>> sort_components(components)
[<...Third object at ...>,
<...Fourth object at ...>,
Modified: grokcore.component/trunk/src/grokcore/component/tests/order/combinednoorder_orderdirective.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/order/combinednoorder_orderdirective.py 2012-05-01 10:36:44 UTC (rev 125471)
+++ grokcore.component/trunk/src/grokcore/component/tests/order/combinednoorder_orderdirective.py 2012-05-01 12:40:33 UTC (rev 125472)
@@ -6,7 +6,7 @@
>>> components = [First(), Second(), Third(), Fourth(), Fifth()]
- >>> from grokcore.component.util import sort_components
+ >>> from grokcore.component import sort_components
>>> sort_components(components)
[<...Fifth object at ...>,
<...Third object at ...>,
Modified: grokcore.component/trunk/src/grokcore/component/tests/order/inter1.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/order/inter1.py 2012-05-01 10:36:44 UTC (rev 125471)
+++ grokcore.component/trunk/src/grokcore/component/tests/order/inter1.py 2012-05-01 12:40:33 UTC (rev 125472)
@@ -12,7 +12,7 @@
>>> from inter2 import Four, Five, Six
>>> components = [One(), Two(), Three(), Four(), Five(), Six()]
- >>> from grokcore.component.util import sort_components
+ >>> from grokcore.component import sort_components
>>> sort_components(components)
[<...Three object at ...>,
<...One object at ...>,
Modified: grokcore.component/trunk/src/grokcore/component/tests/order/noarg_orderdirective.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/order/noarg_orderdirective.py 2012-05-01 10:36:44 UTC (rev 125471)
+++ grokcore.component/trunk/src/grokcore/component/tests/order/noarg_orderdirective.py 2012-05-01 12:40:33 UTC (rev 125472)
@@ -5,7 +5,7 @@
>>> components = [First(), Second(), Third(), Fourth(), Fifth()]
- >>> from grokcore.component.util import sort_components
+ >>> from grokcore.component import sort_components
>>> sort_components(components)
[<...First object at ...>,
<...Second object at ...>,
Modified: grokcore.component/trunk/src/grokcore/component/tests/order/nodirective.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/order/nodirective.py 2012-05-01 10:36:44 UTC (rev 125471)
+++ grokcore.component/trunk/src/grokcore/component/tests/order/nodirective.py 2012-05-01 12:40:33 UTC (rev 125472)
@@ -5,7 +5,7 @@
>>> components = [First(), Second(), Third(), Fourth(), Fifth()]
- >>> from grokcore.component.util import sort_components
+ >>> from grokcore.component import sort_components
>>> sort_components(components)
[<...Fifth object at ...>,
<...First object at ...>,
More information about the checkins
mailing list