[Checkins] SVN: zc.extrinsicreference/branches/benji-modernize/ checkpoint

Benji York benji at zope.com
Sat Feb 16 16:57:03 EST 2008


Log message for revision 83945:
  checkpoint
  

Changed:
  _U  zc.extrinsicreference/branches/benji-modernize/
  A   zc.extrinsicreference/branches/benji-modernize/buildout.cfg
  U   zc.extrinsicreference/branches/benji-modernize/setup.py
  U   zc.extrinsicreference/branches/benji-modernize/src/zc/extrinsicreference/configure.zcml
  U   zc.extrinsicreference/branches/benji-modernize/src/zc/extrinsicreference/extrinsicreference.py
  U   zc.extrinsicreference/branches/benji-modernize/src/zc/extrinsicreference/interfaces.py
  U   zc.extrinsicreference/branches/benji-modernize/src/zc/extrinsicreference/tests.py
  U   zc.extrinsicreference/branches/benji-modernize/src/zc/extrinsicreference/track_shortcuts.zcml

-=-

Property changes on: zc.extrinsicreference/branches/benji-modernize
___________________________________________________________________
Name: svn:ignore
   + develop-eggs
bin
eggs
parts
.installed.cfg
dist


Added: zc.extrinsicreference/branches/benji-modernize/buildout.cfg
===================================================================
--- zc.extrinsicreference/branches/benji-modernize/buildout.cfg	                        (rev 0)
+++ zc.extrinsicreference/branches/benji-modernize/buildout.cfg	2008-02-16 21:57:03 UTC (rev 83945)
@@ -0,0 +1,14 @@
+[buildout]
+develop = .
+parts = test interpreter
+index = http://download.zope.org/zope3.4
+
+[test]
+recipe = zc.recipe.testrunner
+defaults = ['-1']
+eggs = zc.extrinsicreference
+
+[interpreter]
+recipe = zc.recipe.egg
+eggs = zc.extrinsicreference
+interpreter = py

Modified: zc.extrinsicreference/branches/benji-modernize/setup.py
===================================================================
--- zc.extrinsicreference/branches/benji-modernize/setup.py	2008-02-16 21:56:17 UTC (rev 83944)
+++ zc.extrinsicreference/branches/benji-modernize/setup.py	2008-02-16 21:57:03 UTC (rev 83945)
@@ -2,11 +2,23 @@
 
 setup(
     name="zc.extrinsicreference",
-    version="0.1dev",
+    version="1.0dev",
+    license = 'ZPL 2.1',
+    description = '',
+    author = 'Zope Corporation and Contributors',
+    author_email = 'zope-dev at zope.org',
     packages=find_packages('src'),
     package_dir={'':'src'},
     namespace_packages=['zc'],
     include_package_data=True,
-    install_requirements = ['setuptools'],
+    install_requires = [
+        'ZODB3',
+        'setuptools',
+        'zope.interface',
+        'zope.interface',
+        'zc.shortcut',
+        'zope.app.keyreference',
+        'zope.location',
+        ],
     zip_safe = False
     )

Modified: zc.extrinsicreference/branches/benji-modernize/src/zc/extrinsicreference/configure.zcml
===================================================================
--- zc.extrinsicreference/branches/benji-modernize/src/zc/extrinsicreference/configure.zcml	2008-02-16 21:56:17 UTC (rev 83944)
+++ zc.extrinsicreference/branches/benji-modernize/src/zc/extrinsicreference/configure.zcml	2008-02-16 21:57:03 UTC (rev 83945)
@@ -1,17 +1,16 @@
 <configure
-        xmlns='http://namespaces.zope.org/zope'
-        xmlns:browser='http://namespaces.zope.org/browser'
-        i18n_domain="zc.intranet">
+    xmlns='http://namespaces.zope.org/zope'
+    xmlns:browser='http://namespaces.zope.org/browser'
+    i18n_domain="zc.intranet">
 
-    <class class=".extrinsicreference.ExtrinsicReferences">
-        <implements
-            interface="zope.annotation.interfaces.IAttributeAnnotatable"/>
-    </class>
+  <class class=".extrinsicreference.ExtrinsicReferences">
+    <implements interface="zope.annotation.interfaces.IAttributeAnnotatable"/>
+  </class>
 
-    <browser:addMenuItem
-            class=".extrinsicreference.ExtrinsicReferences"
-            title="Extrinsic References"
-            permission= "zope.ManageContent"
-    />
+  <browser:addMenuItem
+      class=".extrinsicreference.ExtrinsicReferences"
+      title="Extrinsic References"
+      permission= "zope.ManageContent"
+  />
 
 </configure>

