- TBD
- Fix the hashcode of C
TimeStamp
objects on 64-bit Python 3 on Windows.
- Fixed the Python(/PYPY) implementation
TimeStamp.timeTime
method to have subsecond precision. - When testing
PURE_PYTHON
environments undertox
, avoid poisoning the user's global wheel cache. - Add support for Python 3.5.
- Drop support for Python 2.6 and 3.2.
- Fix manifest and re-upload to fix stray files included in 4.1.0.
- Make the Python implementation of
Persistent
andPickleCache
behave more similarly to the C implementation. In particular, the Python version can now run the complete ZODB and ZEO test suites. - Fix the hashcode of the Python
TimeStamp
on 32-bit platforms.
- Make the C and Python
TimeStamp
objects behave more alike. The Python version now produces the samerepr
and.raw()
output as the C version, and has the same hashcode. In addition, the Python version is now supports ordering and equality like the C version. - Intern keys of object state in
__setstate__
to reduce memory usage when unpickling multiple objects with the same attributes. - Add support for PyPy3.
- 100% branch coverage.
- Add support for Python 3.4.
- In pure-Python
Persistent
, avoid loading state in_p_activate
for non-ghost objects (which could corrupt their state). (PR #9) - In pure-Python, and don't throw
POSKeyError
if_p_activate
is called on an object that has never been committed. (PR #9) - In pure-Python
Persistent
, avoid calling a subclass's__setattr__
at instance creation time. (PR #8) - Make it possible to delete
_p_jar
/_p_oid
of a pure-PythonPersistent
object which has been removed from the jar's cache (fixes aborting a ZODB Connection that has added objects). (PR #7)
- Avoid a KeyError from
_p_accessed()
on newly-created objects under pure-Python: these objects may be assigned to a jar, but not yet added to its cache. (PR #6) - Avoid a failure in
Persistent.__setstate__
when the state dict contains exactly two keys. (PR #5) - Fix a hang in
picklecache
invalidation if OIDs are manually passed out-of-order. (PR #4) - Add
PURE_PYTHON
environment variable support: if set, the C extensions will not be built, imported, or tested.
- Updated Trove classifiers.
- Fixed the C-extensions under Py3k (previously they compiled but were not importable).
- Added support for Python 3.3.
- C extenstions now build under Python 3.2, passing the same tests as the pure-Python reference implementation.
- Fixed: In the C implimentation, an integer was compared with a pointer, with undefined results and a compiler warning.
- Fixed: the Python implementation of the
_p_estimated_size
propety didn't support deletion. - Simplified implementation of the
_p_estimated_size
property to only accept integers. A TypeError is raised if an incorrect type is provided.
- Correct initialization functions in renamed
_timestamp
extension.
- Worked around test failure due to overflow to long on 32-bit systems.
Renamed
TimeStamp
extension module to avoid clash with pure-Pythontimestamp
module on case-insensitive filesystems.N.B: the canonical way to import the
TimeStamp
class is now:from persistent.timestamp import TimeStamp
which will yield the class from the extension module (if available), falling back to the pure-Python reference implementation.
- Added explicit support for Python 3.2 and PyPy.
- Note that the C implementations of Persistent, PickleCache, and Timestamp are not built (yet) on these platforms.
- Dropped support for Python < 2.6.
- 100% unit test coverage.
- Removed all
ZODB
-dependent tests:- Rewrote some to avoid the dependency
- Cloned the remainder into new
ZODB.tests
modules.
- Refactored some doctests refactored as unittests.
- Completed pure-Python reference implementations of 'Persistent', 'PickleCache', and 'TimeStamp'.
- All covered platforms tested under
tox
. - Added support for continuous integration using
tox
andjenkins
. - Added
setup.py dev
alias (installsnose
andcoverage
). - Dropped dependency on
zope.testing
/zope.testrunner
: tests now run withsetup.py test
.
- Refactored many Doctests as Sphinx documentation (snippets are exercised via 'tox').
- Added
setup.py docs
alias (installsSphinx
andrepoze.sphinx.autointerface
).