Bug 1874684 - Part 10: Replace BigInt with Int128 in RoundNumberToIncrement. r=mgaudet
[gecko.git] / third_party / python / pyrsistent / CHANGES.txt
blob603b3f20485c073c2479b8db8a5ca23ab30754f4
1 Revision history
2 ----------------
3 0.16.0, 2020-03-24
4  * No major updates but Python 2 support no longer guaranteed.
5  * Fix #192, 'ignore_extra' for 'pvector_field'. Thanks @ss18 for this!
6  * Fix #191, include LICENCE in distribution. Thanks @johnthagen for this!
7  * Fix #190, minor MyPy errors. Thanks @Qhesz for this!
9 0.15.7, 2020-01-07
10  * NOTE! This is the last version of Pyrsistent that officially supports Python 2.X!
11  * Fix #186, type errors with more recent versions of MyPy. Thanks @qhesz for this!
12  * Build and test on ARM during CI. Thanks @ossdev07 for this!
13  * Set absolute imports for python2 compatibility. Thanks @michalvi for this!
15 0.15.6, 2019-11-23
16  * Fix #182 moduleinit name clash.
18 0.15.5, 2019-10-27
19  * Fix #179 Fixed 'ignore_extra' factory parameter for pvector. Thanks @ss18 for this!
21 0.15.4, 2019-07-27
22  * Fix #174, fix a GC traversal bug in pvector evolver C extension. Thanks @till-varoquaux for finding and fixing this!
23  * Fix #175, pytest 5 compatibility, this is a quick fix, some more work is needed to get coverage working etc.
25 0.15.3, 2019-07-07
26  * Fix #172, catch all exceptions during extension build to reduce chance of corner cases that prevents installation.
27  * Fix #171, in PVector equality comparison don's assume that other object has a length, check before calling len.
28  * Fix #168, write warning about failing build of C extension directly to stderr to avoid that pip silences it.
29  * Fix #155, update PMapEvolver type stub to better reflect implementation.
31 0.15.2, 2019-05-12
32  * Fix #166, Propagate 'ignore_extra' param in hierarchy. Thanks @ss18 for this!
33  * Fix #167, thaw typing. Thanks @nattofriends for this!
34  * Fix #154, not possible to insert empty pmap as leaf node with transform.
36 0.15.1, 2019-04-26
37  * Fix #163 installation broken on Python 2 because of fix of #161, thanks @vphilippon for this! Sorry for the
38    inconvenience.
40 0.15.0, 2019-04-25
41  * Python 3.4 is no longer officially supported since it is EOL since 2019-03-18.
42  * Fix #157, major improvements to type hints. Thanks @je-l for working on this and @nattofriend for reviewing the PR!
43  * Fix #161, installation fails on some Windows platforms because fallback to Python pvector does not work.
44    Thanks @MaxTaggart for fixing and verifying this!
46 0.14.11, 2019-02-21
47  * Fix #152 Don't use __builtin_popcount, this hopefully fixes #147 Error in pvectorc.cp37-win_amd64.pyd file, as well.
48    Thanks @benrg for this!
49  * Fix #151 Fix compatibility for hypothesis 4. Thanks @felixonmars for this!
51 0.14.10, 2019-02-09
52  * Fix #148, only require pytest-runner if running tests. Thanks @ccorbacho for this!
54 0.14.9, 2019-01-06
55  * Fix #144, Compile pvectormodule.c on windows. Thanks @ganwell for this!
57 0.14.8, 2018-12-19
58  * Fix #142, Improve type stubs. Thanks @arxanas for this!
60 0.14.7, 2018-11-20
61  * Fix #102, add PEP 561 type annotation stubs for most pyrsistent types. Thanks @nattofriends for this!
63 0.14.6, 2018-11-17
64  * Fix #135, Type classes for Python 3 type annotations of pyrsistent types. Thanks @nattofriends for this!
65  * Fix #128, Allow PClass and PRecord to ignore input parameters to constructor that are not part of the spec
66    instead of blowing up with a type error. Thanks @agberk for this!
68 0.14.5, 2018-10-14
69  * Fix #137, deprecation warnings in Python 3.7. Thanks @thombashi for this!
70  * Fix #129, building via setuptools and setup.py. Thanks @galuszkak for this!
72 0.14.4, 2018-07-08
73  * Fix #133, minor Python 3.7 compatibility issue. Pyrsistent is now officially Python 3.7 compliant!
75 v0.14.3, 2018-06-11
76  * Fix #123 regression where type names break sequence fields. Thanks @doozr for this!
77  * Fix #124 using the class name to make AttributeError on __getattr__ more informative for PRecords.
78    Thanks @neilvyas for this!
79  * Fix #125 how fields handle type arguments. Thanks @neilvyas for this!
81 v0.14.2, 2017-12-06
82  * Fix #121, regression in PClass.set() introduced in 0.14.1.
84 v0.14.1, 2017-11-27
85  * Equality check performance improvements for pvectors and pmaps. Thanks @dtomas for this!
86  * Avoid calling factories multiple times for fields that do not change, see PR #120 for for
87    details. Thanks @teepark for this!
89 v0.14.0, 2017-10-08
90  * Fix #117, pmap now accepts iterators as input to constructor. Thanks @Julian for this!
91  * Drop support for Python 2.6. Nothing has been done in this release that will explicitly
92    break pyrsistent for 2.6 but it will not be considered moving forward.  Dropping 2.6
93    support is the reason for stepping the second decimal instead of the third.
95 v0.13.0, 2017-09-01
96  * Fix #113, Skip field factories when loading pickled objects. There is a
97    minor backwards incompatibilty in the behaviour because of this. Thanks
98    @teepark for fi this!
99  * Fix #116, negative indexing for pdeques. Thanks @Julian for this!
101 v0.12.3, 2017-06-04
102  * Fix #83, make it possible to use Python 3 enums as field type without having to wrap it in
103    a list or tuple. Thanks @douglas-treadwell for this!
105 v0.12.2, 2017-05-30
106  * Fix #108, now possible to use the values in predicates to transform. Thanks @exarkus for this!
107  * Fix #107, support multiple level of __invariant__ inheritance. Thanks @exarkus for this!
109 v0.12.1, 2017-02-26
110  * Fix #97, initialize CheckedPVector from iterator-
111  * Fix #97, cache hash value on PMap. Thanks @sarum90 for this!
113 v0.12.0, 2017-01-06
114  * Fix #87, add function get_in() for access to elements in deeply nested structures.
115  * Fix #91, add method update() to pset and pbag.
116  * Fix #92, incorrect discard of elements in transform on pvector
117  * This is a release candidate for 1.0 as I now consider pyrsistent fairly stable.
119 v0.11.13, 2016-04-03
120  * Fix #84, pvector segfault in CPython 3 when repr of contained object raises Exception.
121  * Update README to cover for issue described in #83.
123 v0.11.12, 2016-02-06
124  * Minor modifications of tests to allow testing as requested in #79 and #80.
125  * Also run CI tests under python 3.5
127 v0.11.11, 2016-01-31
128  * #78, include tests in pypi dist.
130 v0.11.10, 2015-12-27, NOTE! This release contains a backwards incompatible change
131                       despite only stepping the patch version number. See below.
132  * Implement #74, attribute access on PClass evolver
133  * Implement #75, lazily evaluated invariant messages by providing a
134    callable with no arguments.
135  * Initial values on fields can now be evaluated on object creation
136    by providing a callable with no arguments.
138    NOTE! If you previously had callables as initial values this change means that those
139          will be called upon object creation which may not be what you want. As
140          a temporary workaround a callable returning a callable can be used. This
141          feature and the concept of initial values will likely change slightly in the future.
142          See #77 and and #76 for more information.
144 v0.11.9, 2015-11-01
145  * Added PVector.remove(), thanks @radix for initiating this!
147 v0.11.8, 2015-10-18
148  * Fix #66, UnicodeDecodeError when doing pip install in environments with ascii encoding as default.
149    Thanks @foolswood!
150  * Implement support for multiple types in pmap_field(), pvector_field() and pset_field(). Thanks @itamarst!
152 v0.11.7, 2015-10-03
153  * Fix #52, occasional SEGFAULTs due to misplaced call to PyObject_GC_Track. Thanks @jkbjh for this!
154  * Fix #42, complete support for delete. Now also on the C-implementation of the PVectorEvolver.
155    Thanks @itamarst for contributing a whole bunch of Hypothesis test cases covering the evolver operations!
157 v0.11.6, 2015-09-30
158  * Add +, -, & and | operations to PBag. Thanks @Futrell for this!
160 v0.11.5, 2015-09-29
161  * Fix bug introduced in 0.11.4 that prevented multi level inheritance from PClass.
162  * Make PClassMeta public for friendlier subclassing
164 v0.11.4, 2015-09-28
165  * Fix #59, make it possible to create weakrefs to all collection types.
166    Thanks @itamarst for reporting it.
167  * Fix #58, add __str__ to InvariantException. Thanks @tomprince for reporting it.
169 v0.11.3, 2015-09-15
170   * Fix #57, support pickling of PClasses and PRecords using pmap_field, pvector_field, and pset_field.
171     Thanks @radix for reporting this and submitting a fix for it!
173 v0.11.2, 2015-09-09
174   * Fix bug causing potential element loss when reallocating PMap. Thanks to @jml for finding
175     this and submitting a PR with a fix!
176   * Removed python 3.2 test build from Travis. There is nothing breaking 3.2 compatibility in this
177     release but there will be no effort moving forward to keep the 3.2 compatibility.
179 v0.11.1, 2015-08-24
180   * Fix #51, PClass.set() broken when used with string+value argument.
181   * #50, make it possible to specify more than one assertion in an invariant
182   * #48, make it possible to make recursive type references by using a string
183     as type specification.
185 v0.11.0, 2015-07-11
186   * #42, delete() function added to PVector to allow deletion of elements by index
187     and range. Will perform a full copy of the vector, no structural sharing.
188     Thanks @radix for helping out with this one!
189   * Fix #39, explicitly disallow ordering for PMap and PBag, Python 3 style
190   * Fix #37, PMap.values()/keys()/items() now returns PVectors instead of lists
192 v0.10.3, 2015-06-13
193   * Fix #40, make it possible to disable the C extension by setting the
194     PYRSISTENT_NO_C_EXTENSION environment variable.
196 v0.10.2, 2015-06-07
197   * Fix #38, construction from serialized object for pvector/pset/pmap fields.
199 v0.10.1, 2015-04-27
200   * Fix broken README.rst
202 v10.0.0, 2015-04-27
203   * New type PClass, a persistent version of a Python object. Related to issues #30 and #32.
204     Thanks @exarkun and @radix for input on this one!
205   * Rename PRecordTypeError -> PTypeError, it is now also raised by PClass
206   * New convenience functions, pvector_field, pmap_field and pset_field to create PRecord/PClass
207     fields for checked collections. Issues #26 and #36. Thanks to @itamarst for this!
208   * Removed deprecated function set_in() on PMap and PVector.
209   * Removed deprecated factory function pclass.
210   * Major internal restructuring breaking pyrsistent.py into multiple files. This should
211     not affect those only using the public interface but if you experience problems please
212     let me know.
214 v0.9.4, 2015-04-20
215   * Fix #34, PVector now compares against built in list type
217 v0.9.3, 2015-04-06
218   * Rename pclass back to immutable and deprecate the usage of the pclass function. PClass will be used by
219     a new, different type in upcoming releases.
220   * Documentation strings for the exceptions introduced in 0.9.2.
222 v0.9.2, 2015-04-03
223   * More informative type errors from checked types, issue #30
224   * Support multiple optional types, issue #28
226 v0.9.1, 2015-02-25
227   * Multi level serialization for checked types
229 v0.9.0, 2015-02-25, Lots of new stuff in this release!
230   * Checked types, checked versions of PVector, PMap, PSet that support type and invariant specification.
231     Currently lacking proper documentation but I'm working on it.
232   * set_in() on PVector and PMap are now deprecated and will be removed in the next release.
233     Use transform() instead. set_in() has been updated to use transform() for this release
234     this means that some corner error cases behave slightly different than before.
235   * Refactoring of the PVector to unify the type. Should not have any user impact as long as
236     only the public interface of pyrsistent has been used. PVector is now an abstract base class
237     with which the different implementations are registered.
238   * Evolvers have been updated to return themselves for evolving operations to allow function chaining.
239   * Richer exception messages for KeyErrors and IndexErrors specifying the key/index that caused the failure.
240     Thanks @radix for this.
241   * Missing attribute on PMaps when accessing with dot-notation now raises an AttributeError instead of a
242     KeyError. Issue #21.
243   * New function decorator @mutant that freezes all input arguments to a function and the return value.
244   * Add __version__ to pyrsistent.py. Issue #23.
245   * Fix pickling for pset. Issue #24.
247 v0.8.0, 2015-01-21
248   * New type PRecord. Subtype of PMap that allows explicit, declarative field specification. Thanks @boxed
249     for inspiration!
250   * Efficient transformations of arbitrary complexity on PMap and PVector. Thanks @boxed for inspiration!
251   * Breaking change to the evolver interface. What used to be .pvector(), .pmap() and .pset()
252     on the different evolvers has now been unified so that all evolvers have one method .persistent()
253     to produce the persistent counterpart. Sorry for any inconvenience.
254   * Removed the tests directory from the package.
255   * PMap and PSet now contains a copy-function to closer mimic the interface of the dict and set. These
256     functions will simply return a reference to self.
257   * Removed deprecated alias 'immutable' from pclass.
259 v0.7.1, 2015-01-17
260   * Fixes #14 where a file executed (unexpectedly) during installation was not python 3 compatible.
262 v0.7.0, 2015-01-04, No 1.0, instead a bunch of new stuff and one API breaking change to PMap.remove().
263   * Evolvers for pvector, pmap and pset to allow simple and efficient updates of multiple elements
264     in the collection. See the documentation for a closer description.
265   * New method mset on pvector to update multiple values in one operation
266   * Remove deprecated methods merge and merge_with on PMap
267   * Change behavior of PMap.remove, it will now raise a KeyError if the element is not present.
268     New method PMap.discard will instead return the original pmap if the element is not present.
269     This aligns the PMap with how things are done in the PSet and is closer to the behavior of the
270     built in counterparts.
272 v0.6.3, 2014-11-27
273   * Python 2.6 support, thanks @wrmsr!
274   * PMap.merge/merge_with renamed to update/update_with. merge/merge_with remains but will be
275     removed for 1.0.
276   * This is a release candidate for 1.0! Please be aware that PMap.merge/merge_with and immutable()
277     will be removed for 1.0.
279 v0.6.2, 2014-11-03
280   * Fix typo causing the pure python vector to be used even if the C implementation was
281     available. Thanks @zerc for finding it!
283 v0.6.1, 2014-10-31
284   * Renamed 'immutable' to 'pclass' for consistency but left immutable for compatibility.
286 v0.6.0, 2014-10-25
287   * New data structure, persistent linked list
288   * New data structure, persistent double ended queue
290 v0.5.0, 2014-09-24
291   * New data structure, persistent bag / multiset
292   * New functions freeze and thaw to recursively convert between python
293     built in data types and corresponding pyrsistent data types.
294   * All data structures can now be pickled
295   * New function merge_in on persistent map which allows a user
296     supplied function to implement the merge strategy.
298 v0.4.0, 2014-09-20
299   * Full Python 3 support.
300   * Immutable object implemented.
301   * Bug fixes in PVector.__repr__() and PMap.__hash__() and index check of PVector.
302   * Repr changed to be fully cut and paste compatible
303   * Changed assoc() -> set(), assoc_in() -> set_in(), massoc() -> mset().
304     Sorry for the API breaking change but I think those names are more pythonic.
305   * Improved documentation.
307 v0.3.1, 2014-06-29
308   * assoc() on PSet renamed back to add()
310 v0.3.0, 2014-06-28
311   * Full Sequence protocol support for PVector
312   * Full Mapping protocol support for PMap
313   * Full Set protocol support for PSet
314   * assoc_in() support for both PMap and PVector
315   * merge() support for PMap
316   * Performance improvements to the PVector C extension speed up allocation
318 v0.2.1, 2014-06-21
319   * Supply the tests with the distribution
321 v0.2.0, 2014-06-21
322   * New C extension with an optimized version of the persistent vector
323   * Updated API slightly
325 v0.1.0, 2013-11-10
326   * Initial release.
329 TODO (in no particular order)
330 -----------------------------
331 - Versioned data structure where the different versions can be accessed by index?
332 - Ordered sets and maps
333 - A good performance measurement suite