[Checkins] SVN: appendonly/trunk/ Add support for Python 3.2 / 3.3.
Tres Seaver
cvs-admin at zope.org
Sat Mar 9 05:58:32 UTC 2013
Log message for revision 130072:
Add support for Python 3.2 / 3.3.
Changed:
_U appendonly/trunk/
U appendonly/trunk/.bzrignore
U appendonly/trunk/CHANGES.txt
U appendonly/trunk/appendonly/__init__.py
U appendonly/trunk/appendonly/tests.py
U appendonly/trunk/setup.py
U appendonly/trunk/tox.ini
-=-
Modified: appendonly/trunk/.bzrignore
===================================================================
--- appendonly/trunk/.bzrignore 2013-03-08 23:08:34 UTC (rev 130071)
+++ appendonly/trunk/.bzrignore 2013-03-09 05:58:30 UTC (rev 130072)
@@ -3,3 +3,5 @@
*.egg-info
nosetests.xml
coverage.xml
+dist
+__pycache__
Modified: appendonly/trunk/CHANGES.txt
===================================================================
--- appendonly/trunk/CHANGES.txt 2013-03-08 23:08:34 UTC (rev 130071)
+++ appendonly/trunk/CHANGES.txt 2013-03-09 05:58:30 UTC (rev 130072)
@@ -1,10 +1,15 @@
``appendonly`` Changelog
========================
+After 1.0.1
+-----------
+
+- Added support for Python 3.2 / 3.3.
+
1.0.1 (2013-02-25)
------------------
-- Fix brown-bag in 1.0 release ('Accumulator.append' changes were not
+- Fixed brown-bag in 1.0 release ('Accumulator.append' changes were not
persisted).
1.0 (2013-02-25)
Modified: appendonly/trunk/appendonly/__init__.py
===================================================================
--- appendonly/trunk/appendonly/__init__.py 2013-03-08 23:08:34 UTC (rev 130071)
+++ appendonly/trunk/appendonly/__init__.py 2013-03-09 05:58:30 UTC (rev 130072)
@@ -12,9 +12,14 @@
##############################################################################
from persistent import Persistent
-from ZODB.POSException import ConflictError
-from zope.interface import implements
+from zope.interface import implementer
+try:
+ from ZODB.POSException import ConflictError
+except ImportError:
+ class ConflictError(Exception):
+ pass
+
from appendonly.interfaces import IAppendStack
class _LayerFull(ValueError):
@@ -64,6 +69,7 @@
self._stack.append(obj)
+ at implementer(IAppendStack)
class AppendStack(Persistent):
""" Append-only stack w/ garbage collection.
@@ -76,12 +82,11 @@
- Iteration occurs in reverse order of appends, and yields
(generation, index, object) tuples.
"""
- implements(IAppendStack)
def __init__(self, max_layers=10, max_length=100):
self._max_layers = max_layers
self._max_length = max_length
- self._layers = [_Layer(max_length, generation=0L)]
+ self._layers = [_Layer(max_length, generation=0)]
def __iter__(self):
""" See IAppendStack.
@@ -107,7 +112,7 @@
layers[0].push(obj)
except _LayerFull:
new_layer = _Layer(self._max_length,
- generation=layers[0]._generation+1L)
+ generation=layers[0]._generation+1)
new_layer.push(obj)
self._layers.insert(0, new_layer)
self._layers, pruned = layers[:max], layers[max:]
@@ -180,7 +185,7 @@
while new_objects:
to_push, new_objects = new_objects[0], new_objects[1:]
if len(m_layers[0][1]) == c_m_length:
- m_layers.insert(0, (m_layers[0][0]+1L, []))
+ m_layers.insert(0, (m_layers[0][0]+1, []))
m_layers[0][1].append(to_push)
return c_m_layers, c_m_length, m_layers[:c_m_layers]
Modified: appendonly/trunk/appendonly/tests.py
===================================================================
--- appendonly/trunk/appendonly/tests.py 2013-03-08 23:08:34 UTC (rev 130071)
+++ appendonly/trunk/appendonly/tests.py 2013-03-09 05:58:30 UTC (rev 130072)
@@ -226,31 +226,31 @@
self.assertEqual(stack._layers[2]._generation, 8)
self.assertEqual(stack._layers[3]._generation, 7)
self.assertEqual(len(_pruned), 7)
- self.assertEqual(_pruned[0], range(0, 100))
- self.assertEqual(_pruned[1], range(100, 200))
- self.assertEqual(_pruned[2], range(200, 300))
- self.assertEqual(_pruned[3], range(300, 400))
- self.assertEqual(_pruned[4], range(400, 500))
- self.assertEqual(_pruned[5], range(500, 600))
- self.assertEqual(_pruned[6], range(600, 700))
+ self.assertEqual(_pruned[0], list(range(0, 100)))
+ self.assertEqual(_pruned[1], list(range(100, 200)))
+ self.assertEqual(_pruned[2], list(range(200, 300)))
+ self.assertEqual(_pruned[3], list(range(300, 400)))
+ self.assertEqual(_pruned[4], list(range(400, 500)))
+ self.assertEqual(_pruned[5], list(range(500, 600)))
+ self.assertEqual(_pruned[6], list(range(600, 700)))
def test___getstate___empty(self):
stack = self._makeOne()
- self.assertEqual(stack.__getstate__(), (10, 100, [(0L, [])]))
+ self.assertEqual(stack.__getstate__(), (10, 100, [(0, [])]))
def test___getstate___filled(self):
stack = self._makeOne(2, 3)
for i in range(10):
stack.push(i)
self.assertEqual(stack.__getstate__(),
- (2, 3, [(3L, [9]), (2L, [6, 7, 8])]))
+ (2, 3, [(3, [9]), (2, [6, 7, 8])]))
def test___setstate___(self):
stack = self._makeOne()
STATE = (2, # _max_layers
3, # _max_length
- [(3L, [9]), # _layers[0] as (generation, list)
- (2L, [6, 7, 8]), # _layers[1] as (generation, list)
+ [(3, [9]), # _layers[0] as (generation, list)
+ (2, [6, 7, 8]), # _layers[1] as (generation, list)
],
)
stack.__setstate__(STATE)
@@ -263,23 +263,23 @@
])
def test__p_resolveConflict_mismatched_max_layers(self):
- from ZODB.POSException import ConflictError
+ from appendonly import ConflictError
O_STATE = (2, # _max_layers
3, # _max_length
- [(3L, [9]), # _layers[0] as (generation, list)
- (2L, [6, 7, 8]), # _layers[1] as (generation, list)
+ [(3, [9]), # _layers[0] as (generation, list)
+ (2, [6, 7, 8]), # _layers[1] as (generation, list)
],
)
C_STATE = (2, # _max_layers
3, # _max_length
- [(3L, [9]), # _layers[0] as (generation, list)
- (2L, [6, 7, 8]), # _layers[1] as (generation, list)
+ [(3, [9]), # _layers[0] as (generation, list)
+ (2, [6, 7, 8]), # _layers[1] as (generation, list)
],
)
N_STATE = (3, # _max_layers
3, # _max_length
- [(3L, [9]), # _layers[0] as (generation, list)
- (2L, [6, 7, 8]), # _layers[1] as (generation, list)
+ [(3, [9]), # _layers[0] as (generation, list)
+ (2, [6, 7, 8]), # _layers[1] as (generation, list)
],
)
stack = self._makeOne()
@@ -287,23 +287,23 @@
O_STATE, C_STATE, N_STATE)
def test__p_resolveConflict_mismatched_max_length(self):
- from ZODB.POSException import ConflictError
+ from appendonly import ConflictError
O_STATE = (2, # _max_layers
3, # _max_length
- [(3L, [9]), # _layers[0] as (generation, list)
- (2L, [6, 7, 8]), # _layers[1] as (generation, list)
+ [(3, [9]), # _layers[0] as (generation, list)
+ (2, [6, 7, 8]), # _layers[1] as (generation, list)
],
)
C_STATE = (2, # _max_layers
3, # _max_length
- [(3L, [9]), # _layers[0] as (generation, list)
- (2L, [6, 7, 8]), # _layers[1] as (generation, list)
+ [(3, [9]), # _layers[0] as (generation, list)
+ (2, [6, 7, 8]), # _layers[1] as (generation, list)
],
)
N_STATE = (2, # _max_layers
4, # _max_length
- [(3L, [9]), # _layers[0] as (generation, list)
- (2L, [6, 7, 8]), # _layers[1] as (generation, list)
+ [(3, [9]), # _layers[0] as (generation, list)
+ (2, [6, 7, 8]), # _layers[1] as (generation, list)
],
)
stack = self._makeOne()
@@ -311,23 +311,23 @@
O_STATE, C_STATE, N_STATE)
def test__p_resolveConflict_old_latest_commited_earliest(self):
- from ZODB.POSException import ConflictError
+ from appendonly import ConflictError
O_STATE = (2, # _max_layers
3, # _max_length
- [(3L, [9]), # _layers[0] as (generation, list)
- (2L, [6, 7, 8]), # _layers[1] as (generation, list)
+ [(3, [9]), # _layers[0] as (generation, list)
+ (2, [6, 7, 8]), # _layers[1] as (generation, list)
],
)
C_STATE = (2, # _max_layers
3, # _max_length
- [(5L, [29]), # _layers[0] as (generation, list)
- (4L, [26, 27, 28]), # _layers[1] as (generation, list)
+ [(5, [29]), # _layers[0] as (generation, list)
+ (4, [26, 27, 28]), # _layers[1] as (generation, list)
],
)
N_STATE = (2, # _max_layers
3, # _max_length
- [(3L, [9, 10]), # _layers[0] as (generation, list)
- (2L, [6, 7, 8]), # _layers[1] as (generation, list)
+ [(3, [9, 10]), # _layers[0] as (generation, list)
+ (2, [6, 7, 8]), # _layers[1] as (generation, list)
],
)
stack = self._makeOne()
@@ -335,23 +335,23 @@
O_STATE, C_STATE, N_STATE)
def test__p_resolveConflict_old_latest_new_earliest(self):
- from ZODB.POSException import ConflictError
+ from appendonly import ConflictError
O_STATE = (2, # _max_layers
3, # _max_length
- [(3L, [9]), # _layers[0] as (generation, list)
- (2L, [6, 7, 8]), # _layers[1] as (generation, list)
+ [(3, [9]), # _layers[0] as (generation, list)
+ (2, [6, 7, 8]), # _layers[1] as (generation, list)
],
)
C_STATE = (2, # _max_layers
3, # _max_length
- [(3L, [9, 10]), # _layers[0] as (generation, list)
- (2L, [6, 7, 8]), # _layers[1] as (generation, list)
+ [(3, [9, 10]), # _layers[0] as (generation, list)
+ (2, [6, 7, 8]), # _layers[1] as (generation, list)
],
)
N_STATE = (2, # _max_layers
3, # _max_length
- [(5L, [29]), # _layers[0] as (generation, list)
- (4L, [26, 27, 28]), # _layers[1] as (generation, list)
+ [(5, [29]), # _layers[0] as (generation, list)
+ (4, [26, 27, 28]), # _layers[1] as (generation, list)
],
)
stack = self._makeOne()
@@ -361,26 +361,26 @@
def test__p_resolveConflict_no_added_layers(self):
O_STATE = (2, # _max_layers
3, # _max_length
- [(3L, [9]), # _layers[0] as (generation, list)
- (2L, [6, 7, 8]), # _layers[1] as (generation, list)
+ [(3, [9]), # _layers[0] as (generation, list)
+ (2, [6, 7, 8]), # _layers[1] as (generation, list)
],
)
C_STATE = (2, # _max_layers
3, # _max_length
- [(3L, [9, 10]), # _layers[0] as (generation, list)
- (2L, [6, 7, 8]), # _layers[1] as (generation, list)
+ [(3, [9, 10]), # _layers[0] as (generation, list)
+ (2, [6, 7, 8]), # _layers[1] as (generation, list)
],
)
N_STATE = (2, # _max_layers
3, # _max_length
- [(3L, [9, 11]), # _layers[0] as (generation, list)
- (2L, [6, 7, 8]), # _layers[1] as (generation, list)
+ [(3, [9, 11]), # _layers[0] as (generation, list)
+ (2, [6, 7, 8]), # _layers[1] as (generation, list)
],
)
M_STATE = (2, # _max_layers
3, # _max_length
- [(3L, [9, 10, 11]),# _layers[0] as (generation, list)
- (2L, [6, 7, 8]), # _layers[1] as (generation, list)
+ [(3, [9, 10, 11]),# _layers[0] as (generation, list)
+ (2, [6, 7, 8]), # _layers[1] as (generation, list)
],
)
stack = self._makeOne()
@@ -390,26 +390,26 @@
def test__p_resolveConflict_added_committed_layer(self):
O_STATE = (2, # _max_layers
3, # _max_length
- [(3L, [9]), # _layers[0] as (generation, list)
- (2L, [6, 7, 8]), # _layers[1] as (generation, list)
+ [(3, [9]), # _layers[0] as (generation, list)
+ (2, [6, 7, 8]), # _layers[1] as (generation, list)
],
)
C_STATE = (2, # _max_layers
3, # _max_length
- [(4L, [12]), # _layers[0] as (generation, list)
- (3L, [9, 10, 11]),# _layers[1] as (generation, list)
+ [(4, [12]), # _layers[0] as (generation, list)
+ (3, [9, 10, 11]),# _layers[1] as (generation, list)
],
)
N_STATE = (2, # _max_layers
3, # _max_length
- [(3L, [9, 13]), # _layers[0] as (generation, list)
- (2L, [6, 7, 8]), # _layers[1] as (generation, list)
+ [(3, [9, 13]), # _layers[0] as (generation, list)
+ (2, [6, 7, 8]), # _layers[1] as (generation, list)
],
)
M_STATE = (2, # _max_layers
3, # _max_length
- [(4L, [12, 13]), # _layers[0] as (generation, list)
- (3L, [9, 10, 11]),# _layers[1] as (generation, list)
+ [(4, [12, 13]), # _layers[0] as (generation, list)
+ (3, [9, 10, 11]),# _layers[1] as (generation, list)
],
)
stack = self._makeOne()
@@ -419,26 +419,26 @@
def test__p_resolveConflict_added_new_layer(self):
O_STATE = (2, # _max_layers
3, # _max_length
- [(3L, [9]), # _layers[0] as (generation, list)
- (2L, [6, 7, 8]), # _layers[1] as (generation, list)
+ [(3, [9]), # _layers[0] as (generation, list)
+ (2, [6, 7, 8]), # _layers[1] as (generation, list)
],
)
C_STATE = (2, # _max_layers
3, # _max_length
- [(3L, [9, 10]), # _layers[0] as (generation, list)
- (2L, [6, 7, 8]), # _layers[1] as (generation, list)
+ [(3, [9, 10]), # _layers[0] as (generation, list)
+ (2, [6, 7, 8]), # _layers[1] as (generation, list)
],
)
N_STATE = (2, # _max_layers
3, # _max_length
- [(4L, [13, 14]), # _layers[0] as (generation, list)
- (3L, [9, 11, 12]),# _layers[1] as (generation, list)
+ [(4, [13, 14]), # _layers[0] as (generation, list)
+ (3, [9, 11, 12]),# _layers[1] as (generation, list)
],
)
M_STATE = (2, # _max_layers
3, # _max_length
- [(4L, [12, 13, 14]),# _layers[0] as (generation, list)
- (3L, [9, 10, 11]),# _layers[1] as (generation, list)
+ [(4, [12, 13, 14]),# _layers[0] as (generation, list)
+ (3, [9, 10, 11]),# _layers[1] as (generation, list)
],
)
stack = self._makeOne()
@@ -563,7 +563,7 @@
self.assertEqual(resolved, C_STATE)
def test__p_resolveConflict_w_different_generation(self):
- from ZODB.POSException import ConflictError
+ from appendonly import ConflictError
O_STATE = {'_generation': -1, '_head': None}
c_obj = object()
C_STATE = {'_generation': 0, '_head': c_obj}
Modified: appendonly/trunk/setup.py
===================================================================
--- appendonly/trunk/setup.py 2013-03-08 23:08:34 UTC (rev 130071)
+++ appendonly/trunk/setup.py 2013-03-09 05:58:30 UTC (rev 130072)
@@ -31,6 +31,9 @@
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.6",
"Programming Language :: Python :: 2.7",
+ "Programming Language :: Python :: 3",
+ "Programming Language :: Python :: 3.2",
+ "Programming Language :: Python :: 3.3",
"Programming Language :: Python :: Implementation :: CPython",
],
author='Tres Seaver, Agendaless Consulting, Inc.',
@@ -42,7 +45,8 @@
include_package_data=True,
zip_safe=False,
install_requires = [
- 'ZODB3',
+ 'persistent',
+ #'ZODB', # conditional until ported to Py3k
'zope.interface',
],
test_suite="appendonly.tests",
Modified: appendonly/trunk/tox.ini
===================================================================
--- appendonly/trunk/tox.ini 2013-03-08 23:08:34 UTC (rev 130071)
+++ appendonly/trunk/tox.ini 2013-03-09 05:58:30 UTC (rev 130072)
@@ -1,7 +1,7 @@
[tox]
envlist =
# py26,py27,pypy,py32,py33,coverage,docs
- py26,py27,coverage
+ py26,py27,py32,py33,coverage
[testenv]
deps =
@@ -11,6 +11,20 @@
commands =
python setup.py test -q
+[testenv:py32]
+deps =
+ persistent
+ zope.interface
+commands =
+ python setup.py test -q
+
+[testenv:py33]
+deps =
+ persistent
+ zope.interface
+commands =
+ python setup.py test -q
+
[testenv:coverage]
basepython =
python2.6
More information about the checkins
mailing list