[Checkins] SVN: grok/trunk/ Grok now use grokcore.annotation instead of its own implementation.

Sylvain Viollon sylvain at infrae.com
Fri Sep 18 04:44:15 EDT 2009


Log message for revision 104275:
  Grok now use grokcore.annotation instead of its own implementation.
  
  

Changed:
  U   grok/trunk/setup.py
  U   grok/trunk/src/grok/__init__.py
  U   grok/trunk/src/grok/components.py
  U   grok/trunk/src/grok/configure.zcml
  U   grok/trunk/src/grok/interfaces.py
  U   grok/trunk/src/grok/meta.py
  U   grok/trunk/src/grok/meta.zcml
  U   grok/trunk/src/grok/testing.py
  U   grok/trunk/versions.cfg

-=-
Modified: grok/trunk/setup.py
===================================================================
--- grok/trunk/setup.py	2009-09-18 08:36:57 UTC (rev 104274)
+++ grok/trunk/setup.py	2009-09-18 08:44:14 UTC (rev 104275)
@@ -36,6 +36,7 @@
     zip_safe=False,
     install_requires=['setuptools',
                       'martian >= 0.10, < 0.12',
+                      'grokcore.annotation >= 1.1',
                       'grokcore.component >= 1.5, < 2.0',
                       'grokcore.formlib >= 1.4',
                       'grokcore.security >= 1.1',

Modified: grok/trunk/src/grok/__init__.py
===================================================================
--- grok/trunk/src/grok/__init__.py	2009-09-18 08:36:57 UTC (rev 104274)
+++ grok/trunk/src/grok/__init__.py	2009-09-18 08:44:14 UTC (rev 104275)
@@ -49,6 +49,8 @@
 from grokcore.formlib import AutoFields
 from grokcore.formlib import Fields
 
+from grokcore.annotation import Annotation
+
 from zope.event import notify
 from zope.app.component.hooks import getSite
 from zope.lifecycleevent import (
@@ -75,7 +77,7 @@
 from grok.components import XMLRPC, REST, JSON
 from grok.components import Traverser
 from grok.components import Container, OrderedContainer
-from grok.components import Site, LocalUtility, Annotation
+from grok.components import Site, LocalUtility
 from grok.components import Application, Form, AddForm, EditForm, DisplayForm
 from grok.components import Indexes
 from grok.components import Role

Modified: grok/trunk/src/grok/components.py
===================================================================
--- grok/trunk/src/grok/components.py	2009-09-18 08:36:57 UTC (rev 104274)
+++ grok/trunk/src/grok/components.py	2009-09-18 08:44:14 UTC (rev 104275)
@@ -211,10 +211,6 @@
     """
 
 
-class Annotation(persistent.Persistent):
-    """The base class for annotation classes in Grok applications."""
-
-
 class View(grokcore.view.View):
     """The base class for views with templates in Grok applications.
 

Modified: grok/trunk/src/grok/configure.zcml
===================================================================
--- grok/trunk/src/grok/configure.zcml	2009-09-18 08:36:57 UTC (rev 104274)
+++ grok/trunk/src/grok/configure.zcml	2009-09-18 08:44:14 UTC (rev 104275)
@@ -9,7 +9,6 @@
   <include package="zope.app.zcmlfiles" file="meta.zcml" />
   <include package="grok" file="meta.zcml" />
 
-  <include package="zope.annotation" />
   <include package="zope.copypastemove" />
   <include package="zope.contentprovider" />
   <include package="zope.formlib" />
@@ -30,6 +29,7 @@
   <include package="grokcore.view" />
   <include package="grokcore.viewlet" />
   <include package="grokcore.formlib" />
+  <include package="grokcore.annotation" />
 
   <securityPolicy
       component="zope.securitypolicy.zopepolicy.ZopeSecurityPolicy" />

Modified: grok/trunk/src/grok/interfaces.py
===================================================================
--- grok/trunk/src/grok/interfaces.py	2009-09-18 08:36:57 UTC (rev 104274)
+++ grok/trunk/src/grok/interfaces.py	2009-09-18 08:44:14 UTC (rev 104275)
@@ -19,6 +19,7 @@
 from zope.app.container.interfaces import IContainer as IContainerBase
 
 # Expose interfaces from grokcore.* packages as well:
+import grokcore.annotation.interfaces
 import grokcore.component.interfaces
 import grokcore.formlib.interfaces
 import grokcore.security.interfaces
@@ -29,7 +30,8 @@
 from grokcore.component.interfaces import IGrokErrors
 
 
-class IGrokBaseClasses(grokcore.component.interfaces.IBaseClasses,
+class IGrokBaseClasses(grokcore.annotation.interfaces.IBaseClasses,
+                       grokcore.component.interfaces.IBaseClasses,
                        grokcore.security.interfaces.IBaseClasses,
                        grokcore.view.interfaces.IBaseClasses):
     Model = interface.Attribute("Base class for persistent content objects "
@@ -38,7 +40,6 @@
     OrderedContainer = interface.Attribute("Base class for ordered containers.")
     Site = interface.Attribute("Mixin class for sites.")
     Application = interface.Attribute("Base class for applications.")
-    Annotation = interface.Attribute("Base class for persistent annotations.")
     LocalUtility = interface.Attribute("Base class for local utilities.")
     XMLRPC = interface.Attribute("Base class for XML-RPC methods.")
     JSON = interface.Attribute("Base class for JSON methods.")

Modified: grok/trunk/src/grok/meta.py
===================================================================
--- grok/trunk/src/grok/meta.py	2009-09-18 08:36:57 UTC (rev 104274)
+++ grok/trunk/src/grok/meta.py	2009-09-18 08:44:14 UTC (rev 104275)
@@ -32,12 +32,9 @@
 from zope.securitypolicy.interfaces import IRole
 from zope.securitypolicy.rolepermission import rolePermissionManager
 
-from zope.annotation.interfaces import IAnnotations
-
 from zope.app.publisher.xmlrpc import MethodPublisher
 from zope.app.container.interfaces import IContainer
 from zope.app.container.interfaces import INameChooser
-from zope.app.container.contained import contained
 
 from zope.app.intid import IntIds
 from zope.app.intid.interfaces import IIntIds
@@ -60,17 +57,6 @@
 from grokcore.view.meta.views import default_fallback_to_name
 
 
-def default_annotation_provides(factory, module, **data):
-    base_interfaces = interface.implementedBy(grok.Annotation)
-    factory_interfaces = interface.implementedBy(factory)
-    real_interfaces = list(factory_interfaces - base_interfaces)
-    util.check_implements_one_from_list(real_interfaces, factory)
-    return real_interfaces[0]
-
-def default_annotation_name(factory, module, **data):
-    return factory.__module__ + '.' + factory.__name__
-
-
 class XMLRPCGrokker(martian.MethodGrokker):
     """Grokker for methods of a `grok.XMLRPC` subclass.
 
@@ -386,39 +372,6 @@
         return True
 
 
-class AnnotationGrokker(martian.ClassGrokker):
-    """Grokker for components subclassed from `grok.Annotation`."""
-    martian.component(grok.Annotation)
-    martian.directive(grok.context, name='adapter_context')
-    martian.directive(grok.provides, get_default=default_annotation_provides)
-    martian.directive(grok.name, get_default=default_annotation_name)
-
-    def execute(self, factory, config, adapter_context, provides, name, **kw):
-        @component.adapter(adapter_context)
-        @interface.implementer(provides)
-        def getAnnotation(context):
-            annotations = IAnnotations(context)
-            try:
-                result = annotations[name]
-            except KeyError:
-                result = factory()
-                annotations[name] = result
-
-            # Containment has to be set up late to allow containment
-            # proxies to be applied, if needed. This does not trigger
-            # an event and is idempotent if containment is set up
-            # already.
-            contained_result = contained(result, context, name)
-            return contained_result
-
-        config.action(
-            discriminator=('adapter', adapter_context, provides, ''),
-            callable=component.provideAdapter,
-            args=(getAnnotation,),
-            )
-        return True
-
-
 class ApplicationGrokker(martian.ClassGrokker):
     """Grokker for Grok application classes."""
     martian.component(grok.Application)

Modified: grok/trunk/src/grok/meta.zcml
===================================================================
--- grok/trunk/src/grok/meta.zcml	2009-09-18 08:36:57 UTC (rev 104274)
+++ grok/trunk/src/grok/meta.zcml	2009-09-18 08:44:14 UTC (rev 104275)
@@ -11,6 +11,7 @@
   <include package="grokcore.security" file="meta.zcml" />
   <include package="grokcore.view" file="meta.zcml" />
   <include package="grokcore.viewlet" file="meta.zcml" />
+  <include package="grokcore.annotation" file="meta.zcml" />
   <grok:grok package=".meta" />
 
 </configure>

Modified: grok/trunk/src/grok/testing.py
===================================================================
--- grok/trunk/src/grok/testing.py	2009-09-18 08:36:57 UTC (rev 104274)
+++ grok/trunk/src/grok/testing.py	2009-09-18 08:44:14 UTC (rev 104275)
@@ -47,6 +47,7 @@
     zcml.do_grok('grokcore.view.templatereg', config)
     zcml.do_grok('grokcore.viewlet.meta', config)
     zcml.do_grok('grokcore.formlib.meta', config)
+    zcml.do_grok('grokcore.annotation.meta', config)
     zcml.do_grok('grok.meta', config)
     zcml.do_grok(module_name, config)
     config.execute_actions()

Modified: grok/trunk/versions.cfg
===================================================================
--- grok/trunk/versions.cfg	2009-09-18 08:36:57 UTC (rev 104274)
+++ grok/trunk/versions.cfg	2009-09-18 08:44:14 UTC (rev 104275)
@@ -1,5 +1,6 @@
 [versions]
 ClientForm = 0.2.9
+grokcore.annotation = 1.1
 grokcore.component = 1.7
 grokcore.formlib = 1.4
 grokcore.security = 1.2



More information about the checkins mailing list