From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- third_party/python/pyrsistent/CHANGES.txt | 333 ++++++++++++++++++++++++++++++ 1 file changed, 333 insertions(+) create mode 100644 third_party/python/pyrsistent/CHANGES.txt (limited to 'third_party/python/pyrsistent/CHANGES.txt') diff --git a/third_party/python/pyrsistent/CHANGES.txt b/third_party/python/pyrsistent/CHANGES.txt new file mode 100644 index 0000000000..603b3f2048 --- /dev/null +++ b/third_party/python/pyrsistent/CHANGES.txt @@ -0,0 +1,333 @@ +Revision history +---------------- +0.16.0, 2020-03-24 + * No major updates but Python 2 support no longer guaranteed. + * Fix #192, 'ignore_extra' for 'pvector_field'. Thanks @ss18 for this! + * Fix #191, include LICENCE in distribution. Thanks @johnthagen for this! + * Fix #190, minor MyPy errors. Thanks @Qhesz for this! + +0.15.7, 2020-01-07 + * NOTE! This is the last version of Pyrsistent that officially supports Python 2.X! + * Fix #186, type errors with more recent versions of MyPy. Thanks @qhesz for this! + * Build and test on ARM during CI. Thanks @ossdev07 for this! + * Set absolute imports for python2 compatibility. Thanks @michalvi for this! + +0.15.6, 2019-11-23 + * Fix #182 moduleinit name clash. + +0.15.5, 2019-10-27 + * Fix #179 Fixed 'ignore_extra' factory parameter for pvector. Thanks @ss18 for this! + +0.15.4, 2019-07-27 + * Fix #174, fix a GC traversal bug in pvector evolver C extension. Thanks @till-varoquaux for finding and fixing this! + * Fix #175, pytest 5 compatibility, this is a quick fix, some more work is needed to get coverage working etc. + +0.15.3, 2019-07-07 + * Fix #172, catch all exceptions during extension build to reduce chance of corner cases that prevents installation. + * Fix #171, in PVector equality comparison don's assume that other object has a length, check before calling len. + * Fix #168, write warning about failing build of C extension directly to stderr to avoid that pip silences it. + * Fix #155, update PMapEvolver type stub to better reflect implementation. + +0.15.2, 2019-05-12 + * Fix #166, Propagate 'ignore_extra' param in hierarchy. Thanks @ss18 for this! + * Fix #167, thaw typing. Thanks @nattofriends for this! + * Fix #154, not possible to insert empty pmap as leaf node with transform. + +0.15.1, 2019-04-26 + * Fix #163 installation broken on Python 2 because of fix of #161, thanks @vphilippon for this! Sorry for the + inconvenience. + +0.15.0, 2019-04-25 + * Python 3.4 is no longer officially supported since it is EOL since 2019-03-18. + * Fix #157, major improvements to type hints. Thanks @je-l for working on this and @nattofriend for reviewing the PR! + * Fix #161, installation fails on some Windows platforms because fallback to Python pvector does not work. + Thanks @MaxTaggart for fixing and verifying this! + +0.14.11, 2019-02-21 + * Fix #152 Don't use __builtin_popcount, this hopefully fixes #147 Error in pvectorc.cp37-win_amd64.pyd file, as well. + Thanks @benrg for this! + * Fix #151 Fix compatibility for hypothesis 4. Thanks @felixonmars for this! + +0.14.10, 2019-02-09 + * Fix #148, only require pytest-runner if running tests. Thanks @ccorbacho for this! + +0.14.9, 2019-01-06 + * Fix #144, Compile pvectormodule.c on windows. Thanks @ganwell for this! + +0.14.8, 2018-12-19 + * Fix #142, Improve type stubs. Thanks @arxanas for this! + +0.14.7, 2018-11-20 + * Fix #102, add PEP 561 type annotation stubs for most pyrsistent types. Thanks @nattofriends for this! + +0.14.6, 2018-11-17 + * Fix #135, Type classes for Python 3 type annotations of pyrsistent types. Thanks @nattofriends for this! + * Fix #128, Allow PClass and PRecord to ignore input parameters to constructor that are not part of the spec + instead of blowing up with a type error. Thanks @agberk for this! + +0.14.5, 2018-10-14 + * Fix #137, deprecation warnings in Python 3.7. Thanks @thombashi for this! + * Fix #129, building via setuptools and setup.py. Thanks @galuszkak for this! + +0.14.4, 2018-07-08 + * Fix #133, minor Python 3.7 compatibility issue. Pyrsistent is now officially Python 3.7 compliant! + +v0.14.3, 2018-06-11 + * Fix #123 regression where type names break sequence fields. Thanks @doozr for this! + * Fix #124 using the class name to make AttributeError on __getattr__ more informative for PRecords. + Thanks @neilvyas for this! + * Fix #125 how fields handle type arguments. Thanks @neilvyas for this! + +v0.14.2, 2017-12-06 + * Fix #121, regression in PClass.set() introduced in 0.14.1. + +v0.14.1, 2017-11-27 + * Equality check performance improvements for pvectors and pmaps. Thanks @dtomas for this! + * Avoid calling factories multiple times for fields that do not change, see PR #120 for for + details. Thanks @teepark for this! + +v0.14.0, 2017-10-08 + * Fix #117, pmap now accepts iterators as input to constructor. Thanks @Julian for this! + * Drop support for Python 2.6. Nothing has been done in this release that will explicitly + break pyrsistent for 2.6 but it will not be considered moving forward. Dropping 2.6 + support is the reason for stepping the second decimal instead of the third. + +v0.13.0, 2017-09-01 + * Fix #113, Skip field factories when loading pickled objects. There is a + minor backwards incompatibilty in the behaviour because of this. Thanks + @teepark for fi this! + * Fix #116, negative indexing for pdeques. Thanks @Julian for this! + +v0.12.3, 2017-06-04 + * Fix #83, make it possible to use Python 3 enums as field type without having to wrap it in + a list or tuple. Thanks @douglas-treadwell for this! + +v0.12.2, 2017-05-30 + * Fix #108, now possible to use the values in predicates to transform. Thanks @exarkus for this! + * Fix #107, support multiple level of __invariant__ inheritance. Thanks @exarkus for this! + +v0.12.1, 2017-02-26 + * Fix #97, initialize CheckedPVector from iterator- + * Fix #97, cache hash value on PMap. Thanks @sarum90 for this! + +v0.12.0, 2017-01-06 + * Fix #87, add function get_in() for access to elements in deeply nested structures. + * Fix #91, add method update() to pset and pbag. + * Fix #92, incorrect discard of elements in transform on pvector + * This is a release candidate for 1.0 as I now consider pyrsistent fairly stable. + +v0.11.13, 2016-04-03 + * Fix #84, pvector segfault in CPython 3 when repr of contained object raises Exception. + * Update README to cover for issue described in #83. + +v0.11.12, 2016-02-06 + * Minor modifications of tests to allow testing as requested in #79 and #80. + * Also run CI tests under python 3.5 + +v0.11.11, 2016-01-31 + * #78, include tests in pypi dist. + +v0.11.10, 2015-12-27, NOTE! This release contains a backwards incompatible change + despite only stepping the patch version number. See below. + * Implement #74, attribute access on PClass evolver + * Implement #75, lazily evaluated invariant messages by providing a + callable with no arguments. + * Initial values on fields can now be evaluated on object creation + by providing a callable with no arguments. + + NOTE! If you previously had callables as initial values this change means that those + will be called upon object creation which may not be what you want. As + a temporary workaround a callable returning a callable can be used. This + feature and the concept of initial values will likely change slightly in the future. + See #77 and and #76 for more information. + +v0.11.9, 2015-11-01 + * Added PVector.remove(), thanks @radix for initiating this! + +v0.11.8, 2015-10-18 + * Fix #66, UnicodeDecodeError when doing pip install in environments with ascii encoding as default. + Thanks @foolswood! + * Implement support for multiple types in pmap_field(), pvector_field() and pset_field(). Thanks @itamarst! + +v0.11.7, 2015-10-03 + * Fix #52, occasional SEGFAULTs due to misplaced call to PyObject_GC_Track. Thanks @jkbjh for this! + * Fix #42, complete support for delete. Now also on the C-implementation of the PVectorEvolver. + Thanks @itamarst for contributing a whole bunch of Hypothesis test cases covering the evolver operations! + +v0.11.6, 2015-09-30 + * Add +, -, & and | operations to PBag. Thanks @Futrell for this! + +v0.11.5, 2015-09-29 + * Fix bug introduced in 0.11.4 that prevented multi level inheritance from PClass. + * Make PClassMeta public for friendlier subclassing + +v0.11.4, 2015-09-28 + * Fix #59, make it possible to create weakrefs to all collection types. + Thanks @itamarst for reporting it. + * Fix #58, add __str__ to InvariantException. Thanks @tomprince for reporting it. + +v0.11.3, 2015-09-15 + * Fix #57, support pickling of PClasses and PRecords using pmap_field, pvector_field, and pset_field. + Thanks @radix for reporting this and submitting a fix for it! + +v0.11.2, 2015-09-09 + * Fix bug causing potential element loss when reallocating PMap. Thanks to @jml for finding + this and submitting a PR with a fix! + * Removed python 3.2 test build from Travis. There is nothing breaking 3.2 compatibility in this + release but there will be no effort moving forward to keep the 3.2 compatibility. + +v0.11.1, 2015-08-24 + * Fix #51, PClass.set() broken when used with string+value argument. + * #50, make it possible to specify more than one assertion in an invariant + * #48, make it possible to make recursive type references by using a string + as type specification. + +v0.11.0, 2015-07-11 + * #42, delete() function added to PVector to allow deletion of elements by index + and range. Will perform a full copy of the vector, no structural sharing. + Thanks @radix for helping out with this one! + * Fix #39, explicitly disallow ordering for PMap and PBag, Python 3 style + * Fix #37, PMap.values()/keys()/items() now returns PVectors instead of lists + +v0.10.3, 2015-06-13 + * Fix #40, make it possible to disable the C extension by setting the + PYRSISTENT_NO_C_EXTENSION environment variable. + +v0.10.2, 2015-06-07 + * Fix #38, construction from serialized object for pvector/pset/pmap fields. + +v0.10.1, 2015-04-27 + * Fix broken README.rst + +v10.0.0, 2015-04-27 + * New type PClass, a persistent version of a Python object. Related to issues #30 and #32. + Thanks @exarkun and @radix for input on this one! + * Rename PRecordTypeError -> PTypeError, it is now also raised by PClass + * New convenience functions, pvector_field, pmap_field and pset_field to create PRecord/PClass + fields for checked collections. Issues #26 and #36. Thanks to @itamarst for this! + * Removed deprecated function set_in() on PMap and PVector. + * Removed deprecated factory function pclass. + * Major internal restructuring breaking pyrsistent.py into multiple files. This should + not affect those only using the public interface but if you experience problems please + let me know. + +v0.9.4, 2015-04-20 + * Fix #34, PVector now compares against built in list type + +v0.9.3, 2015-04-06 + * Rename pclass back to immutable and deprecate the usage of the pclass function. PClass will be used by + a new, different type in upcoming releases. + * Documentation strings for the exceptions introduced in 0.9.2. + +v0.9.2, 2015-04-03 + * More informative type errors from checked types, issue #30 + * Support multiple optional types, issue #28 + +v0.9.1, 2015-02-25 + * Multi level serialization for checked types + +v0.9.0, 2015-02-25, Lots of new stuff in this release! + * Checked types, checked versions of PVector, PMap, PSet that support type and invariant specification. + Currently lacking proper documentation but I'm working on it. + * set_in() on PVector and PMap are now deprecated and will be removed in the next release. + Use transform() instead. set_in() has been updated to use transform() for this release + this means that some corner error cases behave slightly different than before. + * Refactoring of the PVector to unify the type. Should not have any user impact as long as + only the public interface of pyrsistent has been used. PVector is now an abstract base class + with which the different implementations are registered. + * Evolvers have been updated to return themselves for evolving operations to allow function chaining. + * Richer exception messages for KeyErrors and IndexErrors specifying the key/index that caused the failure. + Thanks @radix for this. + * Missing attribute on PMaps when accessing with dot-notation now raises an AttributeError instead of a + KeyError. Issue #21. + * New function decorator @mutant that freezes all input arguments to a function and the return value. + * Add __version__ to pyrsistent.py. Issue #23. + * Fix pickling for pset. Issue #24. + +v0.8.0, 2015-01-21 + * New type PRecord. Subtype of PMap that allows explicit, declarative field specification. Thanks @boxed + for inspiration! + * Efficient transformations of arbitrary complexity on PMap and PVector. Thanks @boxed for inspiration! + * Breaking change to the evolver interface. What used to be .pvector(), .pmap() and .pset() + on the different evolvers has now been unified so that all evolvers have one method .persistent() + to produce the persistent counterpart. Sorry for any inconvenience. + * Removed the tests directory from the package. + * PMap and PSet now contains a copy-function to closer mimic the interface of the dict and set. These + functions will simply return a reference to self. + * Removed deprecated alias 'immutable' from pclass. + +v0.7.1, 2015-01-17 + * Fixes #14 where a file executed (unexpectedly) during installation was not python 3 compatible. + +v0.7.0, 2015-01-04, No 1.0, instead a bunch of new stuff and one API breaking change to PMap.remove(). + * Evolvers for pvector, pmap and pset to allow simple and efficient updates of multiple elements + in the collection. See the documentation for a closer description. + * New method mset on pvector to update multiple values in one operation + * Remove deprecated methods merge and merge_with on PMap + * Change behavior of PMap.remove, it will now raise a KeyError if the element is not present. + New method PMap.discard will instead return the original pmap if the element is not present. + This aligns the PMap with how things are done in the PSet and is closer to the behavior of the + built in counterparts. + +v0.6.3, 2014-11-27 + * Python 2.6 support, thanks @wrmsr! + * PMap.merge/merge_with renamed to update/update_with. merge/merge_with remains but will be + removed for 1.0. + * This is a release candidate for 1.0! Please be aware that PMap.merge/merge_with and immutable() + will be removed for 1.0. + +v0.6.2, 2014-11-03 + * Fix typo causing the pure python vector to be used even if the C implementation was + available. Thanks @zerc for finding it! + +v0.6.1, 2014-10-31 + * Renamed 'immutable' to 'pclass' for consistency but left immutable for compatibility. + +v0.6.0, 2014-10-25 + * New data structure, persistent linked list + * New data structure, persistent double ended queue + +v0.5.0, 2014-09-24 + * New data structure, persistent bag / multiset + * New functions freeze and thaw to recursively convert between python + built in data types and corresponding pyrsistent data types. + * All data structures can now be pickled + * New function merge_in on persistent map which allows a user + supplied function to implement the merge strategy. + +v0.4.0, 2014-09-20 + * Full Python 3 support. + * Immutable object implemented. + * Bug fixes in PVector.__repr__() and PMap.__hash__() and index check of PVector. + * Repr changed to be fully cut and paste compatible + * Changed assoc() -> set(), assoc_in() -> set_in(), massoc() -> mset(). + Sorry for the API breaking change but I think those names are more pythonic. + * Improved documentation. + +v0.3.1, 2014-06-29 + * assoc() on PSet renamed back to add() + +v0.3.0, 2014-06-28 + * Full Sequence protocol support for PVector + * Full Mapping protocol support for PMap + * Full Set protocol support for PSet + * assoc_in() support for both PMap and PVector + * merge() support for PMap + * Performance improvements to the PVector C extension speed up allocation + +v0.2.1, 2014-06-21 + * Supply the tests with the distribution + +v0.2.0, 2014-06-21 + * New C extension with an optimized version of the persistent vector + * Updated API slightly + +v0.1.0, 2013-11-10 + * Initial release. + + +TODO (in no particular order) +----------------------------- +- Versioned data structure where the different versions can be accessed by index? +- Ordered sets and maps +- A good performance measurement suite -- cgit v1.2.3