[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