[Checkins] [zopefoundation/persistent] 64997c: FIX: Clearing a persistent list does not mark it a...

Michael Howitz noreply at github.com
Wed Mar 4 08:12:22 CET 2020


  Branch: refs/heads/py39
  Home:   https://github.com/zopefoundation/persistent
  Commit: 64997cf8e8d72cdb025cec179750af20916c69cc
      https://github.com/zopefoundation/persistent/commit/64997cf8e8d72cdb025cec179750af20916c69cc
  Author: jonathan lung <jlung at kepler.space>
  Date:   2020-02-15 (Sat, 15 Feb 2020)

  Changed paths:
    M CHANGES.rst
    M persistent/list.py
    M persistent/tests/test_list.py

  Log Message:
  -----------
  FIX: Clearing a persistent list does not mark it as changed.


  Commit: 8f73390208512cb12f2dafa8477bd6bbcab9bab1
      https://github.com/zopefoundation/persistent/commit/8f73390208512cb12f2dafa8477bd6bbcab9bab1
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2020-02-15 (Sat, 15 Feb 2020)

  Changed paths:
    M CHANGES.rst
    M persistent/list.py
    M persistent/mapping.py
    M persistent/tests/test_list.py

  Log Message:
  -----------
  Rebase on master; Update change note per feedback and move to correct location.

Also incorporate minor testing feedback.


  Commit: 68e194ad55e57613f4932a65baad6eedb58bf71c
      https://github.com/zopefoundation/persistent/commit/68e194ad55e57613f4932a65baad6eedb58bf71c
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2020-02-15 (Sat, 15 Feb 2020)

  Changed paths:
    M .travis.yml
    M persistent/list.py

  Log Message:
  -----------
  Fix Python 2.7 mac on Travis.

See https://github.com/pypa/virtualenv/issues/1555

Also fix 64-bit windows Python 2; apparently the documentation I read was outdated.


  Commit: f91227e6a01a7cfcc29beba0d3ea384deecb3bc3
      https://github.com/zopefoundation/persistent/commit/f91227e6a01a7cfcc29beba0d3ea384deecb3bc3
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2020-02-15 (Sat, 15 Feb 2020)

  Changed paths:
    M .travis.yml
    M CHANGES.rst
    M persistent/list.py
    M persistent/mapping.py
    M persistent/tests/test_list.py

  Log Message:
  -----------
  Merge pull request #115 from lungj/master

FIX: Clearing a persistent list does not mark it as changed.


  Commit: d877a30b95fc012bcedc1e8720382aafec944f7b
      https://github.com/zopefoundation/persistent/commit/d877a30b95fc012bcedc1e8720382aafec944f7b
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2020-02-15 (Sat, 15 Feb 2020)

  Changed paths:
    M CHANGES.rst
    M persistent/mapping.py
    M persistent/tests/test_list.py
    M persistent/tests/test_mapping.py
    M persistent/tests/utils.py

  Log Message:
  -----------
  Fix PersistentDict.update to accept keyword arguments.

Fixes #126.

Also optimize clear and popitem to not mark the object as changed unnecessarily.


  Commit: a6a18eaa8f347530646ce413f93f90a584ab2fb2
      https://github.com/zopefoundation/persistent/commit/a6a18eaa8f347530646ce413f93f90a584ab2fb2
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2020-02-19 (Wed, 19 Feb 2020)

  Changed paths:
    M CHANGES.rst
    M persistent/mapping.py
    M persistent/tests/test_list.py
    M persistent/tests/test_mapping.py
    M persistent/tests/utils.py

  Log Message:
  -----------
  Merge pull request #127 from zopefoundation/issue126

Fix PersistentDict.update to accept keyword arguments.


  Commit: 0e957a4ff23246bdcc9d9e361c6172f4f223e996
      https://github.com/zopefoundation/persistent/commit/0e957a4ff23246bdcc9d9e361c6172f4f223e996
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2020-02-19 (Wed, 19 Feb 2020)

  Changed paths:
    M CHANGES.rst
    M persistent/cPersistence.c
    M persistent/cPickleCache.c
    M setup.py

  Log Message:
  -----------
  Add support for Python 3.9.

Guard use of the internal functions _Py_*Reference behind correct ifdefs.

Also fix use of deprecated function PyEval_CallObject to be PyObject_CallObject.

Fixes #124


  Commit: 6ee588d88a5a61910334ef7766d83708b916510e
      https://github.com/zopefoundation/persistent/commit/6ee588d88a5a61910334ef7766d83708b916510e
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2020-02-19 (Wed, 19 Feb 2020)

  Changed paths:
    M persistent/cPickleCache.c

  Log Message:
  -----------
  Extra guards around _Py_RefTotal usage.