Modified: zc.extrinsicreference/branches/benji-modernize/src/zc/extrinsicreference/extrinsicreference.py
===================================================================
--- zc.extrinsicreference/branches/benji-modernize/src/zc/extrinsicreference/extrinsicreference.py	2008-02-16 21:56:17 UTC (rev 83944)
+++ zc.extrinsicreference/branches/benji-modernize/src/zc/extrinsicreference/extrinsicreference.py	2008-02-16 21:57:03 UTC (rev 83945)
@@ -11,46 +11,48 @@
 # FOR A PARTICULAR PURPOSE.
 #
 ##############################################################################
-"""extrinsic references
+"""Extrinsic references implementation"""
 
-$Id$
-"""
-from BTrees import OOBTree
-from zc.extrinsicreference.interfaces import IExtrinsicReferences
-from zope import interface
-from zope.app import zapi
-from zope.app.keyreference.interfaces import IKeyReference
+import BTrees
 import persistent
+import zc.extrinsicreference.interfaces
+import zope.app.keyreference.interfaces
+import zope.component
+import zope.interface
 
+
 class ExtrinsicReferences(persistent.Persistent):
 
-    interface.implements(IExtrinsicReferences)
+    zope.interface.implements(
+        zc.extrinsicreference.interfaces.IExtrinsicReferences)
 
     # To be usable as an ILocalUtility we have to have these.
     __parent__ = __name__ = None
 
     def __init__(self):
-        self.references = OOBTree.OOBTree()
+        self.references = BTrees.OOBTree.OOBTree()
 
     def add(self, obj, value):
-        key = IKeyReference(obj)
+        key = zope.app.keyreference.interface.IKeyReference(obj)
         refs = self.references.get(key)
         if refs is None:
-            refs = self.references[key] = OOBTree.OOTreeSet()
-        refs.insert(IKeyReference(value))
+            refs = self.references[key] = BTrees.OOBTree.OOTreeSet()
+        refs.insert(zope.app.keyreference.interface.IKeyReference(value))
 
     def update(self, obj, values):
-        key = IKeyReference(obj)
+        key = zope.app.keyreference.interface.IKeyReference(obj)
         refs = self.references.get(key)
         if refs is None:
-            refs = self.references[key] = OOBTree.OOTreeSet()
-        refs.update(IKeyReference(v) for v in values)
+            refs = self.references[key] = BTrees.OOBTree.OOTreeSet()
+        refs.update(zope.app.keyreference.interface.IKeyReference(v)
+            for v in values)
 
     def remove(self, obj, value):
-        key = IKeyReference(obj)
+        key = zope.app.keyreference.interface.IKeyReference(obj)
         refs = self.references.get(key)
         if refs is not None:
-            refs.remove(IKeyReference(value)) # raises KeyError when we desire
+            # raises KeyError when the value isn't found
+            refs.remove(zope.app.keyreference.interface.IKeyReference(value))
         else:
             raise KeyError("Object and value pair does not exist")
 
@@ -61,49 +63,46 @@
             pass
 
     def contains(self, obj, value):
-        key = IKeyReference(obj)
+        key = zope.app.keyreference.interface.IKeyReference(obj)
         refs = self.references.get(key)
         if refs is not None:
-            return IKeyReference(value) in refs
+            return zope.app.keyreference.interface.IKeyReference(value) in refs
         return False
 
     def set(self, obj, values):
-        key = IKeyReference(obj)
+        key = zope.app.keyreference.interface.IKeyReference(obj)
         refs = self.references.get(key)
-        vals = [IKeyReference(v) for v in values]
+        vals = map(zope.app.keyreference.interface.IKeyReference, values)
         if not vals:
             if refs is not None:
                 # del
                 del self.references[key]
         else:
             if refs is None:
-                refs = self.references[key] = OOBTree.OOTreeSet()
+                refs = self.references[key] = BTrees.OOBTree.OOTreeSet()
             else:
                 refs.clear()
             refs.update(vals)
 
     def get(self, obj):
-        key = IKeyReference(obj)
+        key = zope.app.keyreference.interface.IKeyReference(obj)
         refs = self.references.get(key, ())
         for kr in refs:
             yield kr()
 
-try:
-    from zc.shortcut.interfaces import IShortcut
+    @property
+    def shortcut_registry(self):
+        return zope.component.queryUtility(
+            zc.extrinsicreference.interfaces.IExtrinsicReferences, 'shortcuts')
 
     def registerShortcut(shortcut, event):
         """Subscriber to add an extrinsic reference."""
-        registry = zapi.queryUtility(IExtrinsicReferences, 'shortcuts')
-        if registry is not None:
+        if self.shortcut_registry is not None:
             # We use raw_target because we don't want a proxy.
             registry.add(shortcut.raw_target, shortcut)
 
     def unregisterShortcut(shortcut, event):
         """Subscriber to remove an extrinsic reference."""
