Skip to content

Commit

Permalink
Drop support for Python 2.4 and 2.5.
Browse files Browse the repository at this point in the history
Replace deprecated 'zope.component.adapts' usage with equivalent
'zope.component.adapter' decorator.

Replace deprecated 'zope.interface.implements' usage with equivalent
'zope.interface.implementer' decorator.
  • Loading branch information
tseaver committed May 17, 2012
1 parent 6d012e6 commit c10f103
Show file tree
Hide file tree
Showing 10 changed files with 54 additions and 33 deletions.
10 changes: 9 additions & 1 deletion CHANGES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,17 @@
Changes
=======

3.14.1 (unreleased)
4.0.0 (unreleased)
-------------------

- Replaced deprecated ``zope.component.adapts`` usage with equivalent
``zope.component.adapter`` decorator.

- Replaced deprecated ``zope.interface.implements`` usage with equivalent
``zope.interface.implementer`` decorator.

- Dropped support for Python 2.4 and 2.5.

- Fixed dependencies : removed ``zope.tal`` and added ``zope.browserpage``.

- ...
Expand Down
16 changes: 14 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,26 @@
open('CHANGES.txt').read())

setup(name='zope.traversing',
version='3.14.1dev',
version='4.0.0dev',
url='http://pypi.python.org/pypi/zope.traversing',
license='ZPL 2.1',
author='Zope Foundation and Contributors',
author_email='zope-dev@zope.org',
description="Resolving paths in the object hierarchy",
long_description=long_description,

classifiers=[
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
'License :: OSI Approved :: Zope Public License',
'Programming Language :: Python',
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.6',
'Programming Language :: Python :: 2.7',
'Natural Language :: English',
'Operating System :: OS Independent',
'Topic :: Internet :: WWW/HTTP',
'Topic :: Software Development',
],
packages=find_packages('src'),
package_dir = {'': 'src'},
namespace_packages=['zope',],
Expand Down
5 changes: 2 additions & 3 deletions src/zope/traversing/adapters.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@
_marker = object() # opaque marker that doesn't get security proxied


@zope.interface.implementer(ITraversable)
class DefaultTraversable(object):
"""Traverses objects via attribute and item lookup"""
zope.interface.implements(ITraversable)

def __init__(self, subject):
self._subject = subject
Expand All @@ -49,11 +49,10 @@ def traverse(self, name, furtherPath):
raise LocationError(subject, name)


@zope.interface.implementer(ITraverser)
class Traverser(object):
"""Provide traverse features"""

zope.interface.implements(ITraverser)

# This adapter can be used for any object.

def __init__(self, wrapper):
Expand Down
6 changes: 3 additions & 3 deletions src/zope/traversing/browser/absoluteurl.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"""
import urllib
import zope.component
from zope.interface import implements
from zope.interface import implementer
from zope.location.interfaces import ILocation
from zope.proxy import sameProxiedObjects
from zope.publisher.browser import BrowserView
Expand All @@ -34,8 +34,8 @@ def absoluteURL(ob, request):
return zope.component.getMultiAdapter((ob, request), IAbsoluteURL)()


@implementer(IAbsoluteURL)
class AbsoluteURL(BrowserView):
implements(IAbsoluteURL)

def __unicode__(self):
return urllib.unquote(self.__str__()).decode('utf-8')
Expand Down Expand Up @@ -113,8 +113,8 @@ def breadcrumbs(self):
return base


@implementer(IAbsoluteURL)
class SiteAbsoluteURL(BrowserView):
implements(IAbsoluteURL)

def __unicode__(self):
return urllib.unquote(self.__str__()).decode('utf-8')
Expand Down
11 changes: 6 additions & 5 deletions src/zope/traversing/browser/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@
from unittest import TestCase, main, makeSuite

import zope.component
from zope.component import getMultiAdapter, adapts
from zope.component import getMultiAdapter, adapter
from zope.component.testing import PlacelessSetup
from zope.traversing.browser.absoluteurl import absoluteURL
from zope.traversing.browser.interfaces import IAbsoluteURL
from zope.traversing.testing import browserView
from zope.i18n.interfaces import IUserPreferredCharsets
from zope.interface import Interface, implements
from zope.interface import Interface, implementer
from zope.interface.verify import verifyObject
from zope.publisher.browser import TestRequest
from zope.publisher.http import IHTTPRequest, HTTPCharsets
Expand All @@ -36,8 +36,9 @@ class IRoot(Interface):
pass


@implementer(IRoot)
class Root(object):
implements(IRoot)
pass


class TrivialContent(object):
Expand All @@ -52,10 +53,10 @@ class FooContent(object):
"""Class whose location will be provided by an adapter."""


@implementer(ILocation)
@adapter(FooContent)
class FooLocation(object):
"""Adapts FooAdapter to the ILocation protocol."""
implements(ILocation)
adapts(FooContent)

def __init__(self, context):
self.context = context
Expand Down
4 changes: 2 additions & 2 deletions src/zope/traversing/interfaces.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

from zope.interface import Attribute
from zope.interface import Interface
from zope.interface import implements
from zope.interface import implementer
from zope.component.interfaces import IObjectEvent

# BBB: Re-import symbols to their old location.
Expand Down Expand Up @@ -179,10 +179,10 @@ class IBeforeTraverseEvent(IObjectEvent):
request = Attribute("The current request")


@implementer(IBeforeTraverseEvent)
class BeforeTraverseEvent(object):
"""An event which gets sent on publication traverse"""

implements(IBeforeTraverseEvent)

def __init__(self, ob, request):
self.object = ob
Expand Down
15 changes: 7 additions & 8 deletions src/zope/traversing/namespace.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,9 @@ def namespaceLookup(ns, name, object, request=None):
>>> class I(zope.interface.Interface):
... 'Test interface'
>>> class C(object):
... zope.interface.implements(I)
>>> @zope.interface.implementer(I)
... class C(object):
... pass
We'll register a simple testing adapter:
Expand Down Expand Up @@ -182,10 +183,9 @@ def queryResource(site, name, request, default=None):

# ---- namespace processors below ----

@zope.interface.implementer(ITraversable)
class SimpleHandler(object):

zope.interface.implements(ITraversable)

def __init__(self, context, request=None):
"""Simple handlers can be used as adapters or views
Expand All @@ -210,8 +210,8 @@ def traverse(self, name, remaining):
Let's set up some example data:
>>> class testcontent(object):
... zope.interface.implements(ITraversable)
>>> @zope.interface.implementer(ITraversable)
... class testcontent(object):
... def traverse(self, name, remaining):
... v = getattr(self, name, None)
... if v is None:
Expand Down Expand Up @@ -324,10 +324,9 @@ def traverse(self, name, ignored):
raise LocationError(ob, name)


@zope.interface.implementer(ITraversable)
class view(object):

zope.interface.implements(ITraversable)

def __init__(self, context, request):
self.context = context
self.request = request
Expand Down
4 changes: 2 additions & 2 deletions src/zope/traversing/tests/test_physicallocationadapters.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
from unittest import TestCase, main, makeSuite

from zope.container.contained import contained
from zope.interface import implements
from zope.interface import implementer
from zope.location.interfaces import ILocationInfo, IRoot
from zope.site.site import LocalSiteManager
from zope.site.site import SiteManagerContainer
Expand All @@ -25,8 +25,8 @@
import zope.traversing.testing


@implementer(IRoot)
class Root(object):
implements(IRoot)

__parent__ = None

Expand Down
5 changes: 3 additions & 2 deletions src/zope/traversing/tests/test_presentation.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,17 @@
"""
from unittest import TestCase, main, makeSuite
from zope.testing.cleanup import CleanUp
from zope.interface import Interface, implements
from zope.interface import Interface, implementer
from zope.publisher.browser import TestRequest
from zope.traversing.namespace import view, resource
from zope.traversing.testing import browserView, browserResource

class IContent(Interface):
pass

@implementer(IContent)
class Content(object):
implements(IContent)
pass

class Resource(object):

Expand Down
11 changes: 6 additions & 5 deletions src/zope/traversing/tests/test_publicationtraverse.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
from unittest import TestCase, main, makeSuite
from zope.testing.cleanup import CleanUp
from zope.component import provideAdapter
from zope.interface import Interface, implements
from zope.interface import Interface, implementer
from zope.publisher.browser import TestRequest
from zope.publisher.interfaces import IPublishTraverse
from zope.publisher.interfaces import NotFound
Expand Down Expand Up @@ -144,33 +144,34 @@ def testMissingSkin(self):
class IContent(Interface):
pass

@implementer(IContent)
class Content(object):
implements(IContent)
pass

class View(object):
def __init__(self, name):
self.name = name

@implementer(ITraversable)
class DummyViewTraverser(object):
implements(ITraversable)

def __init__(self, content, request):
self.content = content

def traverse(self, name, furtherPath):
return View(name)

@implementer(IPublishTraverse)
class DummyPublishTraverse(object):
implements(IPublishTraverse)

def __init__(self, context, request):
pass

def publishTraverse(self, request, name):
return View(name)

@implementer(IBrowserPublisher)
class DummyBrowserPublisher(object):
implements(IBrowserPublisher)

def __init__(self, context):
self.context = removeSecurityProxy(context)
Expand Down

0 comments on commit c10f103

Please sign in to comment.