Testing in a Python 3.9 interpreter with Py_TRACE_REFS defined revealed another issue, the separation of Py_RefTotal out to depend on Py_REF_DEBUG.


  Commit: 4a1da4d81a99ec8adc5b3df5a1cf82ae1d2c3bdb
      https://github.com/zopefoundation/persistent/commit/4a1da4d81a99ec8adc5b3df5a1cf82ae1d2c3bdb
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2020-02-19 (Wed, 19 Feb 2020)

  Changed paths:
    M CHANGES.rst
    M persistent/cPickleCache.c

  Log Message:
  -----------
  Remove usage of _Py_NewReference/ForgetReference and _Py_RefTotal.

The extension functions fine even without them even when the core interpreter is built with Py_TRACE_REFS, and it wasn't 100% clear that they were actually being used as expected for modern interpreters. Plus the nesting of defines was getting ugly.


  Commit: da55b9b2e975c3b1429704ff0610690dc73c1c2b
      https://github.com/zopefoundation/persistent/commit/da55b9b2e975c3b1429704ff0610690dc73c1c2b
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2020-02-19 (Wed, 19 Feb 2020)

  Changed paths:
    M CHANGES.rst
    M persistent/list.py
    M persistent/mapping.py
    M persistent/tests/test_list.py
    M persistent/tests/test_mapping.py
    M persistent/tests/utils.py

  Log Message:
  -----------
  Fix slicing and copying of PersistentList and PersistentMapping.

See https://bugs.python.org/issue27639 and https://bugs.python.org/issue27141

Fixes #112


  Commit: 1e4c405a56c705babd3006706fb286f51c844cef
      https://github.com/zopefoundation/persistent/commit/1e4c405a56c705babd3006706fb286f51c844cef
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2020-02-19 (Wed, 19 Feb 2020)

  Changed paths:
    M persistent/list.py
    M persistent/tests/test_list.py
    M persistent/tests/test_mapping.py

  Log Message:
  -----------
  Extra slicing tests, and fix a __delslice__ issue on Python 2.

Found by @tseaver in https://github.com/zopefoundation/persistent/pull/115#discussion_r379928442


  Commit: 79bf3cc24caacd2a2c355c698f265c9ec391aa3d
      https://github.com/zopefoundation/persistent/commit/79bf3cc24caacd2a2c355c698f265c9ec391aa3d
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2020-02-19 (Wed, 19 Feb 2020)

  Changed paths:
    M persistent/mapping.py
    M persistent/tests/test_mapping.py
    M persistent/tests/utils.py

  Log Message:
  -----------
  We need to implement PersistentMapping.__copy__ on all versions of Python.

In order to handle the old _container storage.


  Commit: 1dcc91a66dfdfcec7c9ddb62e28008282a17b636
      https://github.com/zopefoundation/persistent/commit/1dcc91a66dfdfcec7c9ddb62e28008282a17b636
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2020-02-19 (Wed, 19 Feb 2020)

  Changed paths:
    M persistent/list.py

  Log Message:
  -----------
  Simplify and correct version check for when PersistentList.__getitem__ needs to handle slices.


  Commit: e1651241793ea6ec24cfab4fa0b79853e5a3a374
      https://github.com/zopefoundation/persistent/commit/e1651241793ea6ec24cfab4fa0b79853e5a3a374
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2020-02-20 (Thu, 20 Feb 2020)

  Changed paths:
    M persistent/_compat.h

  Log Message:
  -----------
  Python3: Stop using undocumented PyLong_AS_LONG.

Fixes #125

Because it was just an alias for the documented API, there should be no repercussions. The exception (and the reason for this issue in the first place) is if something both includes 'cPersistence.h' and also defines their own INT_AS_LONG macro. If the definitions differ, the compiler might now emit a warning. I saw that in BTrees https://github.com/zopefoundation/BTrees/pull/122/files#diff-277c29c35c8feb60719e5ec94a3fe72e


  Commit: 1a02a9fb1145db69af2b444a443ebafabd4eb316
      https://github.com/zopefoundation/persistent/commit/1a02a9fb1145db69af2b444a443ebafabd4eb316
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2020-02-21 (Fri, 21 Feb 2020)

  Changed paths:
    M CHANGES.rst
    M persistent/cPersistence.c
    M persistent/cPickleCache.c
    M setup.py

  Log Message:
  -----------
  Merge pull request #129 from zopefoundation/issue124

Fix issue 124


  Commit: 66fe514f3dfff37227200cea40ec98371846a917
      https://github.com/zopefoundation/persistent/commit/66fe514f3dfff37227200cea40ec98371846a917
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2020-02-21 (Fri, 21 Feb 2020)

  Changed paths:
    M persistent/_compat.h

  Log Message:
  -----------
  Merge pull request #130 from zopefoundation/issue125

