diff --git a/README.txt b/README.txt
index 3d37044..7f4b13d 100755
--- a/README.txt
+++ b/README.txt
@@ -552,7 +552,7 @@ view for rendering.)
False
>>> view.renderTarget()
- u'
Test data
\nAnother paragraph
\n'
+ u'Test data
\nAnother paragraph
\n'
u'Test data
\nAnother ?paragraph
\n'
diff --git a/browser/concept.py b/browser/concept.py
index 546a22e..b6fbbfa 100644
--- a/browser/concept.py
+++ b/browser/concept.py
@@ -24,7 +24,6 @@ $Id$
from itertools import groupby
from zope import interface, component, schema
-from zope.app import zapi
from zope.app.catalog.interfaces import ICatalog
from zope.lifecycleevent import ObjectCreatedEvent, ObjectModifiedEvent
from zope.app.container.contained import ObjectRemovedEvent
@@ -43,6 +42,7 @@ from zope.publisher.interfaces.browser import IBrowserRequest
from zope.schema.interfaces import IIterableSource
from zope.security.proxy import removeSecurityProxy
from zope.traversing.api import getName
+from zope.traversing.browser import absoluteURL
from cybertools.browser.action import actions
from cybertools.composer.interfaces import IInstance
@@ -182,7 +182,7 @@ class BaseRelationView(BaseView):
@Lazy
def predicateUrl(self):
- return zapi.absoluteURL(self.predicate, self.request)
+ return absoluteURL(self.predicate, self.request)
@Lazy
def relevance(self):
diff --git a/browser/configure.zcml b/browser/configure.zcml
index 58adf33..315ef71 100644
--- a/browser/configure.zcml
+++ b/browser/configure.zcml
@@ -105,7 +105,7 @@
name="AddLoopsContainer.html"
for="zope.app.container.interfaces.IAdding"
class="loops.browser.manager.LoopsAddForm"
- permission="zope.ManageApplication"
+ permission="zope.ManageSite"
/>
diff --git a/browser/manager.py b/browser/manager.py
index 99ce71c..a629843 100644
--- a/browser/manager.py
+++ b/browser/manager.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2006 Helmut Merz helmutm@cy55.de
+# Copyright (c) 2011 Helmut Merz helmutm@cy55.de
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -22,7 +22,6 @@ Definition of view classes for the top-level loops container.
$Id$
"""
-from zope.app import zapi
from zope import component
from zope.lifecycleevent import ObjectCreatedEvent, ObjectModifiedEvent
from zope.event import notify
diff --git a/browser/node.py b/browser/node.py
index 2ac755c..fc5aeb3 100644
--- a/browser/node.py
+++ b/browser/node.py
@@ -25,7 +25,6 @@ $Id$
from urlparse import urlparse, urlunparse
from zope import component, interface, schema
from zope.cachedescriptors.property import Lazy
-from zope.app import zapi
from zope.annotation.interfaces import IAnnotations
from zope.app.catalog.interfaces import ICatalog
from zope.app.container.browser.contents import JustContents
@@ -39,8 +38,10 @@ from zope.lifecycleevent import ObjectCreatedEvent, ObjectModifiedEvent
from zope.lifecycleevent import Attributes
from zope.formlib.form import Form, FormFields
from zope.proxy import removeAllProxies
+from zope.publisher.defaultview import getDefaultViewName
from zope.security import canAccess, canWrite, checkPermission
from zope.security.proxy import removeSecurityProxy
+from zope.traversing.api import getParent, getParents, getPath
from cybertools.ajax import innerHtml
from cybertools.browser import configurator
@@ -243,7 +244,7 @@ class NodeView(BaseView):
return u''
if text.startswith('<'): # seems to be HTML
return text
- source = zapi.createObject(self.context.contentType, text)
+ source = component.createObject(self.context.contentType, text)
view = component.getMultiAdapter((removeAllProxies(source), self.request))
return view.render()
@@ -316,7 +317,7 @@ class NodeView(BaseView):
menu = self.menuObject
parentMenu = None
while menu is not None:
- parent = zapi.getParent(menu)
+ parent = getParent(menu)
if INode.providedBy(parent):
parentMenu = parent.getMenu()
if parentMenu is None or parentMenu is menu:
@@ -348,7 +349,7 @@ class NodeView(BaseView):
@Lazy
def parents(self):
- return zapi.getParents(self.context)
+ return getParents(self.context)
@Lazy
def nearestMenuItem(self):
@@ -413,7 +414,7 @@ class NodeView(BaseView):
target = self.virtualTargetObject
if target is not None:
# zope.app.publisher.browser
- name = zapi.getDefaultViewName(target, self.request)
+ name = getDefaultViewName(target, self.request)
return self.targetView(name)
return u''
@@ -732,8 +733,8 @@ class ConfigureView(NodeView):
container = type.defaultContainer
name = form.get('create.name', '')
if not name:
- viewManagerPath = zapi.getPath(root.getViewManager())
- name = zapi.getPath(self.context)[len(viewManagerPath)+1:]
+ viewManagerPath = getPath(root.getViewManager())
+ name = getPath(self.context)[len(viewManagerPath)+1:]
name = name.replace('/', '.')
# check for duplicates:
num = 1
@@ -850,7 +851,7 @@ class NodeViewConfigurator(configurator.AnnotationViewConfigurator):
@property
def viewProperties(self):
result = []
- for p in list(reversed(zapi.getParents(self.context))) + [self.context]:
+ for p in list(reversed(getParents(self.context))) + [self.context]:
if not INode.providedBy(p) or p.nodeType != 'menu':
continue
ann = IAnnotations(p)
diff --git a/browser/util.py b/browser/util.py
index 5e1d818..5cd9a15 100644
--- a/browser/util.py
+++ b/browser/util.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2006 Helmut Merz helmutm@cy55.de
+# Copyright (c) 2011 Helmut Merz helmutm@cy55.de
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -22,10 +22,10 @@ Utilities.
$Id$
"""
-from zope.app import zapi
from zope.app.pagetemplate import ViewPageTemplateFile
from zope.app.publisher.browser.menu import BrowserMenu
from zope.app.publisher.interfaces.browser import IBrowserSubMenuItem
+from zope import component
from zope.formlib.namedtemplate import NamedTemplateImplementation
@@ -45,7 +45,7 @@ class LoopsMenu(BrowserMenu):
def getMenuItems(self, object, request):
"""Return menu item entries in a TAL-friendly form."""
result = sorted([(item.order, item.action.lower(), item)
- for name, item in zapi.getAdapters(
+ for name, item in component.getAdapters(
(object, request), self.getMenuItemType())
if item.available()])
return [
diff --git a/configure.zcml b/configure.zcml
index 4400bed..37c76c0 100644
--- a/configure.zcml
+++ b/configure.zcml
@@ -432,10 +432,12 @@
diff --git a/expert/concept.py b/expert/concept.py
index abd0b6f..df0363c 100644
--- a/expert/concept.py
+++ b/expert/concept.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2008 Helmut Merz helmutm@cy55.de
+# Copyright (c) 2011 Helmut Merz helmutm@cy55.de
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -27,8 +27,8 @@ from BTrees.IFBTree import weightedIntersection, weightedUnion, IFBucket
from zope import schema, component
from zope.interface import Interface, Attribute, implements
from zope.app.catalog.interfaces import ICatalog
-from zope.app.intid.interfaces import IIntIds
from zope.cachedescriptors.property import Lazy
+from zope.intid.interfaces import IIntIds
from cybertools.typology.interfaces import IType
from loops.common import AdapterBase
diff --git a/expert/query.py b/expert/query.py
index e2cdb86..63e91ab 100644
--- a/expert/query.py
+++ b/expert/query.py
@@ -26,10 +26,10 @@ from BTrees.IIBTree import IITreeSet
from BTrees.IFBTree import IFBucket, IFBTree, IFTreeSet
from BTrees.IOBTree import IOBucket, IOBTree
from zope import interface, component
-from zope.app.intid.interfaces import IIntIds
from zope.component import adapts
from zope.interface import implements, implementer
from zope.cachedescriptors.property import Lazy
+from zope.intid.interfaces import IIntIds
from cybertools.catalog.query import Term, Eq, Between, And, Or
from cybertools.catalog.query import Text as BaseText
diff --git a/external/browser.py b/external/browser.py
index 00ace6e..2427baf 100644
--- a/external/browser.py
+++ b/external/browser.py
@@ -27,7 +27,6 @@ import os
import time
from zope import component
from zope.interface import Interface, implements
-from zope.app import zapi
from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile
from zope.cachedescriptors.property import Lazy
from zope.security.proxy import removeSecurityProxy
diff --git a/knowledge/knowledge.py b/knowledge/knowledge.py
index 38db3fd..c77223b 100644
--- a/knowledge/knowledge.py
+++ b/knowledge/knowledge.py
@@ -24,7 +24,6 @@ $Id$
"""
from zope import interface, component
-from zope.app import zapi
from zope.component import adapts
from zope.interface import implements
from zope.cachedescriptors.property import Lazy
diff --git a/organize/README.txt b/organize/README.txt
index cbd7bd7..9be3fe0 100644
--- a/organize/README.txt
+++ b/organize/README.txt
@@ -155,7 +155,7 @@ with a principal folder:
>>> from zope.app.authentication.authentication import PluggableAuthentication
>>> from zope.app.security.interfaces import IAuthentication
>>> ensureUtility(site, IAuthentication, '', PluggableAuthentication,
- ... copy_to_zlog=False, asObject=True)
+ ... copy_to_zlog=False)
<...PluggableAuthentication...>
>>> pau = component.getUtility(IAuthentication, context=site)
@@ -265,7 +265,7 @@ Automatic security settings on persons
Person objects that have a user assigned to them receive this user
(principal) as their owner.
- >>> from zope.app.securitypolicy.interfaces import IPrincipalRoleMap
+ >>> from zope.securitypolicy.interfaces import IPrincipalRoleMap
>>> IPrincipalRoleMap(concepts['john']).getPrincipalsAndRoles()
[('loops.Owner', 'users.john', PermissionSetting: Allow)]
>>> IPrincipalRoleMap(concepts['person.newuser']).getPrincipalsAndRoles()
diff --git a/organize/configure.zcml b/organize/configure.zcml
index e760a03..c746607 100644
--- a/organize/configure.zcml
+++ b/organize/configure.zcml
@@ -65,11 +65,11 @@
provides="zope.app.authentication.interfaces.ICredentialsPlugin"
factory="loops.organize.auth.LoopsSessionCredentialsPlugin" />
-
+
-
+
diff --git a/organize/interfaces.py b/organize/interfaces.py
index c60fdc8..01a580b 100644
--- a/organize/interfaces.py
+++ b/organize/interfaces.py
@@ -24,10 +24,10 @@ $Id$
from zope.interface import Interface, Attribute
from zope import interface, component, schema
-from zope.app import zapi
from zope.app.principalannotation import annotations
from zope.app.security.interfaces import IAuthentication, PrincipalLookupError
from zope.security.proxy import removeSecurityProxy
+from zope.traversing.api import getName
from cybertools.organize.interfaces import IAddress as IBaseAddress
from cybertools.organize.interfaces import IPerson as IBasePerson
@@ -70,7 +70,7 @@ class UserId(schema.TextLine):
if person is not None and person != context:
raiseValidationError(
_(u'There is alread a person ($person) assigned to user $userId.',
- mapping=dict(person=zapi.getName(person),
+ mapping=dict(person=getName(person),
userId=userId)))
diff --git a/organize/process/README.txt b/organize/process/README.txt
index 340912f..ee9c2ac 100644
--- a/organize/process/README.txt
+++ b/organize/process/README.txt
@@ -12,7 +12,6 @@ Let's do some basic set up
>>> site = placefulSetUp(True)
>>> from zope import component, interface
- >>> from zope.app import zapi
and setup a simple loops site with a concept manager and some concepts
(with all the type machinery, what in real life is done via standard
diff --git a/organize/process/definition.py b/organize/process/definition.py
index 04677ae..b287110 100644
--- a/organize/process/definition.py
+++ b/organize/process/definition.py
@@ -24,7 +24,6 @@ $Id$
"""
from zope import interface, component
-from zope.app import zapi
from zope.component import adapts
from zope.interface import implements
from zope.cachedescriptors.property import Lazy
diff --git a/organize/tests.py b/organize/tests.py
index 7222b18..4e9e339 100755
--- a/organize/tests.py
+++ b/organize/tests.py
@@ -17,8 +17,8 @@ from zope.app.principalannotation import annotations
from zope.app.principalannotation.interfaces import IPrincipalAnnotationUtility
from zope.app.security.interfaces import IAuthentication
from zope.app.security.principalregistry import PrincipalRegistry
-from zope.app.securitypolicy.interfaces import IRolePermissionManager
-from zope.app.securitypolicy.interfaces import IPrincipalRoleManager
+from zope.securitypolicy.interfaces import IRolePermissionManager
+from zope.securitypolicy.interfaces import IPrincipalRoleManager
from cybertools.util.jeep import Jeep
from loops.common import adapted
@@ -50,7 +50,7 @@ def setupObjectsForTesting(site, concepts):
loopsRoot = concepts.getLoopsRoot()
setupData = setupUtilitiesAndAdapters(loopsRoot)
ensureUtility(site, IAuthentication, '', PluggableAuthentication,
- copy_to_zlog=False, asObject=True)
+ copy_to_zlog=False)
pau = component.getUtility(IAuthentication, context=site)
# create principal folder and user(s)
pFolder = PrincipalFolder('users.')
diff --git a/organize/util.py b/organize/util.py
index 0587200..b8a35e9 100644
--- a/organize/util.py
+++ b/organize/util.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2009 Helmut Merz helmutm@cy55.de
+# Copyright (c) 2011 Helmut Merz helmutm@cy55.de
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -28,7 +28,7 @@ from zope.app.authentication.interfaces import IAuthenticatorPlugin
from zope.app.authentication.groupfolder import GroupFolder
from zope.app.security.interfaces import IAuthentication, PrincipalLookupError
from zope.app.security.settings import Allow, Deny, Unset
-from zope.app.securitypolicy.interfaces import IPrincipalRoleManager
+from zope.securitypolicy.interfaces import IPrincipalRoleManager
from zope.traversing.api import getParents
from loops.common import adapted
from loops.type import getOptionsDict
diff --git a/query.py b/query.py
index 1c0ddce..d7a0a93 100644
--- a/query.py
+++ b/query.py
@@ -27,8 +27,8 @@ from BTrees.IFBTree import weightedIntersection, weightedUnion, IFBucket
from zope import schema, component
from zope.interface import Interface, Attribute, implements
from zope.app.catalog.interfaces import ICatalog
-from zope.app.intid.interfaces import IIntIds
from zope.cachedescriptors.property import Lazy
+from zope.intid.interfaces import IIntIds
from cybertools.typology.interfaces import IType
from loops.common import AdapterBase
diff --git a/security/browser/admin.py b/security/browser/admin.py
index 1ef9e7b..0679ec1 100644
--- a/security/browser/admin.py
+++ b/security/browser/admin.py
@@ -28,17 +28,17 @@ from zope.app.security.interfaces import IPermission
from zope.app.security.settings import Allow, Deny, Unset
from zope.app.securitypolicy.browser import granting
from zope.app.securitypolicy.browser.rolepermissionview import RolePermissionView
-from zope.app.securitypolicy.interfaces import IPrincipalRoleManager, \
- IRolePermissionMap
-from zope.app.securitypolicy.interfaces import IPrincipalPermissionManager, \
- IPrincipalPermissionMap
-from zope.app.securitypolicy.zopepolicy import SettingAsBoolean
from zope import component
from zope.event import notify
from zope.interface import implements
from zope.cachedescriptors.property import Lazy
from zope.lifecycleevent import ObjectCreatedEvent, ObjectModifiedEvent
from zope.security.proxy import removeSecurityProxy
+from zope.securitypolicy.interfaces import IPrincipalRoleManager, \
+ IRolePermissionMap
+from zope.securitypolicy.interfaces import IPrincipalPermissionManager, \
+ IPrincipalPermissionMap
+from zope.securitypolicy.zopepolicy import SettingAsBoolean
from zope.traversing.api import getName, getParent, getParents
from loops.common import adapted
diff --git a/security/browser/audit.py b/security/browser/audit.py
index 5030aa9..366edaf 100644
--- a/security/browser/audit.py
+++ b/security/browser/audit.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2010 Helmut Merz helmutm@cy55.de
+# Copyright (c) 2011 Helmut Merz helmutm@cy55.de
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -24,9 +24,9 @@ $Id$
from zope import interface, component
from zope.app.pagetemplate import ViewPageTemplateFile
-from zope.app.securitypolicy.interfaces import IRolePermissionMap
-from zope.app.securitypolicy.zopepolicy import SettingAsBoolean
from zope.cachedescriptors.property import Lazy
+from zope.securitypolicy.interfaces import IRolePermissionMap
+from zope.securitypolicy.zopepolicy import SettingAsBoolean
from zope.traversing.api import getName, getParent
from loops.browser.concept import ConceptView
diff --git a/security/common.py b/security/common.py
index 31ac6f2..e280aed 100644
--- a/security/common.py
+++ b/security/common.py
@@ -27,14 +27,14 @@ from zope import component
from zope.annotation.interfaces import IAttributeAnnotatable
from zope.app.container.interfaces import IObjectAddedEvent
from zope.app.security.settings import Allow, Deny, Unset
-from zope.app.securitypolicy.interfaces import IPrincipalRoleManager
-from zope.app.securitypolicy.interfaces import IRolePermissionManager
from zope.cachedescriptors.property import Lazy
from zope.interface import implements
from zope.lifecycleevent import IObjectCreatedEvent, IObjectModifiedEvent
from zope.security import canAccess, canWrite
from zope.security import checkPermission as baseCheckPermission
from zope.security.management import getInteraction
+from zope.securitypolicy.interfaces import IPrincipalRoleManager
+from zope.securitypolicy.interfaces import IRolePermissionManager
from zope.traversing.api import getName
from zope.traversing.interfaces import IPhysicallyLocatable
diff --git a/security/configure.zcml b/security/configure.zcml
index dba17bf..7fe3f1a 100644
--- a/security/configure.zcml
+++ b/security/configure.zcml
@@ -16,15 +16,15 @@
diff --git a/security/policy.py b/security/policy.py
index 17c0df0..011af29 100644
--- a/security/policy.py
+++ b/security/policy.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2008 Helmut Merz helmutm@cy55.de
+# Copyright (c) 2011 Helmut Merz helmutm@cy55.de
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -24,16 +24,16 @@ $Id$
"""
from zope.app.security.settings import Allow, Deny, Unset
-from zope.app.securitypolicy.interfaces import IPrincipalRoleMap, IRolePermissionMap
-from zope.app.securitypolicy.zopepolicy import ZopeSecurityPolicy
-from zope.app.securitypolicy.zopepolicy import SettingAsBoolean, \
- globalRolesForPrincipal, globalRolesForPermission
from zope import component
from zope.component import adapts
from zope.cachedescriptors.property import Lazy
from zope.interface import classProvides
from zope.security.interfaces import ISecurityPolicy
from zope.security.proxy import removeSecurityProxy
+from zope.securitypolicy.interfaces import IPrincipalRoleMap, IRolePermissionMap
+from zope.securitypolicy.zopepolicy import ZopeSecurityPolicy
+from zope.securitypolicy.zopepolicy import SettingAsBoolean, \
+ globalRolesForPrincipal, globalRolesForPermission
from loops.interfaces import IConcept, IResource
diff --git a/security/setter.py b/security/setter.py
index 5c9e0c0..373e41e 100644
--- a/security/setter.py
+++ b/security/setter.py
@@ -24,14 +24,14 @@ $Id$
"""
from zope.app.security.settings import Allow, Deny, Unset
-from zope.app.securitypolicy.interfaces import \
- IRolePermissionMap, IRolePermissionManager, \
- IPrincipalRoleMap, IPrincipalRoleManager
from zope import component
from zope.component import adapts
from zope.cachedescriptors.property import Lazy
from zope.interface import implements, Interface
from zope.security.proxy import isinstance
+from zope.securitypolicy.interfaces import \
+ IRolePermissionMap, IRolePermissionManager, \
+ IPrincipalRoleMap, IPrincipalRoleManager
from loops.common import adapted, AdapterBase, baseObject
from loops.interfaces import IConceptSchema, IBaseResourceSchema, ILoopsAdapter
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000..01bb954
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,3 @@
+[egg_info]
+tag_build = dev
+tag_svn_revision = true
diff --git a/setup_egg.py b/setup_egg.py
new file mode 100644
index 0000000..13c45a5
--- /dev/null
+++ b/setup_egg.py
@@ -0,0 +1,29 @@
+from setuptools import setup, find_packages
+import sys, os
+
+version = '2.0'
+
+setup(name='loops',
+ version=version,
+ description="loops",
+ long_description="""\
+linked objects for organizational process services""",
+ classifiers=[], # Get strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers
+ keywords='',
+ author='Helmut Merz',
+ author_email='helmutm@cy55.de',
+ url='',
+ license='GPL',
+ packages=find_packages(exclude=['ez_setup', 'examples', 'tests']),
+ include_package_data=True,
+ zip_safe=False,
+ install_requires=[
+ # -*- Extra requirements: -*-
+ 'zope.app.securitypolicy',
+ 'zope.app.session',
+ 'cybertools',
+ ],
+ entry_points="""
+ # -*- Entry points: -*-
+ """,
+ )
diff --git a/target.py b/target.py
index 43220ab..a1c7cee 100644
--- a/target.py
+++ b/target.py
@@ -23,7 +23,6 @@ resources e.g. from forms that are called on view/node objects.
$Id$
"""
-from zope.app import zapi
from zope.cachedescriptors.property import Lazy
from zope.component import adapts
from zope.i18nmessageid import MessageFactory
diff --git a/tests/setup.py b/tests/setup.py
index dcc1197..b23acf7 100644
--- a/tests/setup.py
+++ b/tests/setup.py
@@ -16,9 +16,6 @@ from zope.app.principalannotation import PrincipalAnnotationUtility
from zope.app.principalannotation.interfaces import IPrincipalAnnotationUtility
from zope.app.security.principalregistry import principalRegistry
from zope.app.security.interfaces import IAuthentication
-from zope.app.securitypolicy.zopepolicy import ZopeSecurityPolicy
-from zope.app.securitypolicy.principalrole import AnnotationPrincipalRoleManager
-from zope.app.securitypolicy.rolepermission import AnnotationRolePermissionManager
from zope.app.session.interfaces import IClientIdManager, ISessionDataContainer
from zope.app.session import session
from zope.dublincore.annotatableadapter import ZDCAnnotatableAdapter
@@ -27,6 +24,9 @@ from zope.interface import Interface, implements
from zope.publisher.interfaces.browser import IBrowserRequest, IBrowserView
from zope.security.checker import Checker, defineChecker
from zope.security.management import setSecurityPolicy
+from zope.securitypolicy.zopepolicy import ZopeSecurityPolicy
+from zope.securitypolicy.principalrole import AnnotationPrincipalRoleManager
+from zope.securitypolicy.rolepermission import AnnotationRolePermissionManager
from cybertools.browser.controller import Controller
from cybertools.catalog.keyword import KeywordIndex
diff --git a/tests/test_loops.py b/tests/test_loops.py
index 8c41a97..a14f188 100755
--- a/tests/test_loops.py
+++ b/tests/test_loops.py
@@ -1,11 +1,9 @@
# $Id$
import unittest, doctest
-from zope.testing.doctestunit import DocFileSuite
from zope.interface.verify import verifyClass
from zope.interface import implements
-from zope.app import zapi
-from zope.app.intid.interfaces import IIntIds
+from zope.intid.interfaces import IIntIds
from loops.interfaces import ILoops
from loops.base import Loops
@@ -48,8 +46,8 @@ def test_suite():
flags = doctest.NORMALIZE_WHITESPACE | doctest.ELLIPSIS
return unittest.TestSuite((
unittest.makeSuite(Test),
- DocFileSuite('../README.txt', optionflags=flags),
- DocFileSuite('../helpers.txt', optionflags=flags),
+ doctest.DocFileSuite('../README.txt', optionflags=flags),
+ doctest.DocFileSuite('../helpers.txt', optionflags=flags),
))
if __name__ == '__main__':
diff --git a/util.py b/util.py
index b02bce9..0206bfc 100644
--- a/util.py
+++ b/util.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2006 Helmut Merz helmutm@cy55.de
+# Copyright (c) 2011 Helmut Merz helmutm@cy55.de
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -24,8 +24,8 @@ $Id$
import os
from zope import component
-from zope.app.intid.interfaces import IIntIds
from zope.interface import directlyProvides, directlyProvidedBy
+from zope.intid.interfaces import IIntIds
from zope.i18nmessageid import MessageFactory
from zope.schema import vocabulary
diff --git a/view.py b/view.py
index 5d36991..5430413 100644
--- a/view.py
+++ b/view.py
@@ -26,11 +26,11 @@ from zope import component
from zope.app.container.btree import BTreeContainer
from zope.app.container.contained import Contained
from zope.app.container.ordered import OrderedContainer
-from zope.app.intid.interfaces import IIntIds
from zope.cachedescriptors.property import Lazy, readproperty
from zope.component import adapts
from zope.interface import implements
from zope.interface import alsoProvides, directlyProvides, directlyProvidedBy
+from zope.intid.interfaces import IIntIds
from zope.publisher.browser import applySkin
from zope import schema
from zope.security import canAccess