-        registry = zapi.queryUtility(IExtrinsicReferences, 'shortcuts')
-        if registry is not None:
+        if self.shortcut_registry is not None:
             # We use raw_target because we don't want a proxy.
             registry.discard(shortcut.raw_target, shortcut)
-except ImportError:
-    # apparently zc.shortcut isn't around, skip it
-    pass

Modified: zc.extrinsicreference/branches/benji-modernize/src/zc/extrinsicreference/interfaces.py
===================================================================
--- zc.extrinsicreference/branches/benji-modernize/src/zc/extrinsicreference/interfaces.py	2008-02-16 21:56:17 UTC (rev 83944)
+++ zc.extrinsicreference/branches/benji-modernize/src/zc/extrinsicreference/interfaces.py	2008-02-16 21:57:03 UTC (rev 83945)
@@ -11,17 +11,18 @@
 # FOR A PARTICULAR PURPOSE.
 #
 ##############################################################################
-from zope import interface
 
-class IExtrinsicReferences(interface.Interface):
+import zope.interface
+
+class IExtrinsicReferences(zope.interface.Interface):
     """An object that stores extrinsic references to another object
 
-    All objects must be adaptable to 
+    All objects must be adaptable to
     zope.app.keyreference.interfaces.IKeyReference."""
 
     def add(obj, value):
         """Add an object and an associated value to the registry.
-        
+
         Both object and value must be adaptable to IKeyReference.
 
         Multiple values may be stored for a single key.  Each value is
@@ -67,10 +68,10 @@
     def set(obj, values):
         """Set the values for obj to the values in the given iterable.
 
-        Replaces any previous values for obj.  Object and each value must be 
+        Replaces any previous values for obj.  Object and each value must be
         adaptable to IKeyReference.  Identical values (as determined by
         IKeyReference) are collapsed to a single instance (so, for instance,
-        values of [A, B, B, C, B] will be collapsed to a logical set of 
+        values of [A, B, B, C, B] will be collapsed to a logical set of
         A, B, C).
 
         Setting an empty values is the canonical way of clearing values for an

Modified: zc.extrinsicreference/branches/benji-modernize/src/zc/extrinsicreference/tests.py
===================================================================
--- zc.extrinsicreference/branches/benji-modernize/src/zc/extrinsicreference/tests.py	2008-02-16 21:56:17 UTC (rev 83944)
+++ zc.extrinsicreference/branches/benji-modernize/src/zc/extrinsicreference/tests.py	2008-02-16 21:57:03 UTC (rev 83945)
@@ -11,20 +11,15 @@
 # FOR A PARTICULAR PURPOSE.
 #
 ##############################################################################
-"""extrinsicreference module test runner
+"""extrinsicreference module test runner"""
 
-$Id$
-"""
 import unittest
-
 from zope.testing import doctest
 from zope.app.testing import placelesssetup
 
+
 def test_suite():
     return doctest.DocFileSuite(
         'extrinsicreference.txt',
         setUp=placelesssetup.setUp, tearDown=placelesssetup.tearDown,
         optionflags=doctest.ELLIPSIS)
-
-if __name__ == '__main__':
-    unittest.main(defaultTest='test_suite')

Modified: zc.extrinsicreference/branches/benji-modernize/src/zc/extrinsicreference/track_shortcuts.zcml
===================================================================
--- zc.extrinsicreference/branches/benji-modernize/src/zc/extrinsicreference/track_shortcuts.zcml	2008-02-16 21:56:17 UTC (rev 83944)
+++ zc.extrinsicreference/branches/benji-modernize/src/zc/extrinsicreference/track_shortcuts.zcml	2008-02-16 21:57:03 UTC (rev 83945)
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
 <configure xmlns="http://namespaces.zope.org/zope">
 
-    <subscriber
-        for="zc.shortcut.interfaces.IShortcut
-             zope.app.container.interfaces.IObjectAddedEvent"
-        handler="zc.extrinsicreference.registerShortcut"
-        />
+  <subscriber
+      for="zc.shortcut.interfaces.IShortcut
+           zope.app.container.interfaces.IObjectAddedEvent"
+      handler="zc.extrinsicreference.registerShortcut"
+      />
 
-    <subscriber
-        for="zc.shortcut.interfaces.IShortcut
-             zope.app.container.interfaces.IObjectRemovedEvent"
-        handler="zc.extrinsicreference.unregisterShortcut"
-        />
+  <subscriber
+      for="zc.shortcut.interfaces.IShortcut
+           zope.app.container.interfaces.IObjectRemovedEvent"
+      handler="zc.extrinsicreference.unregisterShortcut"
+      />
 
 </configure>



More information about the Checkins mailing list