Merge lp:~cjwatson/storm/zope-interface-class-decorators into lp:storm

Proposed by Colin Watson
Status: Merged
Merged at revision: 501
Proposed branch: lp:~cjwatson/storm/zope-interface-class-decorators
Merge into: lp:storm
Diff against target: 74 lines (+6/-7)
3 files modified
setup.py (+1/-0)
storm/zope/zstorm.py (+3/-5)
tests/zope/adapters.py (+2/-2)
To merge this branch: bzr merge lp:~cjwatson/storm/zope-interface-class-decorators
Reviewer Review Type Date Requested Status
Facundo Batista (community) Approve
Storm Developers Pending
Review via email: mp+368445@code.launchpad.net

Commit message

Use zope.interface class decorators rather than class advice.

Description of the change

Class advice doesn't work in Python 3.

The required version of zope.interface has been packaged as far back as Ubuntu 13.04 (raring), which I think is acceptable at this point.

To post a comment you must log in.
Revision history for this message
Facundo Batista (facundo) wrote :

Great!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'setup.py'
2--- setup.py 2019-06-05 11:41:07 +0000
3+++ setup.py 2019-06-06 10:24:25 +0000
4@@ -32,6 +32,7 @@
5 "transaction >= 1.0.0",
6 "twisted >= 10.0.0",
7 "zope.component >= 3.8.0",
8+ "zope.interface >= 4.0.0",
9 "zope.security >= 3.7.2",
10 ]
11
12
13=== modified file 'storm/zope/zstorm.py'
14--- storm/zope/zstorm.py 2019-06-05 11:41:07 +0000
15+++ storm/zope/zstorm.py 2019-06-06 10:24:25 +0000
16@@ -31,7 +31,7 @@
17
18 from uuid import uuid4
19
20-from zope.interface import implements
21+from zope.interface import implementer
22
23 import transaction
24 from transaction.interfaces import IDataManager
25@@ -46,6 +46,7 @@
26 from storm.xid import Xid
27
28
29+@implementer(IZStorm)
30 class ZStorm(object):
31 """A utility which integrates Storm with Zope.
32
33@@ -63,8 +64,6 @@
34 store = getUtility(IZStorm).get('main')
35 """
36
37- implements(IZStorm)
38-
39 transaction_manager = transaction.manager
40
41 _databases = {}
42@@ -257,11 +256,10 @@
43 return False
44
45
46+@implementer(IDataManager)
47 class StoreDataManager(object):
48 """An L{IDataManager} implementation for C{ZStorm}."""
49
50- implements(IDataManager)
51-
52 def __init__(self, store, zstorm):
53 self._store = store
54 self._zstorm = zstorm
55
56=== modified file 'tests/zope/adapters.py'
57--- tests/zope/adapters.py 2019-06-05 11:41:07 +0000
58+++ tests/zope/adapters.py 2019-06-06 10:24:25 +0000
59@@ -25,15 +25,15 @@
60
61
62 if has_zope_component:
63- from zope.interface import implements
64+ from zope.interface import implementer
65 from zope.component import getGlobalSiteManager
66
67 from storm.store import EmptyResultSet
68 from storm.zope.adapters import sqlobject_result_set_to_storm_result_set
69 from storm.zope.interfaces import IResultSet, ISQLObjectResultSet
70
71+ @implementer(ISQLObjectResultSet)
72 class TestSQLObjectResultSet(object):
73- implements(ISQLObjectResultSet)
74 _result_set = EmptyResultSet()
75
76

Subscribers

People subscribed via source and target branches

to status/vote changes: