[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