Python3: Stop using undocumented PyLong_AS_LONG.


  Commit: 29d207e7849bb55b371e1a4c6674eb4264ab9fbd
      https://github.com/zopefoundation/persistent/commit/29d207e7849bb55b371e1a4c6674eb4264ab9fbd
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2020-02-25 (Tue, 25 Feb 2020)

  Changed paths:
    M CHANGES.rst
    M persistent/list.py
    M persistent/mapping.py
    M persistent/tests/test_list.py
    M persistent/tests/test_mapping.py
    M persistent/tests/utils.py

  Log Message:
  -----------
  Merge pull request #128 from zopefoundation/issue112

Fix slicing and copying of PersistentList and PersistentMapping.


  Commit: 328253dfdde2fea2aecfddfc5fec290d8e4c9ab0
      https://github.com/zopefoundation/persistent/commit/328253dfdde2fea2aecfddfc5fec290d8e4c9ab0
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2020-02-27 (Thu, 27 Feb 2020)

  Changed paths:
    M .travis.yml
    M CHANGES.rst
    M appveyor.yml
    M persistent/__init__.py
    M persistent/_compat.py
    M persistent/cPersistence.c
    M persistent/persistence.py
    M persistent/picklecache.py
    M persistent/tests/test_persistence.py
    M persistent/tests/test_picklecache.py
    M persistent/tests/test_timestamp.py
    M persistent/tests/utils.py
    M persistent/timestamp.py
    M setup.py
    M tox.ini

  Log Message:
  -----------
  Add the ability to force use of C extensions.

With PURE_PYTHON=0, like in zope.interface.

Also always require all three extensions. This solves mysterious issues you can get if you wind up mixing and matching (#124).

Fixes #131

Add travis and tox tests for this.


  Commit: fd5dd0009f894ddee4b38ad070aa8236e4581066
      https://github.com/zopefoundation/persistent/commit/fd5dd0009f894ddee4b38ad070aa8236e4581066
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2020-03-03 (Tue, 03 Mar 2020)

  Changed paths:
    M CHANGES.rst
    M persistent/__init__.py
    M persistent/_compat.py
    M persistent/interfaces.py
    M persistent/persistence.py
    M persistent/picklecache.py
    A persistent/tests/test__compat.py
    M persistent/tests/test_persistence.py
    M persistent/tests/test_picklecache.py
    M persistent/tests/test_timestamp.py
    M persistent/timestamp.py

  Log Message:
  -----------
  Incorporate review feedback.

- Let an empty value of PURE_PYTHON mean the same thing as it did before (no preference)
- Add tests for the functions that handle PURE_PYTHON
- Clean up imports in various places
- Add more tests for C TimeStamp hash code.
- Add some comments.


  Commit: 49c9ffb1c1a3e1f607c3e249ac0c57e7a9e3a583
      https://github.com/zopefoundation/persistent/commit/49c9ffb1c1a3e1f607c3e249ac0c57e7a9e3a583
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2020-03-03 (Tue, 03 Mar 2020)

  Changed paths:
    M .travis.yml
    M CHANGES.rst
    M appveyor.yml
    M persistent/__init__.py
    M persistent/_compat.py
    M persistent/cPersistence.c
    M persistent/interfaces.py
    M persistent/persistence.py
    M persistent/picklecache.py
    A persistent/tests/test__compat.py
    M persistent/tests/test_persistence.py
    M persistent/tests/test_picklecache.py
    M persistent/tests/test_timestamp.py
    M persistent/tests/utils.py
    M persistent/timestamp.py
    M setup.py
    M tox.ini

  Log Message:
  -----------
  Merge pull request #132 from zopefoundation/issue131

Add the ability to force use of C extensions.


  Commit: dbc6d911d0f0e8041eb463661b865691c07dba00
      https://github.com/zopefoundation/persistent/commit/dbc6d911d0f0e8041eb463661b865691c07dba00
  Author: Michael Howitz <mh at gocept.com>
  Date:   2020-03-04 (Wed, 04 Mar 2020)

  Changed paths:
    M .travis.yml
    M CHANGES.rst
    M appveyor.yml
    M persistent/__init__.py
    M persistent/_compat.h
    M persistent/_compat.py
    M persistent/cPersistence.c
    M persistent/cPickleCache.c
    M persistent/interfaces.py
    M persistent/list.py
    M persistent/mapping.py
    M persistent/persistence.py
    M persistent/picklecache.py
    A persistent/tests/test__compat.py
    M persistent/tests/test_list.py
    M persistent/tests/test_mapping.py
    M persistent/tests/test_persistence.py
    M persistent/tests/test_picklecache.py
    M persistent/tests/test_timestamp.py
    M persistent/tests/utils.py
    M persistent/timestamp.py
    M setup.py
    M tox.ini

  Log Message:
  -----------
  Merge branch 'master' into py39

# Conflicts:
#	.travis.yml
#	CHANGES.rst
#	tox.ini


Compare: https://github.com/zopefoundation/persistent/compare/8046eac3f917...dbc6d911d0f0


More information about the checkins mailing list