tested django-newsletter

This commit is contained in:
Esther Kleinhenz
2018-10-26 15:21:17 +02:00
parent 7ed667d043
commit 811b7c5453
2352 changed files with 448169 additions and 1 deletions
@@ -0,0 +1,546 @@
=======================================
ZODB, a Python object-oriented database
=======================================
.. image:: https://img.shields.io/pypi/v/ZODB.svg
:target: https://pypi.python.org/pypi/ZODB/
:alt: Latest release
.. image:: https://img.shields.io/pypi/pyversions/ZODB.svg
:target: https://pypi.org/project/ZODB/
:alt: Supported Python versions
.. image:: https://travis-ci.org/zopefoundation/ZODB.svg?branch=master
:target: https://travis-ci.org/zopefoundation/ZODB
:alt: Build status
.. image:: https://coveralls.io/repos/github/zopefoundation/ZODB/badge.svg
:target: https://coveralls.io/github/zopefoundation/ZODB
:alt: Coverage status
.. image:: https://readthedocs.org/projects/zodb/badge/?version=latest
:target: https://zodb.readthedocs.io/en/latest/
:alt: Documentation status
ZODB provides an object-oriented database for Python that provides a
high-degree of transparency. ZODB runs on Python 2.7 or Python 3.4 and
above. It also runs on PyPy.
- no separate language for database operations
- very little impact on your code to make objects persistent
- no database mapper that partially hides the database.
Using an object-relational mapping **is not** like using an
object-oriented database.
- almost no seam between code and database.
ZODB is an ACID Transactional database.
To learn more, visit: http://www.zodb.org
The github repository is: at https://github.com/zopefoundation/zodb
If you're interested in contributing to ZODB itself, see the
`developer notes
<https://github.com/zopefoundation/ZODB/blob/master/DEVELOPERS.rst>`_.
================
Change History
================
5.5.0 (2018-10-13)
==================
- Add support for Python 3.7.
- Bump the dependency on zodbpickle to at least 1.0.1. This is
required to avoid a memory leak on Python 2.7. See `issue 203
<https://github.com/zopefoundation/ZODB/issues/203>`_.
- Bump the dependency on persistent to at least 4.4.0.
- Make the internal support functions for dealing with OIDs (``p64``
and ``u64``) somewhat faster and raise more informative
exceptions on certain types of bad input. See `issue 216
<https://github.com/zopefoundation/ZODB/issues/216>`_.
- Remove support for ``python setup.py test``. It hadn't been working
for some time. See `issue #218
<https://github.com/zopefoundation/ZODB/issues/218>`_.
- Make the tests run faster by avoiding calls to ``time.sleep()``.
5.4.0 (2018-03-26)
==================
- ZODB now uses pickle protocol 3 for both Python 2 and Python 3.
(Previously, protocol 2 was used for Python 2.)
The zodbpickle package provides a `zodbpickle.binary` string type
that should be used in Python 2 to cause binary strings to be saved
in a pickle binary format, so they can be loaded correctly in
Python 3. Pickle protocol 3 is needed for this to work correctly.
- Object identifiers in persistent references are saved as
`zodbpickle.binary` strings in Python 2, so that they are loaded
correctly in Python 3.
- If an object is missing from the index while packing a ``FileStorage``,
report its full ``oid``.
- Storage imports are a bit faster.
- Storages can be important from non-seekable sources, like
file-wrapped pipes.
5.3.0 (2017-08-30)
==================
- Add support for Python 3.6.
- Drop support for Python 3.3.
- Ensure that the ``HistoricalStorageAdapter`` forwards the ``release`` method to
its base instance. See `issue 78 <https://github.com/zopefoundation/ZODB/issues/788>`_.
- Use a higher pickle protocol (2) for serializing objects on Python
2; previously protocol 1 was used. This is *much* more efficient for
new-style classes (all persistent objects are new-style), at the
cost of being very slightly less efficient for old-style classes.
.. note:: On Python 2, this will now allow open ``file`` objects
(but **not** open blobs or sockets) to be pickled (loading
the object will result in a closed file); previously this
would result in a ``TypeError``. Doing so is not
recommended as they cannot be loaded in Python 3.
See `issue 179 <https://github.com/zopefoundation/ZODB/pull/179>`_.
5.2.4 (2017-05-17)
==================
- ``DB.close`` now explicitly frees internal resources. This is
helpful to avoid false positives in tests that check for leaks.
- Optimize getting the path to a blob file. See
`issue 161 <https://github.com/zopefoundation/ZODB/pull/161>`_.
- All classes are new-style classes on Python 2 (they were already
new-style on Python 3). This improves performance on PyPy. See
`issue 160 <https://github.com/zopefoundation/ZODB/pull/160>`_.
5.2.3 (2017-04-11)
==================
- Fix an import error. See `issue 158 <https://github.com/zopefoundation/ZODB/issues/158>`_.
5.2.2 (2017-04-11)
==================
- Fixed: A blob misfeature set blob permissions so that blobs and blob
directories were only readable by the database process owner, rather
than honoring user-controlled permissions (e.g. ``umask``).
See `issue 155 <https://github.com/zopefoundation/ZODB/issues/155>`_.
5.2.1 (2017-04-08)
==================
- Fixed: When opening FileStorages in read-only mode, non-existent
files were silently created. Creating a read-only file-storage
against a non-existent file errors.
5.2.0 (2017-02-09)
==================
- Call new afterCompletion API on storages to allow them to free
resources after transaction complete.
See `issue 147 <https://github.com/zodb/relstorage/issues/147>`__.
- Take advantage of the new transaction-manager explicit mode to avoid
starting transactions unnecessarily when transactions end.
- ``Connection.new_oid`` delegates to its storage, not the DB. This is
helpful for improving concurrency in MVCC storages like RelStorage.
See `issue 139 <https://github.com/zopefoundation/ZODB/issues/139>`_.
- ``persistent`` is no longer required at setup time.
See `issue 119 <https://github.com/zopefoundation/ZODB/issues/119>`_.
- ``Connection.close`` and ``Connection.open`` no longer race on
``self.transaction_manager``, which could lead to
``AttributeError``. This was a bug introduced in 5.0.1. See `issue
142 <https://github.com/zopefoundation/ZODB/pull/143>`_.
5.1.1 (2016-11-18)
==================
- Fixed: ``ZODB.Connection.TransactionMetaData`` didn't support custom data
storage that some storages rely on.
5.1.0 (2016-11-17)
==================
- ZODB now translates transaction meta data, ``user`` and
``description`` from text to bytes before passing them to storages,
and converts them back to text when retrieving them from storages in
the ``history``, ``undoLog`` and ``undoInfo`` methods.
The ``IDatabase`` interface was updated to reflect that ``history``,
``undoLog`` and ``undoInfo`` are available on database objects.
(They were always available, but not documented in the interface.)
5.0.1 (2016-11-17)
==================
- Fix an AttributeError that DemoStorage could raise if it was asked
to store a blob into a temporary changes before reading a blob. See
`issue 103 <https://github.com/zopefoundation/ZODB/issues/103>`_.
- Call _p_resolveConflict() even if a conflicting change doesn't change the
state. This reverts to the behaviour of 3.10.3 and older.
- Closing a Connection now reverts its ``transaction_manager`` to
None. This helps prevent errors and release resources when the
``transaction_manager`` was the (default) thread-local manager. See
`issue 114 <https://github.com/zopefoundation/ZODB/issues/114>`_.
- Many docstrings have been improved.
5.0.0 (2016-09-06)
==================
Major internal improvements and cleanups plus:
- Added a connection ``prefetch`` method that can be used to request
that a storage prefetch data an application will need::
conn.prefetch(obj, ...)
Where arguments can be objects, object ids, or iterables of objects
or object ids.
Added optional ``prefetch`` methods to the storage APIs. If a
storage doesn't support prefetch, then the connection prefetch
method is a noop.
- fstail: print the txn offset and header size, instead of only the data offset.
fstail can now be used to truncate a DB at the right offset.
- Drop support for old commit protocol. All of the build-in storages
implement the new protocol. This new protocol allows storages to
provide better write performance by allowing multiple commits to
execute in parallel.
5.0.0b1 (2016-08-04)
====================
- fstail: print the txn offset and header size, instead of only the data offset.
fstail can now be used to truncate a DB at the right offset.
Numerous internal cleanups, including:
- Changed the way the root object was created. Now the root object is
created using a database connection, rather than by making low-level
storage calls.
- Drop support for the old commit protocol.
- Internal FileStorage-undo fixes that should allow undo in some cases
where it didn't work before.
- Drop the ``version`` argument to some methods where it was the last
argument and optional.
5.0.0a6 (2016-07-21)
====================
- Added a connection ``prefetch`` method that can be used to request
that a storage prefect data an application will need::
conn.prefetch(obj, ...)
Where arguments can be objects, object ids, or iterables of objects
or object ids.
Added optional ``prefetch`` methods to the storage APIs. If a
storage doesn't support prefetch, then the connection prefetch
method is a noop.
5.0.0a5 (2016-07-06)
====================
Drop support for old commit protocol. All of the build-in storages
implement the new protocol. This new protocol allows storages to
provide better write performance by allowing multiple commits to
execute in parallel.
5.0.0a4 (2016-07-05)
====================
See 4.4.2.
5.0.0a3 (2016-07-01)
====================
See 4.4.1.
5.0.0a2 (2016-07-01)
====================
See 4.4.0.
5.0.0a1 (2016-06-20)
====================
Major **internal** implementation changes to the Multi Version
Concurrency Control (MVCC) implementation:
- For storages that implement IMVCCStorage (RelStorage), no longer
implement MVCC in ZODB.
- For other storages, MVCC is implemented using an additional storage
layer. This underlying layer works by calling ``loadBefore``. The
low-level storage ``load`` method isn't used any more.
This change allows server-based storages like ZEO and NEO to be
implemented more simply and cleanly.
4.4.3 (2016-08-04)
==================
- Internal FileStorage-undo fixes that should allow undo in some cases
where it didn't work before.
- fstail: print the txn offset and header size, instead of only the data offset.
fstail can now be used to truncate a DB at the right offset.
4.4.2 (2016-07-08)
==================
Better support of the new commit protocol. This fixes issues with blobs and
undo. See pull requests #77, #80, #83
4.4.1 (2016-07-01)
==================
Added IMultiCommitStorage to directly represent the changes in the 4.4.0
release and to make complient storages introspectable.
4.4.0 (2016-06-30)
==================
This release begins evolution to a more effcient commit protocol that
allows storage implementations, like `NEO <http://www.neoppod.org/>`_,
to support multiple transactions committing at the same time, for
greater write parallelism.
This release updates IStorage:
- The committed transaction's ID is returned by ``tpc_finish``, rather
than being returned in response store and tpc_vote results.
- ``tpc_vote`` is now expected to return ``None`` or a list of object
ids for objects for which conflicts were resolved.
This release works with storages that implemented the older version of
the storage interface, but also supports storages that implement the
updated interface.
4.3.1 (2016-06-06)
==================
- Fixed: FileStorage loadBefore didn't handle deleted/undone data correctly.
4.3.0 (2016-05-31)
==================
- Drop support for Python 2.6 and 3.2.
- Make the ``zodbpickle`` dependency required and not conditional.
This fixes various packaging issues involving pip and its wheel
cache. zodbpickle was only optional under Python 2.6 so this change
only impacts users of that version. See
https://github.com/zopefoundation/ZODB/pull/42.
- Add support for Python 3.5.
- Avoid failure during cleanup of nested databases that provide MVCC
on storage level (Relstorage).
https://github.com/zopefoundation/ZODB/issues/45
- Remove useless dependency to `zdaemon` in setup.py. Remove ZEO documentation.
Both were leftovers from the time where ZEO was part of this repository.
- Fix possible data corruption after FileStorage is truncated to roll back a
transaction.
https://github.com/zopefoundation/ZODB/pull/52
- DemoStorage: add support for conflict resolution and fix history()
https://github.com/zopefoundation/ZODB/pull/58
- Fixed a test that depended on implementation-specific behavior in tpc_finish
4.2.0 (2015-06-02)
==================
- Declare conditional dependencies using PEP-426 environment markers
(fixing interation between pip 7's wheel cache and tox). See
https://github.com/zopefoundation/ZODB/issues/36.
4.2.0b1 (2015-05-22)
====================
- Log failed conflict resolution attempts at ``DEBUG`` level. See:
https://github.com/zopefoundation/ZODB/pull/29.
- Fix command-line parsing of ``--verbose`` and ``--verify`` arguments.
(The short versions, ``-v`` and ``-V``, were parsed correctly.)
- Add support for PyPy.
- Fix the methods in ``ZODB.serialize`` that find object references
under Python 2.7 (used in scripts like ``referrers``, ``netspace``,
and ``fsrecover`` among others). This requires the addition of the
``zodbpickle`` dependency.
- FileStorage: fix an edge case when disk space runs out while packing,
do not leave the ``.pack`` file around. That would block any write to the
to-be-packed ``Data.fs``, because the disk would stay at 0 bytes free.
See https://github.com/zopefoundation/ZODB/pull/21.
4.1.0 (2015-01-11)
==================
- Fix registration of custom logging level names ("BLATHER", "TRACE").
We have been registering them in the wrong order since 2004. Before
Python 3.4, the stdlib ``logging`` module masked the error by registering
them in *both* directions.
- Add support for Python 3.4.
4.0.1 (2014-07-13)
==================
- Fix ``POSKeyError`` during ``transaction.commit`` when after
``savepoint.rollback``. See
https://github.com/zopefoundation/ZODB/issues/16
- Ensure that the pickler used in PyPy always has a ``persistent_id``
attribute (``inst_persistent_id`` is not present on the pure-Python
pickler). (PR #17)
- Provide better error reporting when trying to load an object on a
closed connection.
4.0.0 (2013-08-18)
==================
Finally released.
4.0.0b3 (2013-06-11)
====================
- Switch to using non-backward-compatible pickles (protocol 3, without
storing bytes as strings) under Python 3. Updated the magic number
for file-storage files under Python3 to indicate the incompatibility.
- Fixed: A ``UnicodeDecodeError`` could happen for non-ASCII OIDs
when using bushy blob layout.
4.0.0b2 (2013-05-14)
====================
- Extended the filename renormalizer used for blob doctests to support
the filenames used by ZEO in non-shared mode.
- Added ``url`` parameter to ``setup()`` (PyPI says it is required).
4.0.0b1 (2013-05-10)
=====================
- Skipped non-unit tests in ``setup.py test``. Use the buildout to run tests
requiring "layer" support.
- Included the filename in the exception message to support debugging in case
``loadBlob`` does not find the file.
- Added support for Python 3.2 / 3.3.
.. note::
ZODB 4.0.x is supported on Python 3.x for *new* applications only.
Due to changes in the standard library's pickle support, the Python3
support does **not** provide forward- or backward-compatibility
at the data level with Python2. A future version of ZODB may add
such support.
Applications which need migrate data from Python2 to Python3 should
plan to script this migration using separte databases, e.g. via a
"dump-and-reload" approach, or by providing explicit fix-ups of the
pickled values as transactions are copied between storages.
4.0.0a4 (2012-12-17)
=====================
- Enforced usage of bytes for ``_p_serial`` of persistent objects (fixes
compatibility with recent persistent releases).
4.0.0a3 (2012-12-01)
=====================
- Fixed: An elaborate test for trvial logic corrupted module state in a
way that made other tests fail spuriously.
4.0.0a2 (2012-11-13)
=====================
Bugs Fixed
----------
- An unneeded left-over setting in setup.py caused installation with
pip to fail.
4.0.0a1 (2012-11-07)
=====================
New Features
------------
- The ``persistent`` and ``BTrees`` packages are now released as separate
distributions, on which ZODB now depends.
- ZODB no longer depends on zope.event. It now uses ZODB.event, which
uses zope.event if it is installed. You can override
ZODB.event.notify to provide your own event handling, although
zope.event is recommended.
- BTrees allowed object keys with insane comparison. (Comparison
inherited from object, which compares based on in-process address.)
Now BTrees raise TypeError if an attempt is made to save a key with
comparison inherited from object. (This doesn't apply to old-style
class instances.)
Bugs Fixed
----------
- Ensured that the export file and index file created by ``repozo`` share
the same timestamp.
https://bugs.launchpad.net/zodb/+bug/993350
- Pinned the ``transaction`` and ``manuel`` dependencies to Python 2.5-
compatible versions when installing under Python 2.5.
.. note::
Please see https://github.com/zopefoundation/ZODB/blob/master/HISTORY.rst
for older versions of ZODB.
@@ -0,0 +1,590 @@
Metadata-Version: 2.0
Name: ZODB
Version: 5.5.0
Summary: ZODB, a Python object-oriented database
Home-page: http://www.zodb.org/
Author: Zope Foundation and Contributors
Author-email: zodb-dev@zope.org
License: ZPL 2.1
Description-Content-Type: UNKNOWN
Keywords: database nosql python zope
Platform: any
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Zope Public License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Database
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: Unix
Classifier: Framework :: ZODB
Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*
Requires-Dist: persistent (>=4.4.0)
Requires-Dist: BTrees (>=4.2.0)
Requires-Dist: ZConfig
Requires-Dist: transaction (>=2.0.3)
Requires-Dist: six
Requires-Dist: zc.lockfile
Requires-Dist: zope.interface
Requires-Dist: zodbpickle (>=1.0.1)
Provides-Extra: test
Requires-Dist: manuel; extra == 'test'
Requires-Dist: zope.testing; extra == 'test'
Requires-Dist: zope.testrunner (>=4.4.6); extra == 'test'
Provides-Extra: test
Requires-Dist: mock; python_version == "2.7" and extra == 'test'
=======================================
ZODB, a Python object-oriented database
=======================================
.. image:: https://img.shields.io/pypi/v/ZODB.svg
:target: https://pypi.python.org/pypi/ZODB/
:alt: Latest release
.. image:: https://img.shields.io/pypi/pyversions/ZODB.svg
:target: https://pypi.org/project/ZODB/
:alt: Supported Python versions
.. image:: https://travis-ci.org/zopefoundation/ZODB.svg?branch=master
:target: https://travis-ci.org/zopefoundation/ZODB
:alt: Build status
.. image:: https://coveralls.io/repos/github/zopefoundation/ZODB/badge.svg
:target: https://coveralls.io/github/zopefoundation/ZODB
:alt: Coverage status
.. image:: https://readthedocs.org/projects/zodb/badge/?version=latest
:target: https://zodb.readthedocs.io/en/latest/
:alt: Documentation status
ZODB provides an object-oriented database for Python that provides a
high-degree of transparency. ZODB runs on Python 2.7 or Python 3.4 and
above. It also runs on PyPy.
- no separate language for database operations
- very little impact on your code to make objects persistent
- no database mapper that partially hides the database.
Using an object-relational mapping **is not** like using an
object-oriented database.
- almost no seam between code and database.
ZODB is an ACID Transactional database.
To learn more, visit: http://www.zodb.org
The github repository is: at https://github.com/zopefoundation/zodb
If you're interested in contributing to ZODB itself, see the
`developer notes
<https://github.com/zopefoundation/ZODB/blob/master/DEVELOPERS.rst>`_.
================
Change History
================
5.5.0 (2018-10-13)
==================
- Add support for Python 3.7.
- Bump the dependency on zodbpickle to at least 1.0.1. This is
required to avoid a memory leak on Python 2.7. See `issue 203
<https://github.com/zopefoundation/ZODB/issues/203>`_.
- Bump the dependency on persistent to at least 4.4.0.
- Make the internal support functions for dealing with OIDs (``p64``
and ``u64``) somewhat faster and raise more informative
exceptions on certain types of bad input. See `issue 216
<https://github.com/zopefoundation/ZODB/issues/216>`_.
- Remove support for ``python setup.py test``. It hadn't been working
for some time. See `issue #218
<https://github.com/zopefoundation/ZODB/issues/218>`_.
- Make the tests run faster by avoiding calls to ``time.sleep()``.
5.4.0 (2018-03-26)
==================
- ZODB now uses pickle protocol 3 for both Python 2 and Python 3.
(Previously, protocol 2 was used for Python 2.)
The zodbpickle package provides a `zodbpickle.binary` string type
that should be used in Python 2 to cause binary strings to be saved
in a pickle binary format, so they can be loaded correctly in
Python 3. Pickle protocol 3 is needed for this to work correctly.
- Object identifiers in persistent references are saved as
`zodbpickle.binary` strings in Python 2, so that they are loaded
correctly in Python 3.
- If an object is missing from the index while packing a ``FileStorage``,
report its full ``oid``.
- Storage imports are a bit faster.
- Storages can be important from non-seekable sources, like
file-wrapped pipes.
5.3.0 (2017-08-30)
==================
- Add support for Python 3.6.
- Drop support for Python 3.3.
- Ensure that the ``HistoricalStorageAdapter`` forwards the ``release`` method to
its base instance. See `issue 78 <https://github.com/zopefoundation/ZODB/issues/788>`_.
- Use a higher pickle protocol (2) for serializing objects on Python
2; previously protocol 1 was used. This is *much* more efficient for
new-style classes (all persistent objects are new-style), at the
cost of being very slightly less efficient for old-style classes.
.. note:: On Python 2, this will now allow open ``file`` objects
(but **not** open blobs or sockets) to be pickled (loading
the object will result in a closed file); previously this
would result in a ``TypeError``. Doing so is not
recommended as they cannot be loaded in Python 3.
See `issue 179 <https://github.com/zopefoundation/ZODB/pull/179>`_.
5.2.4 (2017-05-17)
==================
- ``DB.close`` now explicitly frees internal resources. This is
helpful to avoid false positives in tests that check for leaks.
- Optimize getting the path to a blob file. See
`issue 161 <https://github.com/zopefoundation/ZODB/pull/161>`_.
- All classes are new-style classes on Python 2 (they were already
new-style on Python 3). This improves performance on PyPy. See
`issue 160 <https://github.com/zopefoundation/ZODB/pull/160>`_.
5.2.3 (2017-04-11)
==================
- Fix an import error. See `issue 158 <https://github.com/zopefoundation/ZODB/issues/158>`_.
5.2.2 (2017-04-11)
==================
- Fixed: A blob misfeature set blob permissions so that blobs and blob
directories were only readable by the database process owner, rather
than honoring user-controlled permissions (e.g. ``umask``).
See `issue 155 <https://github.com/zopefoundation/ZODB/issues/155>`_.
5.2.1 (2017-04-08)
==================
- Fixed: When opening FileStorages in read-only mode, non-existent
files were silently created. Creating a read-only file-storage
against a non-existent file errors.
5.2.0 (2017-02-09)
==================
- Call new afterCompletion API on storages to allow them to free
resources after transaction complete.
See `issue 147 <https://github.com/zodb/relstorage/issues/147>`__.
- Take advantage of the new transaction-manager explicit mode to avoid
starting transactions unnecessarily when transactions end.
- ``Connection.new_oid`` delegates to its storage, not the DB. This is
helpful for improving concurrency in MVCC storages like RelStorage.
See `issue 139 <https://github.com/zopefoundation/ZODB/issues/139>`_.
- ``persistent`` is no longer required at setup time.
See `issue 119 <https://github.com/zopefoundation/ZODB/issues/119>`_.
- ``Connection.close`` and ``Connection.open`` no longer race on
``self.transaction_manager``, which could lead to
``AttributeError``. This was a bug introduced in 5.0.1. See `issue
142 <https://github.com/zopefoundation/ZODB/pull/143>`_.
5.1.1 (2016-11-18)
==================
- Fixed: ``ZODB.Connection.TransactionMetaData`` didn't support custom data
storage that some storages rely on.
5.1.0 (2016-11-17)
==================
- ZODB now translates transaction meta data, ``user`` and
``description`` from text to bytes before passing them to storages,
and converts them back to text when retrieving them from storages in
the ``history``, ``undoLog`` and ``undoInfo`` methods.
The ``IDatabase`` interface was updated to reflect that ``history``,
``undoLog`` and ``undoInfo`` are available on database objects.
(They were always available, but not documented in the interface.)
5.0.1 (2016-11-17)
==================
- Fix an AttributeError that DemoStorage could raise if it was asked
to store a blob into a temporary changes before reading a blob. See
`issue 103 <https://github.com/zopefoundation/ZODB/issues/103>`_.
- Call _p_resolveConflict() even if a conflicting change doesn't change the
state. This reverts to the behaviour of 3.10.3 and older.
- Closing a Connection now reverts its ``transaction_manager`` to
None. This helps prevent errors and release resources when the
``transaction_manager`` was the (default) thread-local manager. See
`issue 114 <https://github.com/zopefoundation/ZODB/issues/114>`_.
- Many docstrings have been improved.
5.0.0 (2016-09-06)
==================
Major internal improvements and cleanups plus:
- Added a connection ``prefetch`` method that can be used to request
that a storage prefetch data an application will need::
conn.prefetch(obj, ...)
Where arguments can be objects, object ids, or iterables of objects
or object ids.
Added optional ``prefetch`` methods to the storage APIs. If a
storage doesn't support prefetch, then the connection prefetch
method is a noop.
- fstail: print the txn offset and header size, instead of only the data offset.
fstail can now be used to truncate a DB at the right offset.
- Drop support for old commit protocol. All of the build-in storages
implement the new protocol. This new protocol allows storages to
provide better write performance by allowing multiple commits to
execute in parallel.
5.0.0b1 (2016-08-04)
====================
- fstail: print the txn offset and header size, instead of only the data offset.
fstail can now be used to truncate a DB at the right offset.
Numerous internal cleanups, including:
- Changed the way the root object was created. Now the root object is
created using a database connection, rather than by making low-level
storage calls.
- Drop support for the old commit protocol.
- Internal FileStorage-undo fixes that should allow undo in some cases
where it didn't work before.
- Drop the ``version`` argument to some methods where it was the last
argument and optional.
5.0.0a6 (2016-07-21)
====================
- Added a connection ``prefetch`` method that can be used to request
that a storage prefect data an application will need::
conn.prefetch(obj, ...)
Where arguments can be objects, object ids, or iterables of objects
or object ids.
Added optional ``prefetch`` methods to the storage APIs. If a
storage doesn't support prefetch, then the connection prefetch
method is a noop.
5.0.0a5 (2016-07-06)
====================
Drop support for old commit protocol. All of the build-in storages
implement the new protocol. This new protocol allows storages to
provide better write performance by allowing multiple commits to
execute in parallel.
5.0.0a4 (2016-07-05)
====================
See 4.4.2.
5.0.0a3 (2016-07-01)
====================
See 4.4.1.
5.0.0a2 (2016-07-01)
====================
See 4.4.0.
5.0.0a1 (2016-06-20)
====================
Major **internal** implementation changes to the Multi Version
Concurrency Control (MVCC) implementation:
- For storages that implement IMVCCStorage (RelStorage), no longer
implement MVCC in ZODB.
- For other storages, MVCC is implemented using an additional storage
layer. This underlying layer works by calling ``loadBefore``. The
low-level storage ``load`` method isn't used any more.
This change allows server-based storages like ZEO and NEO to be
implemented more simply and cleanly.
4.4.3 (2016-08-04)
==================
- Internal FileStorage-undo fixes that should allow undo in some cases
where it didn't work before.
- fstail: print the txn offset and header size, instead of only the data offset.
fstail can now be used to truncate a DB at the right offset.
4.4.2 (2016-07-08)
==================
Better support of the new commit protocol. This fixes issues with blobs and
undo. See pull requests #77, #80, #83
4.4.1 (2016-07-01)
==================
Added IMultiCommitStorage to directly represent the changes in the 4.4.0
release and to make complient storages introspectable.
4.4.0 (2016-06-30)
==================
This release begins evolution to a more effcient commit protocol that
allows storage implementations, like `NEO <http://www.neoppod.org/>`_,
to support multiple transactions committing at the same time, for
greater write parallelism.
This release updates IStorage:
- The committed transaction's ID is returned by ``tpc_finish``, rather
than being returned in response store and tpc_vote results.
- ``tpc_vote`` is now expected to return ``None`` or a list of object
ids for objects for which conflicts were resolved.
This release works with storages that implemented the older version of
the storage interface, but also supports storages that implement the
updated interface.
4.3.1 (2016-06-06)
==================
- Fixed: FileStorage loadBefore didn't handle deleted/undone data correctly.
4.3.0 (2016-05-31)
==================
- Drop support for Python 2.6 and 3.2.
- Make the ``zodbpickle`` dependency required and not conditional.
This fixes various packaging issues involving pip and its wheel
cache. zodbpickle was only optional under Python 2.6 so this change
only impacts users of that version. See
https://github.com/zopefoundation/ZODB/pull/42.
- Add support for Python 3.5.
- Avoid failure during cleanup of nested databases that provide MVCC
on storage level (Relstorage).
https://github.com/zopefoundation/ZODB/issues/45
- Remove useless dependency to `zdaemon` in setup.py. Remove ZEO documentation.
Both were leftovers from the time where ZEO was part of this repository.
- Fix possible data corruption after FileStorage is truncated to roll back a
transaction.
https://github.com/zopefoundation/ZODB/pull/52
- DemoStorage: add support for conflict resolution and fix history()
https://github.com/zopefoundation/ZODB/pull/58
- Fixed a test that depended on implementation-specific behavior in tpc_finish
4.2.0 (2015-06-02)
==================
- Declare conditional dependencies using PEP-426 environment markers
(fixing interation between pip 7's wheel cache and tox). See
https://github.com/zopefoundation/ZODB/issues/36.
4.2.0b1 (2015-05-22)
====================
- Log failed conflict resolution attempts at ``DEBUG`` level. See:
https://github.com/zopefoundation/ZODB/pull/29.
- Fix command-line parsing of ``--verbose`` and ``--verify`` arguments.
(The short versions, ``-v`` and ``-V``, were parsed correctly.)
- Add support for PyPy.
- Fix the methods in ``ZODB.serialize`` that find object references
under Python 2.7 (used in scripts like ``referrers``, ``netspace``,
and ``fsrecover`` among others). This requires the addition of the
``zodbpickle`` dependency.
- FileStorage: fix an edge case when disk space runs out while packing,
do not leave the ``.pack`` file around. That would block any write to the
to-be-packed ``Data.fs``, because the disk would stay at 0 bytes free.
See https://github.com/zopefoundation/ZODB/pull/21.
4.1.0 (2015-01-11)
==================
- Fix registration of custom logging level names ("BLATHER", "TRACE").
We have been registering them in the wrong order since 2004. Before
Python 3.4, the stdlib ``logging`` module masked the error by registering
them in *both* directions.
- Add support for Python 3.4.
4.0.1 (2014-07-13)
==================
- Fix ``POSKeyError`` during ``transaction.commit`` when after
``savepoint.rollback``. See
https://github.com/zopefoundation/ZODB/issues/16
- Ensure that the pickler used in PyPy always has a ``persistent_id``
attribute (``inst_persistent_id`` is not present on the pure-Python
pickler). (PR #17)
- Provide better error reporting when trying to load an object on a
closed connection.
4.0.0 (2013-08-18)
==================
Finally released.
4.0.0b3 (2013-06-11)
====================
- Switch to using non-backward-compatible pickles (protocol 3, without
storing bytes as strings) under Python 3. Updated the magic number
for file-storage files under Python3 to indicate the incompatibility.
- Fixed: A ``UnicodeDecodeError`` could happen for non-ASCII OIDs
when using bushy blob layout.
4.0.0b2 (2013-05-14)
====================
- Extended the filename renormalizer used for blob doctests to support
the filenames used by ZEO in non-shared mode.
- Added ``url`` parameter to ``setup()`` (PyPI says it is required).
4.0.0b1 (2013-05-10)
=====================
- Skipped non-unit tests in ``setup.py test``. Use the buildout to run tests
requiring "layer" support.
- Included the filename in the exception message to support debugging in case
``loadBlob`` does not find the file.
- Added support for Python 3.2 / 3.3.
.. note::
ZODB 4.0.x is supported on Python 3.x for *new* applications only.
Due to changes in the standard library's pickle support, the Python3
support does **not** provide forward- or backward-compatibility
at the data level with Python2. A future version of ZODB may add
such support.
Applications which need migrate data from Python2 to Python3 should
plan to script this migration using separte databases, e.g. via a
"dump-and-reload" approach, or by providing explicit fix-ups of the
pickled values as transactions are copied between storages.
4.0.0a4 (2012-12-17)
=====================
- Enforced usage of bytes for ``_p_serial`` of persistent objects (fixes
compatibility with recent persistent releases).
4.0.0a3 (2012-12-01)
=====================
- Fixed: An elaborate test for trvial logic corrupted module state in a
way that made other tests fail spuriously.
4.0.0a2 (2012-11-13)
=====================
Bugs Fixed
----------
- An unneeded left-over setting in setup.py caused installation with
pip to fail.
4.0.0a1 (2012-11-07)
=====================
New Features
------------
- The ``persistent`` and ``BTrees`` packages are now released as separate
distributions, on which ZODB now depends.
- ZODB no longer depends on zope.event. It now uses ZODB.event, which
uses zope.event if it is installed. You can override
ZODB.event.notify to provide your own event handling, although
zope.event is recommended.
- BTrees allowed object keys with insane comparison. (Comparison
inherited from object, which compares based on in-process address.)
Now BTrees raise TypeError if an attempt is made to save a key with
comparison inherited from object. (This doesn't apply to old-style
class instances.)
Bugs Fixed
----------
- Ensured that the export file and index file created by ``repozo`` share
the same timestamp.
https://bugs.launchpad.net/zodb/+bug/993350
- Pinned the ``transaction`` and ``manuel`` dependencies to Python 2.5-
compatible versions when installing under Python 2.5.
.. note::
Please see https://github.com/zopefoundation/ZODB/blob/master/HISTORY.rst
for older versions of ZODB.
@@ -0,0 +1,277 @@
../../../bin/fsdump,sha256=c48yKlWbgjSrHWheWevKlpQ_K1oDYM7nQ578SUrgnQ0,254
../../../bin/fsoids,sha256=YdDoEykNeZ4nGcUvqvd4mjvBG0cATj-_CZsgrcctEKE,250
../../../bin/fsrefs,sha256=3wY5UwB0ZRAyBdCLVeMTtFcK2gX76CCjJWod7umbwrw,250
../../../bin/fstail,sha256=PX3ENZ8A9In3m3YJuID7Z8Vg8JD9upKJINdFi3nvJGw,250
../../../bin/repozo,sha256=4TLBJCat9hy0uUODmerVP1zVFcRCbxq1z0aBk1223bw,250
ZODB-5.5.0.dist-info/DESCRIPTION.rst,sha256=qblfOeT02CHbJX3TadRP_OU9Co85WSOiQ18zwHSNjFU,18020
ZODB-5.5.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
ZODB-5.5.0.dist-info/METADATA,sha256=W3bs6yKiCL0ai3xm3sNRPe2OPv9idXPHyVaSbE92i9A,19725
ZODB-5.5.0.dist-info/RECORD,,
ZODB-5.5.0.dist-info/WHEEL,sha256=kdsN-5OJAZIiHN-iO4Rhl82KyS0bDWf4uBwMbkNafr8,110
ZODB-5.5.0.dist-info/entry_points.txt,sha256=DfURVrlE-hp96z0SUIhMO81waW8vW2sN38l-a_hV4PY,233
ZODB-5.5.0.dist-info/metadata.json,sha256=6RoiljEM4GFbg0e1xmJF-eSE6L9t_vBinpFP4W3Iqic,2252
ZODB-5.5.0.dist-info/top_level.txt,sha256=o9jRNss1In57AUSkvNt0qA8rDVFASxILkoqe1uM5iPY,5
ZODB/ActivityMonitor.py,sha256=zVOPfwg5skIp8cR2_Aobkayivt8UnBdI8r6NrQ02FXg,3614
ZODB/BaseStorage.py,sha256=j9nUA4iWzH4o5yFH0mKirx5DCijpJln5wAN7IzfeGU8,12996
ZODB/ConflictResolution.py,sha256=fLV_j4a1iLxzNZL4a1_hcRfOQmqJnHO6LdznJr6d9NM,10946
ZODB/ConflictResolution.txt,sha256=k8WiU8vLONpHKP-7LtH6scHQJlHvmns1FBTtd_bEZIc,20243
ZODB/Connection.py,sha256=BIxNeUOdYGTQVsDWBZww2pLpwssTGjALBAnt_NrFxfg,50263
ZODB/DB.py,sha256=06c41-wPsK8wggAdsdX4WNgi-0h-2HbKJ1nr_k3wtm0,39273
ZODB/DemoStorage.py,sha256=XCVpoAnYFAR6lzb-paWNnH7yIB6r2WCoH3WcpLJk8lg,16304
ZODB/DemoStorage.test,sha256=ez27oD8tXW-FtRxLdfbEmTUhLzL6uh7oJ1jvmEnsVlM,12421
ZODB/ExportImport.py,sha256=qyZOGTyFS9iMAVp7kqA_BiShx5nnPKyL-mfbsYhMJUA,6985
ZODB/FileStorage/FileStorage.py,sha256=YBfT091Frela-4bLx3EaAQoTZsCZ-mI2qrUlvNueY4M,77760
ZODB/FileStorage/__init__.py,sha256=IDVAb0xyDp1bYtInsvl7b3P-4HbM9G_ONbyPQbcbQ0Q,238
ZODB/FileStorage/__pycache__/FileStorage.cpython-36.pyc,,
ZODB/FileStorage/__pycache__/__init__.cpython-36.pyc,,
ZODB/FileStorage/__pycache__/format.cpython-36.pyc,,
ZODB/FileStorage/__pycache__/fsdump.cpython-36.pyc,,
ZODB/FileStorage/__pycache__/fsoids.cpython-36.pyc,,
ZODB/FileStorage/__pycache__/fspack.cpython-36.pyc,,
ZODB/FileStorage/__pycache__/interfaces.cpython-36.pyc,,
ZODB/FileStorage/__pycache__/tests.cpython-36.pyc,,
ZODB/FileStorage/format.py,sha256=mUMdirN4uDRDz4YzZwt9Y3Hqq2h1ttgZHLx2lvKmcVg,9449
ZODB/FileStorage/fsdump.py,sha256=sRi2Wsf6tlNfT17j1FRnfZ18MnoKJiPmaKb4RvPuvGg,4735
ZODB/FileStorage/fsoids.py,sha256=AF42VX29ppg2oFzgI3PHjao7zjgzQSHFYJmEsfhX_Tw,8115
ZODB/FileStorage/fspack.py,sha256=XS4wQtA9sf4IboeZbAJTTprEyIeMQknOKrFtc8C-41c,24484
ZODB/FileStorage/interfaces.py,sha256=VZ_8W1MFlYk6bKc_27l1i1JMXo65pqFPICLBTwoyDs8,2766
ZODB/FileStorage/iterator.test,sha256=IAbsXEJX0es2W48T5ts-1QinKBoNH1Hm93AQZ47eDcQ,4856
ZODB/FileStorage/tests.py,sha256=7zHwicYE8txsoOxAaN5xZiYE7uE6lFat4ypy-jL8AE4,9211
ZODB/FileStorage/zconfig.txt,sha256=ScCPDBH7UQpZzy3oVh4BCwtYfcnlFcZXP-gsZK6HK5E,5561
ZODB/MappingStorage.py,sha256=b45jaLUgoH8xKXogtI8gOuCONTS03MK6tOaG7_Nm0KY,11732
ZODB/POSException.py,sha256=P1AKpmaGxSpbCUXATSSQYhWHR9jPTWDQMO-n7OwEdsE,11650
ZODB/UndoLogCompatible.py,sha256=Jhv-VhYO-wAYqSyxnekZYHvKM4cglzvCTEcqq6bSc-8,1548
ZODB/__init__.py,sha256=kFYv_AeZAl9HBciOvVUJadL3nCZhD3CxthRSF2SiHno,1052
ZODB/__pycache__/ActivityMonitor.cpython-36.pyc,,
ZODB/__pycache__/BaseStorage.cpython-36.pyc,,
ZODB/__pycache__/ConflictResolution.cpython-36.pyc,,
ZODB/__pycache__/Connection.cpython-36.pyc,,
ZODB/__pycache__/DB.cpython-36.pyc,,
ZODB/__pycache__/DemoStorage.cpython-36.pyc,,
ZODB/__pycache__/ExportImport.cpython-36.pyc,,
ZODB/__pycache__/MappingStorage.cpython-36.pyc,,
ZODB/__pycache__/POSException.cpython-36.pyc,,
ZODB/__pycache__/UndoLogCompatible.cpython-36.pyc,,
ZODB/__pycache__/__init__.cpython-36.pyc,,
ZODB/__pycache__/_compat.cpython-36.pyc,,
ZODB/__pycache__/blob.cpython-36.pyc,,
ZODB/__pycache__/broken.cpython-36.pyc,,
ZODB/__pycache__/config.cpython-36.pyc,,
ZODB/__pycache__/conversionhack.cpython-36.pyc,,
ZODB/__pycache__/event.cpython-36.pyc,,
ZODB/__pycache__/fsIndex.cpython-36.pyc,,
ZODB/__pycache__/fsrecover.cpython-36.pyc,,
ZODB/__pycache__/fstools.cpython-36.pyc,,
ZODB/__pycache__/interfaces.cpython-36.pyc,,
ZODB/__pycache__/loglevels.cpython-36.pyc,,
ZODB/__pycache__/mvccadapter.cpython-36.pyc,,
ZODB/__pycache__/persistentclass.cpython-36.pyc,,
ZODB/__pycache__/serialize.cpython-36.pyc,,
ZODB/__pycache__/transact.cpython-36.pyc,,
ZODB/__pycache__/utils.cpython-36.pyc,,
ZODB/__pycache__/valuedoc.cpython-36.pyc,,
ZODB/_compat.py,sha256=ClvbWhWM4APyub53Og9fnCK33hZKKKWwVnCFhlbcdMQ,4836
ZODB/blob.py,sha256=Ec6jsPH6FIhfCRLrOYJKjxUqPVMHS0aqF0zWprZJMYw,36303
ZODB/broken.py,sha256=Xaz9H1g8pXf9zB9_Gdkf7CMaJWl97ag_wdJiR-Gb80Y,10343
ZODB/collaborations.txt,sha256=23wRocUfgFGUpXUhxgzGpBWBPbbHsOqklQzlKzPtS3s,5952
ZODB/component.xml,sha256=BFdewxwIJYGqEbELbZmivozYrFUJB39Nhgzz31vcSe0,13074
ZODB/config.py,sha256=XNSm64S6nKFzIdK7_Yj2kPU9zlk7PywGc2xxiyl2v6Q,8903
ZODB/config.xml,sha256=NwnnhqBLaMTtRj9Hp4lMNckuHu7Bj86ugYDhLoLAj-g,171
ZODB/conversionhack.py,sha256=nNowcKI4zw0tVSGoqGUn5Aw8gDA1AXjRHs_RPXFXWTg,1051
ZODB/cross-database-references.txt,sha256=HT_GQKFLbLqteep_shPOhFDFULIZUd082FaHVIAUP3A,6277
ZODB/event.py,sha256=JrhsdLuV8A9vPS3bAL0IE0I7QoRZWQjEiChKkMEWqYo,719
ZODB/event.txt,sha256=_QIeNrG9kDSf09ZvNKZhZEWyZ9Fw-m-RZb_zDnXo5LE,384
ZODB/fsIndex.py,sha256=0jfDQBY4MPqlLIEnlriSQ6TFhyrKuQzUl7BYyObAbck,8772
ZODB/fsrecover.py,sha256=ybtEQhIWZ6jt-JIrjW0TXXp3wdSZz9s1w0zQX45PWcs,10489
ZODB/fstools.py,sha256=QzL5WsR2g-tW4-sqU-GYdC9iZSycb8hCTi8uaPheaBU,4857
ZODB/historical_connections.txt,sha256=uQTQQRthLtRMANV8S_2Cnd2r3wlU-90p1Zpnf2kgU54,10449
ZODB/interfaces.py,sha256=iot5MyJKlWNeX7NLeCO9HIGCMNwIXN0brl0mNHs9R0s,53770
ZODB/loglevels.py,sha256=xqQ8wfrZ0BtoF8gpymIjlMi3SBHcvpp8fkJwW5g6yBo,1776
ZODB/mvccadapter.py,sha256=nRjxnOljV7rdt_BDy6l3BOPbEqKAeAYysKuOFdQytK8,7709
ZODB/persistentclass.py,sha256=CMCRa-btVFau5TAn5D7SBf-Ma1VWCruPmCxIG8opvec,6695
ZODB/persistentclass.txt,sha256=IQatQwG4dPBchrHjCMzVVj3qR_9n2KFvAT1KDjWZcWE,7635
ZODB/scripts/README.txt,sha256=u77Pfrs8j6KCwWdMPpDFGVCekVc0-De98_jDb1oCMHk,3540
ZODB/scripts/__init__.py,sha256=MsSFjiLMLJZ7QhUPpVBWKiyDnCzryquRyr329NoCACI,2
ZODB/scripts/__pycache__/__init__.cpython-36.pyc,,
ZODB/scripts/__pycache__/analyze.cpython-36.pyc,,
ZODB/scripts/__pycache__/checkbtrees.cpython-36.pyc,,
ZODB/scripts/__pycache__/fsoids.cpython-36.pyc,,
ZODB/scripts/__pycache__/fsrefs.cpython-36.pyc,,
ZODB/scripts/__pycache__/fsstats.cpython-36.pyc,,
ZODB/scripts/__pycache__/fstail.cpython-36.pyc,,
ZODB/scripts/__pycache__/fstest.cpython-36.pyc,,
ZODB/scripts/__pycache__/migrate.cpython-36.pyc,,
ZODB/scripts/__pycache__/migrateblobs.cpython-36.pyc,,
ZODB/scripts/__pycache__/netspace.cpython-36.pyc,,
ZODB/scripts/__pycache__/referrers.cpython-36.pyc,,
ZODB/scripts/__pycache__/repozo.cpython-36.pyc,,
ZODB/scripts/__pycache__/space.cpython-36.pyc,,
ZODB/scripts/__pycache__/zodbload.cpython-36.pyc,,
ZODB/scripts/analyze.py,sha256=wDv0bgadI8_JSrbeYSEMLKZtgnMF-h_awpYhH3_YPZ0,4447
ZODB/scripts/checkbtrees.py,sha256=qFJspJDmprD0iHh6dZQmYay8ygR02q4PSWB-ijMa6SY,3143
ZODB/scripts/fsoids.py,sha256=AbiG-dh1Fr1zV6-eGI-SQ4BRyeW3tPCgwRrNiLK_MlI,2386
ZODB/scripts/fsrefs.py,sha256=tDh0iFjygDZAS6fEjcG-QFA4yj3jIew2RaHD3X1ME88,5979
ZODB/scripts/fsstats.py,sha256=LCdFPeq5HTc78KP5YuUv8TbKDNRNbE7_CsKhICy8Jvc,5870
ZODB/scripts/fstail.py,sha256=cc-98o6pJOWt5QG87jXQ1egcbpqX9nbexUQAKWt948E,1772
ZODB/scripts/fstest.py,sha256=vBHK4j8alFC-iTdWjcW8kSuqpkTbaElOJhvTZxc63hY,6855
ZODB/scripts/manual_tests/__pycache__/testfstest.cpython-36.pyc,,
ZODB/scripts/manual_tests/test-checker.fs,sha256=lVSVmB6r85jF2Cvx694IARX1NqKUvL0QFJGX6-QnT5c,802
ZODB/scripts/manual_tests/testfstest.py,sha256=DyHOBJSedFLZydxfJLy6xFGo5YLn41SXxkXcQs9MoP4,5494
ZODB/scripts/migrate.py,sha256=WZrjDXYJUADga26_rQEjEACZCFCNccQ1qwag6Go9SWU,11224
ZODB/scripts/migrateblobs.py,sha256=AejRHXQgAvH5LEBX7Wypyw82ZhJ9YY1sx7BfPWKKCpE,2758
ZODB/scripts/netspace.py,sha256=wh9s17zLzn-v0oUqrLWm2JzPZpxL9THzBBXEl0SDrrU,3429
ZODB/scripts/referrers.py,sha256=w9ccX5l9BppVvUgVzVPXl2puq_Sbi4dOT6aunhxiqm0,990
ZODB/scripts/repozo.py,sha256=zXEXqkxpwz_ZXkxo53-33jYOlRh0EVrTyrHCKarIu_k,24832
ZODB/scripts/space.py,sha256=ksx_5nUIZaIYsixS047A9brcT0vWh1Fl1MaEP6LTEIs,1641
ZODB/scripts/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
ZODB/scripts/tests/__pycache__/__init__.cpython-36.pyc,,
ZODB/scripts/tests/__pycache__/test_doc.cpython-36.pyc,,
ZODB/scripts/tests/__pycache__/test_fstest.cpython-36.pyc,,
ZODB/scripts/tests/__pycache__/test_repozo.cpython-36.pyc,,
ZODB/scripts/tests/fstail.txt,sha256=vr91-Z3xkJPg5cZqhYljB5ioKE7-ARCclonjIN6cXuI,1260
ZODB/scripts/tests/referrers.txt,sha256=wsO4QWm7iE_BioIeo4OrK4G9NhxsKw1Z614LiuxAKPo,1348
ZODB/scripts/tests/test_doc.py,sha256=2YRFHNKcpJjS-_7fonp9JtVB7uJkqmiPcCvFDqhxaEQ,1895
ZODB/scripts/tests/test_fstest.py,sha256=8RhATUXkmOIff2w2J8-lUtFh_H_CYgyF-pI4-Fc_7IM,1779
ZODB/scripts/tests/test_repozo.py,sha256=23ycBGWJL8yQGaTTT_lJsCGaNFrIbvYxR74QQGXlM64,47523
ZODB/scripts/zodbload.py,sha256=wHnALLJhSuwrClDvQeKM9NHaUvx7Px4lYsEyeXBp7YA,30889
ZODB/serialize.py,sha256=nnn4AFZJS_ltN87_CpxgvLju4Ks-KlgdoHeza7C8W68,24200
ZODB/storage.xml,sha256=SdtD4K_JJS2UleuMJZF-UntJbfxlfVblngJMtxwXOsU,104
ZODB/subtransactions.txt,sha256=fTDHzN9OgiHXCy_A1vzpnOw000LTkfTpOZ4WcWPkkAc,1486
ZODB/tests/BasicStorage.py,sha256=5fcQskXFiK5aeFVcoI0YVMKEiRDygT89e8dNefAcOso,14612
ZODB/tests/ConflictResolution.py,sha256=xSteVS4yiHrrpKx-xbniGGyXSXVTdAk7PwjQuVrcsSY,5918
ZODB/tests/Corruption.py,sha256=81ns9DNxcps3ZWA5lKvWsDgdMvjHRRPQiQt2cqNqIEI,2345
ZODB/tests/HistoryStorage.py,sha256=w2z6wURDs2rf5jDMH3YWvA4D6BhlbTwGiQL4eSLDpGg,2112
ZODB/tests/IExternalGC.test,sha256=fax3Uy0UUfPcaiqVEP1duflZAGCxCOWerqqtZotfOIc,3691
ZODB/tests/IteratorStorage.py,sha256=-aozfL2tfa1KawnMelCFs80trH_fyyULs7RaK8Jn9dw,9976
ZODB/tests/MTStorage.py,sha256=RhqgFOa3sFwen6UeO0X_642Fodt9qkdTY97glVw71bw,7325
ZODB/tests/MVCCMappingStorage.py,sha256=o_c7wHfev4k4b8yhP7AwhQdr8bp5BJze3DW20Ao_4Ak,4674
ZODB/tests/MinPO.py,sha256=Q4lXLgDUrdsGFtp8EBA8WRN1ccxQ0R4tk7pxJBabvsU,1582
ZODB/tests/PackableStorage.py,sha256=5abCkd2aCFHdEqiDzSaUlxddztYTeHMQfablWp9ptvI,29282
ZODB/tests/PersistentStorage.py,sha256=waZwrWAcwrItbLXKobWPtHPXZsy_HyXm9MPx44SNqLk,1741
ZODB/tests/ReadOnlyStorage.py,sha256=53UrUz551xcgRtR8l7xSlq0JY2JUVE0Ghz9wrcX9OIQ,2219
ZODB/tests/RecoveryStorage.py,sha256=BA_aGKhbi9B7dj5v6m7wCCAQNdSgBryaBqLMVUqpmVE,7899
ZODB/tests/RevisionStorage.py,sha256=z3nJ1_IL7q40hfR8Rhsra5BbDn0Ho65WPVsWz_CuM94,6734
ZODB/tests/StorageTestBase.py,sha256=LQB77HHm2wjgbx0c4sBWmfer9__6vyl2md0lZTWvYm0,6124
ZODB/tests/Synchronization.py,sha256=K11z2sadixu7Au-YyYchK8QyPs--BQkrm9Ik172RS3Q,4377
ZODB/tests/TransactionalUndoStorage.py,sha256=uQE7tKwQvL3LqQiW6v466Js6NN9kzAWVu2tX4VVR6LQ,28041
ZODB/tests/__init__.py,sha256=i54so5PgcCHmet8ZG90HheVvx-lx5v9aVywAIcLI6D0,38
ZODB/tests/__pycache__/BasicStorage.cpython-36.pyc,,
ZODB/tests/__pycache__/ConflictResolution.cpython-36.pyc,,
ZODB/tests/__pycache__/Corruption.cpython-36.pyc,,
ZODB/tests/__pycache__/HistoryStorage.cpython-36.pyc,,
ZODB/tests/__pycache__/IteratorStorage.cpython-36.pyc,,
ZODB/tests/__pycache__/MTStorage.cpython-36.pyc,,
ZODB/tests/__pycache__/MVCCMappingStorage.cpython-36.pyc,,
ZODB/tests/__pycache__/MinPO.cpython-36.pyc,,
ZODB/tests/__pycache__/PackableStorage.cpython-36.pyc,,
ZODB/tests/__pycache__/PersistentStorage.cpython-36.pyc,,
ZODB/tests/__pycache__/ReadOnlyStorage.cpython-36.pyc,,
ZODB/tests/__pycache__/RecoveryStorage.cpython-36.pyc,,
ZODB/tests/__pycache__/RevisionStorage.cpython-36.pyc,,
ZODB/tests/__pycache__/StorageTestBase.cpython-36.pyc,,
ZODB/tests/__pycache__/Synchronization.cpython-36.pyc,,
ZODB/tests/__pycache__/TransactionalUndoStorage.cpython-36.pyc,,
ZODB/tests/__pycache__/__init__.cpython-36.pyc,,
ZODB/tests/__pycache__/dangle.cpython-36.pyc,,
ZODB/tests/__pycache__/hexstorage.cpython-36.pyc,,
ZODB/tests/__pycache__/loggingsupport.cpython-36.pyc,,
ZODB/tests/__pycache__/sampledm.cpython-36.pyc,,
ZODB/tests/__pycache__/speed.cpython-36.pyc,,
ZODB/tests/__pycache__/testActivityMonitor.cpython-36.pyc,,
ZODB/tests/__pycache__/testBroken.cpython-36.pyc,,
ZODB/tests/__pycache__/testCache.cpython-36.pyc,,
ZODB/tests/__pycache__/testConfig.cpython-36.pyc,,
ZODB/tests/__pycache__/testConnection.cpython-36.pyc,,
ZODB/tests/__pycache__/testConnectionSavepoint.cpython-36.pyc,,
ZODB/tests/__pycache__/testDB.cpython-36.pyc,,
ZODB/tests/__pycache__/testDemoStorage.cpython-36.pyc,,
ZODB/tests/__pycache__/testFileStorage.cpython-36.pyc,,
ZODB/tests/__pycache__/testMVCCMappingStorage.cpython-36.pyc,,
ZODB/tests/__pycache__/testMappingStorage.cpython-36.pyc,,
ZODB/tests/__pycache__/testPersistentList.cpython-36.pyc,,
ZODB/tests/__pycache__/testPersistentMapping.cpython-36.pyc,,
ZODB/tests/__pycache__/testPersistentWeakref.cpython-36.pyc,,
ZODB/tests/__pycache__/testRecover.cpython-36.pyc,,
ZODB/tests/__pycache__/testSerialize.cpython-36.pyc,,
ZODB/tests/__pycache__/testUtils.cpython-36.pyc,,
ZODB/tests/__pycache__/testZODB.cpython-36.pyc,,
ZODB/tests/__pycache__/test_TransactionMetaData.cpython-36.pyc,,
ZODB/tests/__pycache__/test_cache.cpython-36.pyc,,
ZODB/tests/__pycache__/test_datamanageradapter.cpython-36.pyc,,
ZODB/tests/__pycache__/test_doctest_files.cpython-36.pyc,,
ZODB/tests/__pycache__/test_fsdump.cpython-36.pyc,,
ZODB/tests/__pycache__/test_mvccadapter.cpython-36.pyc,,
ZODB/tests/__pycache__/test_prefetch.cpython-36.pyc,,
ZODB/tests/__pycache__/test_storage.cpython-36.pyc,,
ZODB/tests/__pycache__/testblob.cpython-36.pyc,,
ZODB/tests/__pycache__/testconflictresolution.cpython-36.pyc,,
ZODB/tests/__pycache__/testcrossdatabasereferences.cpython-36.pyc,,
ZODB/tests/__pycache__/testdocumentation.cpython-36.pyc,,
ZODB/tests/__pycache__/testfsIndex.cpython-36.pyc,,
ZODB/tests/__pycache__/testfsoids.cpython-36.pyc,,
ZODB/tests/__pycache__/testhistoricalconnections.cpython-36.pyc,,
ZODB/tests/__pycache__/testmvcc.cpython-36.pyc,,
ZODB/tests/__pycache__/testpersistentclass.cpython-36.pyc,,
ZODB/tests/__pycache__/util.cpython-36.pyc,,
ZODB/tests/__pycache__/warnhook.cpython-36.pyc,,
ZODB/tests/blob_basic.txt,sha256=jnHy3M06TLvBjMcdrgW0Tp0JtvnSf_h1SmwfQmzPjOs,4814
ZODB/tests/blob_connection.txt,sha256=VOOJ-X7kkJlyCn49sA62artSpXfuVa_GRokzSK9ZpNg,2777
ZODB/tests/blob_consume.txt,sha256=OPURjaQ1bcJJUuRRe6dV8JeG7RhzpXnq21M6o3fYcqY,3797
ZODB/tests/blob_importexport.txt,sha256=8_WPJWijsXuolDtFxhLbJsCcF1oXSUrJS8M-MBmZQNA,1986
ZODB/tests/blob_layout.txt,sha256=bsljiF1LKt_mZSaWr224kPowEHGhwdPx_6WdrQFp3Lw,10572
ZODB/tests/blob_packing.txt,sha256=dmfDafadrV5gbEWEO9Xi88jwIiGQXjlKOXA8XQXZNro,3195
ZODB/tests/blob_tempdir.txt,sha256=blzd5PXlXqbqC1I6rWn7qDEcFeX4Fou5yNkbA1CkDSA,1566
ZODB/tests/blob_transaction.txt,sha256=Vh2stDZjZ1VQ_djVnihYjXzgonOhuZuThWEDY-BVKVE,11898
ZODB/tests/blobstorage_packing.txt,sha256=2Lc9o_RhCTiXKg5kY64cZ1p83fKy7OQF1boOtvkt3vo,5292
ZODB/tests/component.xml,sha256=A_nQOWBTCo-jyWaTtlbNvrfH-IY1n25_eQFwvN9Ii1c,475
ZODB/tests/dangle.py,sha256=6UgsMH6SkZH0h8PR69-2kiopoKRXFlK5yp4CfD4khNE,1807
ZODB/tests/dbopen.txt,sha256=JsITmwoYuFJSdxjgDLV0bFdtsvok2a2eYzqOqixELHE,10571
ZODB/tests/fix84.rst,sha256=SiKIXI8oGufFN8S0hcfKI4qTSvbffCDgvvplcNrdXzg,797
ZODB/tests/hexstorage.py,sha256=etsuRs0f1dFJw9LNL5oPQcx4AMZ1NJI22OU_n7dWGiA,5445
ZODB/tests/loggingsupport.py,sha256=d6C0nDMl5nT7LhplqiELIMckuyR7U0oqACEgIyDEqNg,3389
ZODB/tests/multidb.txt,sha256=AzVBkyaPZ3m-dlaciCgi15DrQ1-4c7jA0S8E-84wywg,5913
ZODB/tests/sampledm.py,sha256=vywl-oqkQVU8EmlcP3AOK50uxVLyvcX9c8pmBSKH0mA,10692
ZODB/tests/speed.py,sha256=WGLC2HKbxCDLdFsKwIruAtxSQC4P3uqiwFYVp30za1s,3573
ZODB/tests/synchronizers.txt,sha256=JsY8EJxPna5oa73VVRp1sdAvFLrwbBJ-pmyQTl9zaM0,2621
ZODB/tests/testActivityMonitor.py,sha256=VFwHtHFCWFZLHc4dOtfu2XLMsqTasuUbuBZ1fT60QsM,3247
ZODB/tests/testBroken.py,sha256=VkPMIXbq_fB8pXoHYbld3BXF0_jaYUitaVgVOiVay4k,2675
ZODB/tests/testCache.py,sha256=OdV_-oB_0N9fdQwC3qkvc_2V5tWExQVueoDbwh2gQrA,18490
ZODB/tests/testConfig.py,sha256=5n1GAA0UbucUzBnSOGylBcAk4-ag4ae5sB03kOUCeQI,5466
ZODB/tests/testConnection.py,sha256=jjuaseuYifMKyN13tFwW3aoie4WhtXkr54sshECl88Y,43580
ZODB/tests/testConnectionSavepoint.py,sha256=XndyQQTUjglcoSM5zSPv_4z9U8LUPEbdxq2CtgSRyAw,6650
ZODB/tests/testConnectionSavepoint.txt,sha256=RNJC5hZNdElunbWLAx77SZkKrxw7jDWyOl58tkHP_js,5272
ZODB/tests/testDB.py,sha256=wftDiIAKXhcq30P-CaZliifijH1OLRzipAo4vuTw9bI,11585
ZODB/tests/testDemoStorage.py,sha256=diK4oDHtCke4_6AsMlsHr3x5feWJBdi0kBZCYECQN30,8925
ZODB/tests/testFileStorage.py,sha256=5siSfWJg98trtOsFSTGtQsjtU-NLnUjkAppKrgZ2xHU,25314
ZODB/tests/testMVCCMappingStorage.py,sha256=ghgy3CRqNlybBEkLN7CU7kiVqTRbhyWogAxCLaAOezc,6860
ZODB/tests/testMappingStorage.py,sha256=20UOChHCMxPH1Mfe8yr1X-vd-Yw7QjcvZJC-5hG7KPc,3172
ZODB/tests/testPersistentList.py,sha256=k4am83pfO36SwA-3G_rs7F1ADZL-_wK-m399BNzxoN0,6086
ZODB/tests/testPersistentMapping.py,sha256=yJx8elL6U0O6KzvoEKcJtisg9qYTG6F-uATESM09hNs,5093
ZODB/tests/testPersistentWeakref.py,sha256=2dfukkypsAHga6C6d_dEw8i6XtS8j_X43ylGdHHXY2Q,7457
ZODB/tests/testRecover.py,sha256=iLS03NyktNBsH8By98svA2IfA6nPpiHbbtS0wFa-tQU,7882
ZODB/tests/testSerialize.py,sha256=Wld1xE__VSHHyCummNKAf-bH5D_B_i1Bx9pCukBN1bk,8741
ZODB/tests/testUtils.py,sha256=c4YqY75_TN642Bh5mZP2OHd_P0kjY-STZJg_9SGowNw,6199
ZODB/tests/testZODB.py,sha256=PVkhxraA8XnARynPfPxTOUIhXxRuc1kcBrUaRWafpYI,22274
ZODB/tests/test_TransactionMetaData.py,sha256=yEQghADGjF2l6WCbyloJRMydcaw_UlXA21QL79fKHzk,4502
ZODB/tests/test_cache.py,sha256=bDFJdPel2Uenk_v0M6yZcGht-H7RlZNjcVqYrQW334M,7128
ZODB/tests/test_datamanageradapter.py,sha256=UX5ToCspuxON3Qp2CCoipp-AR_rtPCvDYmsW6UQkifM,5245
ZODB/tests/test_doctest_files.py,sha256=c0ruQk4LjDxrMVDT-7lE0EB76_aV2h2AV83lMV_cD3c,1814
ZODB/tests/test_fsdump.py,sha256=jKG09S5tFAVH2kyDfoTQ9r1W2AWe-PpmCak10SO7aKA,2980
ZODB/tests/test_mvccadapter.py,sha256=Q2KS-KS2w9Dkgws_3k2ty7Gszrw3g2cNTxR1wsriwbA,1718
ZODB/tests/test_prefetch.py,sha256=vMDgx76KIYa4IClHa8yguClefBMvDNAUxZJ-Uhc6ayU,1629
ZODB/tests/test_storage.py,sha256=vrwCRaFYZqhJMlcOH4U-tC9ql61sTVKHRqZ6E0b9hs0,4895
ZODB/tests/testblob.py,sha256=1yWgBCLggmNZGihR5B2TC43ZCuc3tNl7wVi0FGQO_Pw,25400
ZODB/tests/testconflictresolution.py,sha256=uc6VSplnP0N_3p4kqboyWRfAQSl-DmnsS6IBmrs-YSQ,12029
ZODB/tests/testcrossdatabasereferences.py,sha256=DKpAGIYQmXoAWis08NH742qv-QmtCTHeaUkMankxWk4,5984
ZODB/tests/testdocumentation.py,sha256=UfnggH7vMQKvG1pn2NNmYXDTFtzteeTKSlVXdIHfYCI,1799
ZODB/tests/testfsIndex.py,sha256=WCIngHitrC9X4QZCk6KXk6aAoKsVSfxpFvoMGRVdvZw,6911
ZODB/tests/testfsoids.py,sha256=Zh5JBZbQtoeasKY2-V4cFdzFmcwWwcbyAOewlj5sbSg,7059
ZODB/tests/testhistoricalconnections.py,sha256=tcA2yh7Eyg_9SkfgWRp9IivQ404umpa0-UF9Lab83s4,1004
ZODB/tests/testmvcc.py,sha256=oi4Guo7442ci1Pel2rxBc-FlOJgw985xn5-yLiLvGBo,13224
ZODB/tests/testpersistentclass.py,sha256=S2wCuPdv0pvGD-IiF5UkpPOvW__W-RlwkK9tCjrDSFk,2656
ZODB/tests/util.py,sha256=gVxllESudiBs-EpbcHLuf5pKHvO_Zh4TkFSCeQo-yKA,10193
ZODB/tests/warnhook.py,sha256=_akvqWZecvkL4nkQocgfYZI5pI6xOvy_47PQGZQnMQo,2122
ZODB/transact.py,sha256=9yk1aDNeRyz6SX_EPIW-9rM4mX3YIMhXIJ8qKKfdH-M,1995
ZODB/utils.py,sha256=8oj6wcSQ6x532qq-Vv0uEzdXVknHYBKytG6nNPVrWcw,11547
ZODB/utils.txt,sha256=9v4O-TKoTpSdj5GlswLNGKo5w5y1Hpl7Euj28r_NkN0,5947
ZODB/valuedoc.py,sha256=ipb-nNxMnGVifVVyIgXhvJTGxcfcYgaq2yCF0QA2W9M,308
@@ -0,0 +1,6 @@
Wheel-Version: 1.0
Generator: bdist_wheel (0.30.0)
Root-Is-Purelib: true
Tag: py2-none-any
Tag: py3-none-any
@@ -0,0 +1,8 @@
[console_scripts]
fsdump = ZODB.FileStorage.fsdump:main
fsoids = ZODB.scripts.fsoids:main
fsrefs = ZODB.scripts.fsrefs:main
fstail = ZODB.scripts.fstail:Main
repozo = ZODB.scripts.repozo:main
@@ -0,0 +1 @@
{"classifiers": ["Intended Audience :: Developers", "License :: OSI Approved :: Zope Public License", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Database", "Topic :: Software Development :: Libraries :: Python Modules", "Operating System :: Microsoft :: Windows", "Operating System :: Unix", "Framework :: ZODB"], "description_content_type": "UNKNOWN", "extensions": {"python.commands": {"wrap_console": {"fsdump": "ZODB.FileStorage.fsdump:main", "fsoids": "ZODB.scripts.fsoids:main", "fsrefs": "ZODB.scripts.fsrefs:main", "fstail": "ZODB.scripts.fstail:Main", "repozo": "ZODB.scripts.repozo:main"}}, "python.details": {"contacts": [{"email": "zodb-dev@zope.org", "name": "Zope Foundation and Contributors", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst"}, "project_urls": {"Home": "http://www.zodb.org/"}}, "python.exports": {"console_scripts": {"fsdump": "ZODB.FileStorage.fsdump:main", "fsoids": "ZODB.scripts.fsoids:main", "fsrefs": "ZODB.scripts.fsrefs:main", "fstail": "ZODB.scripts.fstail:Main", "repozo": "ZODB.scripts.repozo:main"}}}, "extras": ["test"], "generator": "bdist_wheel (0.30.0)", "keywords": ["database", "nosql", "python", "zope"], "license": "ZPL 2.1", "metadata_version": "2.0", "name": "ZODB", "platform": "any", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "run_requires": [{"requires": ["BTrees (>=4.2.0)", "ZConfig", "persistent (>=4.4.0)", "six", "transaction (>=2.0.3)", "zc.lockfile", "zodbpickle (>=1.0.1)", "zope.interface"]}, {"extra": "test", "requires": ["manuel", "zope.testing", "zope.testrunner (>=4.4.6)"]}, {"environment": "python_version == \"2.7\"", "extra": "test", "requires": ["mock"]}], "summary": "ZODB, a Python object-oriented database", "test_requires": [{"requires": ["manuel", "mock", "zope.testing", "zope.testrunner (>=4.4.6)"]}], "version": "5.5.0"}