Development of an internal social media platform with personalised dashboards for students
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

METADATA 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412
  1. Metadata-Version: 2.1
  2. Name: persistent
  3. Version: 4.4.3
  4. Summary: Translucent persistent objects
  5. Home-page: https://github.com/zopefoundation/persistent/
  6. Author: Zope Corporation
  7. Author-email: zodb-dev@zope.org
  8. License: ZPL 2.1
  9. Platform: any
  10. Classifier: Development Status :: 6 - Mature
  11. Classifier: License :: OSI Approved :: Zope Public License
  12. Classifier: Programming Language :: Python
  13. Classifier: Programming Language :: Python :: 2
  14. Classifier: Programming Language :: Python :: 2.7
  15. Classifier: Programming Language :: Python :: 3
  16. Classifier: Programming Language :: Python :: 3.4
  17. Classifier: Programming Language :: Python :: 3.5
  18. Classifier: Programming Language :: Python :: 3.6
  19. Classifier: Programming Language :: Python :: 3.7
  20. Classifier: Programming Language :: Python :: Implementation :: CPython
  21. Classifier: Programming Language :: Python :: Implementation :: PyPy
  22. Classifier: Framework :: ZODB
  23. Classifier: Topic :: Database
  24. Classifier: Topic :: Software Development :: Libraries :: Python Modules
  25. Classifier: Operating System :: Microsoft :: Windows
  26. Classifier: Operating System :: Unix
  27. Requires-Dist: zope.interface
  28. Provides-Extra: docs
  29. Requires-Dist: Sphinx; extra == 'docs'
  30. Requires-Dist: repoze.sphinx.autointerface; extra == 'docs'
  31. Provides-Extra: test
  32. Requires-Dist: zope.testrunner; extra == 'test'
  33. Requires-Dist: manuel; extra == 'test'
  34. Requires-Dist: cffi; (platform_python_implementation == "CPython") and extra == 'test'
  35. Provides-Extra: testing
  36. ``persistent``: automatic persistence for Python objects
  37. =========================================================
  38. .. image:: https://travis-ci.org/zopefoundation/persistent.svg?branch=master
  39. :target: https://travis-ci.org/zopefoundation/persistent
  40. .. image:: https://coveralls.io/repos/github/zopefoundation/persistent/badge.svg?branch=master
  41. :target: https://coveralls.io/github/zopefoundation/persistent?branch=master
  42. .. image:: https://readthedocs.org/projects/persistent/badge/?version=latest
  43. :target: http://persistent.readthedocs.org/en/latest/
  44. :alt: Documentation Status
  45. .. image:: https://img.shields.io/pypi/v/persistent.svg
  46. :target: https://pypi.org/project/persistent
  47. :alt: Latest release
  48. .. image:: https://img.shields.io/pypi/pyversions/persistent.svg
  49. :target: https://pypi.org/project/persistent
  50. :alt: Python versions
  51. This package contains a generic persistence implementation for Python. It
  52. forms the core protocol for making objects interact "transparently" with
  53. a database such as the ZODB.
  54. Please see the Sphinx documentation (``docs/index.rst``) for further
  55. information, or view the documentation at Read The Docs, for either
  56. the latest (``http://persistent.readthedocs.io/en/latest/``) or stable
  57. release (``http://persistent.readthedocs.io/en/stable/``).
  58. .. note::
  59. Use of this standalone ``persistent`` release is not recommended or
  60. supported with ZODB < 3.11. ZODB 3.10 and earlier bundle their own
  61. version of the ``persistent`` package.
  62. ``persistent`` Changelog
  63. ========================
  64. 4.4.3 (2018-10-22)
  65. ------------------
  66. - Fix the repr of the persistent objects to include the module name
  67. when using the C extension. This matches the pure-Python behaviour
  68. and the behaviour prior to 4.4.0. See `issue 92
  69. <https://github.com/zopefoundation/persistent/issues/92>`_.
  70. - Change the repr of persistent objects to format the OID as in
  71. integer in hexadecimal notation if it is an 8-byte byte string, as
  72. ZODB does. This eliminates some issues in doctests. See `issue 95
  73. <https://github.com/zopefoundation/persistent/pull/95>`_.
  74. 4.4.2 (2018-08-28)
  75. ------------------
  76. - Explicitly use unsigned constants for packing and unpacking C
  77. timestamps, fixing an arithmetic issue for GCC when optimizations
  78. are enabled and ``-fwrapv`` is *not* enabled. See `issue 86
  79. <https://github.com/zopefoundation/persistent/issues/86>`_.
  80. 4.4.1 (2018-08-23)
  81. ------------------
  82. - Fix installation of source packages on PyPy. See `issue 88
  83. <https://github.com/zopefoundation/persistent/issues/88>`_.
  84. 4.4.0 (2018-08-22)
  85. ------------------
  86. - Use unsigned constants when doing arithmetic on C timestamps,
  87. possibly avoiding some overflow issues with some compilers or
  88. compiler settings. See `issue 86
  89. <https://github.com/zopefoundation/persistent/issues/86>`_.
  90. - Change the default representation of ``Persistent`` objects to
  91. include the representation of their OID and jar, if set. Also add
  92. the ability for subclasses to implement ``_p_repr()`` instead of
  93. overriding ``__repr__`` for better exception handling. See `issue 11
  94. <https://github.com/zopefoundation/persistent/issues/11>`_.
  95. - Reach and maintain 100% test coverage.
  96. - Simplify ``__init__.py``, including removal of an attempted legacy
  97. import of ``persistent.TimeStamp``. See `PR 80
  98. <https://github.com/zopefoundation/persistent/pull/80>`_.
  99. - Add support for Python 3.7 and drop support for Python 3.3.
  100. - Build the CFFI modules (used on PyPy or when PURE_PYTHON is set) `at
  101. installation or wheel building time
  102. <https://cffi.readthedocs.io/en/latest/cdef.html#ffibuilder-set-source-preparing-out-of-line-modules>`_
  103. when CFFI is available. This replaces `the deprecated way
  104. <https://cffi.readthedocs.io/en/latest/overview.html#abi-versus-api>`_
  105. of building them at import time. If binary wheels are distributed,
  106. it eliminates the need to have a functioning C compiler to use PyPy.
  107. See `issue 75
  108. <https://github.com/zopefoundation/persistent/issues/75>`_.
  109. - Fix deleting the ``_p_oid`` of a pure-Python persistent object when
  110. it is in a cache.
  111. - Fix deleting special (``_p``) attributes of a pure-Python persistent
  112. object that overrides ``__delattr__`` and correctly calls ``_p_delattr``.
  113. - Remove some internal compatibility shims that are no longer
  114. necessary. See `PR 82 <https://github.com/zopefoundation/persistent/pull/82>`_.
  115. - Make the return value of ``TimeStamp.second()`` consistent across C
  116. and Python implementations when the ``TimeStamp`` was created from 6
  117. arguments with floating point seconds. Also make it match across
  118. trips through ``TimeStamp.raw()``. Previously, the C version could
  119. initially have erroneous rounding and too much false precision,
  120. while the Python version could have too much precision. The raw/repr
  121. values have not changed. See `issue 41
  122. <https://github.com/zopefoundation/persistent/issues/41>`_.
  123. 4.3.0 (2018-07-30)
  124. ------------------
  125. - Fix the possibility of a rare crash in the C extension when
  126. deallocating items. See https://github.com/zopefoundation/persistent/issues/66
  127. - Change cPickleCache's comparison of object sizes to determine
  128. whether an object can go in the cache to use ``PyObject_TypeCheck()``.
  129. This matches what the pure Python implementation does and is a
  130. stronger test that the object really is compatible with the cache.
  131. Previously, an object could potentially include ``cPersistent_HEAD``
  132. and *not* set ``tp_base`` to ``cPersistenceCAPI->pertype`` and still
  133. be eligible for the pickle cache; that is no longer the case. See
  134. `issue 69 <https://github.com/zopefoundation/persistent/issues/69>`_.
  135. 4.2.4.2 (2017-04-23)
  136. --------------------
  137. - Packaging-only release: fix Python 2.7 ``manylinux`` wheels.
  138. 4.2.4.1 (2017-04-21)
  139. --------------------
  140. - Packaging-only release: get ``manylinux`` wheel built automatically.
  141. 4.2.4 (2017-03-20)
  142. ------------------
  143. - Avoid raising a ``SystemError: error return without exception set``
  144. when loading an object with slots whose jar generates an exception
  145. (such as a ZODB ``POSKeyError``) in ``setstate``.
  146. 4.2.3 (2017-03-08)
  147. ------------------
  148. - Fix the hashcode of Python ``TimeStamp`` objects on 64-bit Python on
  149. Windows. See https://github.com/zopefoundation/persistent/pull/55
  150. - Stop calling ``gc.collect`` every time ``PickleCache.incrgc`` is called (every
  151. transaction boundary) in pure-Python mode (PyPy). This means that
  152. the reported size of the cache may be wrong (until the next GC), but
  153. it is much faster. This should not have any observable effects for
  154. user code.
  155. - Stop clearing the dict and slots of objects added to
  156. ``PickleCache.new_ghost`` (typically these values are passed to
  157. ``__new__`` from the pickle data) in pure-Python mode (PyPy). This
  158. matches the behaviour of the C code.
  159. - Add support for Python 3.6.
  160. - Fix ``__setstate__`` interning when ``state`` parameter is not a built-in dict
  161. 4.2.2 (2016-11-29)
  162. ------------------
  163. - Drop use of ``ctypes`` for determining maximum integer size, to increase
  164. pure-Python compatibility. See https://github.com/zopefoundation/persistent/pull/31
  165. - Ensure that ``__slots__`` attributes are cleared when a persistent
  166. object is ghostified. (This excluses classes that override
  167. ``__new__``. See
  168. https://github.com/zopefoundation/persistent/wiki/Notes_on_state_new_and_slots
  169. if you're curious.)
  170. 4.2.1 (2016-05-26)
  171. ------------------
  172. - Fix the hashcode of C ``TimeStamp`` objects on 64-bit Python 3 on
  173. Windows.
  174. 4.2.0 (2016-05-05)
  175. ------------------
  176. - Fixed the Python(/PYPY) implementation ``TimeStamp.timeTime`` method
  177. to have subsecond precision.
  178. - When testing ``PURE_PYTHON`` environments under ``tox``, avoid poisoning
  179. the user's global wheel cache.
  180. - Add support for Python 3.5.
  181. - Drop support for Python 2.6 and 3.2.
  182. 4.1.1 (2015-06-02)
  183. ------------------
  184. - Fix manifest and re-upload to fix stray files included in 4.1.0.
  185. 4.1.0 (2015-05-19)
  186. ------------------
  187. - Make the Python implementation of ``Persistent`` and ``PickleCache``
  188. behave more similarly to the C implementation. In particular, the
  189. Python version can now run the complete ZODB and ZEO test suites.
  190. - Fix the hashcode of the Python ``TimeStamp`` on 32-bit platforms.
  191. 4.0.9 (2015-04-08)
  192. ------------------
  193. - Make the C and Python ``TimeStamp`` objects behave more alike. The
  194. Python version now produces the same ``repr`` and ``.raw()`` output as
  195. the C version, and has the same hashcode. In addition, the Python
  196. version is now supports ordering and equality like the C version.
  197. - Intern keys of object state in ``__setstate__`` to reduce memory usage
  198. when unpickling multiple objects with the same attributes.
  199. - Add support for PyPy3.
  200. - 100% branch coverage.
  201. 4.0.8 (2014-03-20)
  202. ------------------
  203. - Add support for Python 3.4.
  204. - In pure-Python ``Persistent``, avoid loading state in ``_p_activate``
  205. for non-ghost objects (which could corrupt their state). (PR #9)
  206. - In pure-Python, and don't throw ``POSKeyError`` if ``_p_activate`` is
  207. called on an object that has never been committed. (PR #9)
  208. - In pure-Python ``Persistent``, avoid calling a subclass's ``__setattr__``
  209. at instance creation time. (PR #8)
  210. - Make it possible to delete ``_p_jar`` / ``_p_oid`` of a pure-Python
  211. ``Persistent`` object which has been removed from the jar's cache
  212. (fixes aborting a ZODB Connection that has added objects). (PR #7)
  213. 4.0.7 (2014-02-20)
  214. ------------------
  215. - Avoid a KeyError from ``_p_accessed()`` on newly-created objects under
  216. pure-Python: these objects may be assigned to a jar, but not yet added
  217. to its cache. (PR #6)
  218. - Avoid a failure in ``Persistent.__setstate__`` when the state dict
  219. contains exactly two keys. (PR #5)
  220. - Fix a hang in ``picklecache`` invalidation if OIDs are manually passed
  221. out-of-order. (PR #4)
  222. - Add ``PURE_PYTHON`` environment variable support: if set, the C
  223. extensions will not be built, imported, or tested.
  224. 4.0.6 (2013-01-03)
  225. ------------------
  226. - Updated Trove classifiers.
  227. 4.0.5 (2012-12-14)
  228. ------------------
  229. - Fixed the C-extensions under Py3k (previously they compiled but were
  230. not importable).
  231. 4.0.4 (2012-12-11)
  232. ------------------
  233. - Added support for Python 3.3.
  234. - C extenstions now build under Python 3.2, passing the same tests as
  235. the pure-Python reference implementation.
  236. 4.0.3 (2012-11-19)
  237. ------------------
  238. - Fixed: In the C implimentation, an integer was compared with a
  239. pointer, with undefined results and a compiler warning.
  240. - Fixed: the Python implementation of the ``_p_estimated_size`` propety
  241. didn't support deletion.
  242. - Simplified implementation of the ``_p_estimated_size`` property to
  243. only accept integers. A TypeError is raised if an incorrect type is
  244. provided.
  245. 4.0.2 (2012-08-27)
  246. ------------------
  247. - Correct initialization functions in renamed ``_timestamp`` extension.
  248. 4.0.1 (2012-08-26)
  249. ------------------
  250. - Worked around test failure due to overflow to long on 32-bit systems.
  251. - Renamed ``TimeStamp`` extension module to avoid clash with pure-Python
  252. ``timestamp`` module on case-insensitive filesystems.
  253. N.B: the canonical way to import the ``TimeStamp`` class is now::
  254. from persistent.timestamp import TimeStamp
  255. which will yield the class from the extension module (if available),
  256. falling back to the pure-Python reference implementation.
  257. 4.0.0 (2012-08-11)
  258. ------------------
  259. Platform Changes
  260. ################
  261. - Added explicit support for Python 3.2 and PyPy.
  262. - Note that the C implementations of Persistent, PickleCache, and Timestamp
  263. are not built (yet) on these platforms.
  264. - Dropped support for Python < 2.6.
  265. Testing Changes
  266. ###############
  267. - 100% unit test coverage.
  268. - Removed all ``ZODB``-dependent tests:
  269. - Rewrote some to avoid the dependency
  270. - Cloned the remainder into new ``ZODB.tests`` modules.
  271. - Refactored some doctests refactored as unittests.
  272. - Completed pure-Python reference implementations of 'Persistent',
  273. 'PickleCache', and 'TimeStamp'.
  274. - All covered platforms tested under ``tox``.
  275. - Added support for continuous integration using ``tox`` and ``jenkins``.
  276. - Added ``setup.py dev`` alias (installs ``nose`` and ``coverage``).
  277. - Dropped dependency on ``zope.testing`` / ``zope.testrunner``: tests now
  278. run with ``setup.py test``.
  279. Documentation Changes
  280. #####################
  281. - Refactored many Doctests as Sphinx documentation (snippets are exercised
  282. via 'tox').
  283. - Added ``setup.py docs`` alias (installs ``Sphinx`` and
  284. ``repoze.sphinx.autointerface``).