1[0, 16, 12]: 2020-09-04
2  - update links in doc
3
4[0, 16, 11]: 2020-09-03
5  - workaround issue with setuptools 0.50 and importing pip ( fix by jaraco
6    https://github.com/pypa/setuptools/issues/2355#issuecomment-685159580 )
7
8[0, 16, 10]: 2020-02-12
9  - (auto) updated image references in README to sourceforge
10
11[0, 16, 9]: 2020-02-11
12  - update CHANGES
13
14[0, 16, 8]: 2020-02-11
15  - update requirements so that ruamel.yaml.clib is installed for 3.8,
16    as it has become available (via manylinux builds)
17
18[0, 16, 7]: 2020-01-30
19  - fix typchecking issue on TaggedScalar (reported by Jens Nielsen)
20  - fix error in dumping literal scalar in sequence with comments before element
21    (reported by `EJ Etherington <https://sourceforge.net/u/ejether/>`__)
22
23[0, 16, 6]: 2020-01-20
24  - fix empty string mapping key roundtripping with preservation of quotes as `? ''`
25    (reported via email by Tomer Aharoni).
26  - fix incorrect state setting in class constructor (reported by `Douglas Raillard
27    <https://bitbucket.org/%7Bcf052d92-a278-4339-9aa8-de41923bb556%7D/>`__)
28  - adjust deprecation warning test for Hashable, as that no longer warns (reported
29    by `Jason Montleon <https://bitbucket.org/%7B8f377d12-8d5b-4069-a662-00a2674fee4e%7D/>`__)
30
31[0, 16, 5]: 2019-08-18
32  - allow for ``YAML(typ=['unsafe', 'pytypes'])``
33
34[0, 16, 4]: 2019-08-16
35  - fix output of TAG directives with # (reported by `Thomas Smith
36    <https://bitbucket.org/%7Bd4c57a72-f041-4843-8217-b4d48b6ece2f%7D/>`__)
37
38
39[0, 16, 3]: 2019-08-15
40  - move setting of version based on YAML directive to scanner, allowing to
41    check for file version during TAG directive scanning
42
43[0, 16, 2]: 2019-08-15
44  - preserve YAML and TAG directives on roundtrip, correctly output #
45    in URL for YAML 1.2 (both reported by `Thomas Smith
46    <https://bitbucket.org/%7Bd4c57a72-f041-4843-8217-b4d48b6ece2f%7D/>`__)
47
48[0, 16, 1]: 2019-08-08
49  - Force the use of new version of ruamel.yaml.clib (reported by `Alex Joz
50    <https://bitbucket.org/%7B9af55900-2534-4212-976c-61339b6ffe14%7D/>`__)
51  - Allow '#' in tag URI as these are allowed in YAML 1.2 (reported by
52    `Thomas Smith
53    <https://bitbucket.org/%7Bd4c57a72-f041-4843-8217-b4d48b6ece2f%7D/>`__)
54
55[0, 16, 0]: 2019-07-25
56  - split of C source that generates .so file to ruamel.yaml.clib
57  - duplicate keys are now an error when working with the old API as well
58
59[0, 15, 100]: 2019-07-17
60  - fixing issue with dumping deep-copied data from commented YAML, by
61    providing both the memo parameter to __deepcopy__, and by allowing
62    startmarks to be compared on their content (reported by `Theofilos
63    Petsios
64    <https://bitbucket.org/%7Be550bc5d-403d-4fda-820b-bebbe71796d3%7D/>`__)
65
66[0, 15, 99]: 2019-07-12
67  - add `py.typed` to distribution, based on a PR submitted by
68    `Michael Crusoe
69    <https://bitbucket.org/%7Bc9fbde69-e746-48f5-900d-34992b7860c8%7D/>`__
70  - merge PR 40 (also by Michael Crusoe) to more accurately specify
71    repository in the README (also reported in a misunderstood issue
72    some time ago)
73
74[0, 15, 98]: 2019-07-09
75  - regenerate ext/_ruamel_yaml.c with Cython version 0.29.12, needed
76    for Python 3.8.0b2 (reported by `John Vandenberg
77    <https://bitbucket.org/%7B6d4e8487-3c97-4dab-a060-088ec50c682c%7D/>`__)
78
79[0, 15, 97]: 2019-06-06
80  - regenerate ext/_ruamel_yaml.c with Cython version 0.29.10, needed for
81    Python 3.8.0b1
82  - regenerate ext/_ruamel_yaml.c with Cython version 0.29.9, needed for
83    Python 3.8.0a4 (reported by `Anthony Sottile
84    <https://bitbucket.org/%7B569cc8ea-0d9e-41cb-94a4-19ea517324df%7D/>`__)
85
86[0, 15, 96]: 2019-05-16
87  - fix failure to indent comments on round-trip anchored block style
88    scalars in block sequence (reported by `William Kimball
89    <https://bitbucket.org/%7Bba35ed20-4bb0-46f8-bb5d-c29871e86a22%7D/>`__)
90
91[0, 15, 95]: 2019-05-16
92  - fix failure to round-trip anchored scalars in block sequence
93    (reported by `William Kimball
94    <https://bitbucket.org/%7Bba35ed20-4bb0-46f8-bb5d-c29871e86a22%7D/>`__)
95  - wheel files for Python 3.4 no longer provided (`Python 3.4 EOL 2019-03-18
96    <https://www.python.org/dev/peps/pep-0429/>`__)
97
98[0, 15, 94]: 2019-04-23
99  - fix missing line-break after end-of-file comments not ending in
100    line-break (reported by `Philip Thompson
101    <https://bitbucket.org/%7Be42ba205-0876-4151-bcbe-ccaea5bd13ce%7D/>`__)
102
103[0, 15, 93]: 2019-04-21
104  - fix failure to parse empty implicit flow mapping key
105  - in YAML 1.1 plains scalars `y`, 'n', `Y`, and 'N' are now
106    correctly recognised as booleans and such strings dumped quoted
107    (reported by `Marcel Bollmann
108    <https://bitbucket.org/%7Bd8850921-9145-4ad0-ac30-64c3bd9b036d%7D/>`__)
109
110[0, 15, 92]: 2019-04-16
111  - fix failure to parse empty implicit block mapping key (reported by
112    `Nolan W <https://bitbucket.org/i2labs/>`__)
113
114[0, 15, 91]: 2019-04-05
115  - allowing duplicate keys would not work for merge keys (reported by mamacdon on
116    `StackOverflow <https://stackoverflow.com/questions/55540686/>`__
117
118[0, 15, 90]: 2019-04-04
119  - fix issue with updating `CommentedMap` from list of tuples (reported by
120    `Peter Henry <https://bitbucket.org/mosbasik/>`__)
121
122[0, 15, 89]: 2019-02-27
123  - fix for items with flow-mapping in block sequence output on single line
124    (reported by `Zahari Dim <https://bitbucket.org/zahari_dim/>`__)
125  - fix for safe dumping erroring in creation of representereror when dumping namedtuple
126    (reported and solution by `Jaakko Kantojärvi <https://bitbucket.org/raphendyr/>`__)
127
128[0, 15, 88]: 2019-02-12
129  - fix inclusing of python code from the subpackage data (containing extra tests,
130    reported by `Florian Apolloner <https://bitbucket.org/apollo13/>`__)
131
132[0, 15, 87]: 2019-01-22
133  - fix problem with empty lists and the code to reinsert merge keys (reported via email
134    by Zaloo)
135
136[0, 15, 86]: 2019-01-16
137  - reinsert merge key in its old position (reported by grumbler on
138    <Stackoverflow <https://stackoverflow.com/a/54206512/1307905>`__)
139  - fix for issue with non-ASCII anchor names (reported and fix
140    provided by Dandaleon Flux via email)
141  - fix for issue when parsing flow mapping value starting with colon (in pure Python only)
142    (reported by `FichteFoll <https://bitbucket.org/FichteFoll/>`__)
143
144[0, 15, 85]: 2019-01-08
145  - the types used by `SafeConstructor` for mappings and sequences can
146    now by set by assigning to `XXXConstructor.yaml_base_dict_type`
147    (and `..._list_type`), preventing the need to copy two methods
148    with 50+ lines that had `var = {}` hardcoded.  (Implemented to
149    help solve an feature request by `Anthony Sottile
150    <https://bitbucket.org/asottile/>`__ in an easier way)
151
152[0, 15, 84]: 2019-01-07
153  - fix for `CommentedMap.copy()` not returning `CommentedMap`, let alone copying comments etc.
154    (reported by `Anthony Sottile <https://bitbucket.org/asottile/>`__)
155
156[0, 15, 83]: 2019-01-02
157  - fix for bug in roundtripping aliases used as key (reported via email by Zaloo)
158
159[0, 15, 82]: 2018-12-28
160  - anchors and aliases on scalar int, float, string and bool are now preserved. Anchors
161    do not need a referring alias for these (reported by
162    `Alex Harvey <https://bitbucket.org/alexharv074/>`__)
163  - anchors no longer lost on tagged objects when roundtripping (reported by `Zaloo
164    <https://bitbucket.org/zaloo/>`__)
165
166[0, 15, 81]: 2018-12-06
167 - fix issue saving methods of metaclass derived classes (reported and fix provided
168   by `Douglas Raillard <https://bitbucket.org/DouglasRaillard/>`__)
169
170[0, 15, 80]: 2018-11-26
171 - fix issue emitting BEL character when round-tripping invalid folded input
172   (reported by Isaac on `StackOverflow <https://stackoverflow.com/a/53471217/1307905>`__)
173
174[0, 15, 79]: 2018-11-21
175  - fix issue with anchors nested deeper than alias (reported by gaFF on
176    `StackOverflow <https://stackoverflow.com/a/53397781/1307905>`__)
177
178[0, 15, 78]: 2018-11-15
179  - fix setup issue for 3.8 (reported by `Sidney Kuyateh
180    <https://bitbucket.org/autinerd/>`__)
181
182[0, 15, 77]: 2018-11-09
183  - setting `yaml.sort_base_mapping_type_on_output = False`, will prevent
184    explicit sorting by keys in the base representer of mappings. Roundtrip
185    already did not do this. Usage only makes real sense for Python 3.6+
186    (feature request by `Sebastian Gerber <https://bitbucket.org/spacemanspiff2007/>`__).
187  - implement Python version check in YAML metadata in ``_test/test_z_data.py``
188
189[0, 15, 76]: 2018-11-01
190  - fix issue with empty mapping and sequence loaded as flow-style
191    (mapping reported by `Min RK <https://bitbucket.org/minrk/>`__, sequence
192    by `Maged Ahmed <https://bitbucket.org/maged2/>`__)
193
194[0, 15, 75]: 2018-10-27
195  - fix issue with single '?' scalar (reported by `Terrance
196    <https://bitbucket.org/OllieTerrance/>`__)
197  - fix issue with duplicate merge keys (prompted by `answering
198    <https://stackoverflow.com/a/52852106/1307905>`__ a
199    `StackOverflow question <https://stackoverflow.com/q/52851168/1307905>`__
200    by `math <https://stackoverflow.com/users/1355634/math>`__)
201
202[0, 15, 74]: 2018-10-17
203  - fix dropping of comment on rt before sequence item that is sequence item
204    (reported by `Thorsten Kampe <https://bitbucket.org/thorstenkampe/>`__)
205
206[0, 15, 73]: 2018-10-16
207  - fix irregular output on pre-comment in sequence within sequence (reported
208    by `Thorsten Kampe <https://bitbucket.org/thorstenkampe/>`__)
209  - allow non-compact (i.e. next line) dumping sequence/mapping within sequence.
210
211[0, 15, 72]: 2018-10-06
212  - fix regression on explicit 1.1 loading with the C based scanner/parser
213    (reported by `Tomas Vavra <https://bitbucket.org/xtomik/>`__)
214
215[0, 15, 71]: 2018-09-26
216  - fix regression where handcrafted CommentedMaps could not be initiated (reported by
217    `Dan Helfman <https://bitbucket.org/dhelfman/>`__)
218  - fix regression with non-root literal scalars that needed indent indicator
219    (reported by `Clark Breyman <https://bitbucket.org/clarkbreyman/>`__)
220  - tag:yaml.org,2002:python/object/apply now also uses __qualname__ on PY3
221    (reported by `Douglas RAILLARD <https://bitbucket.org/DouglasRaillard/>`__)
222
223[0, 15, 70]: 2018-09-21
224  - reverted CommentedMap and CommentedSeq to subclass ordereddict resp. list,
225    reimplemented merge maps so that both ``dict(**commented_map_instance)`` and JSON
226    dumping works. This also allows checking with ``isinstance()`` on ``dict`` resp. ``list``.
227    (Proposed by `Stuart Berg <https://bitbucket.org/stuarteberg/>`__, with feedback
228    from `blhsing <https://stackoverflow.com/users/6890912/blhsing>`__ on
229    `StackOverflow <https://stackoverflow.com/q/52314186/1307905>`__)
230
231[0, 15, 69]: 2018-09-20
232  - fix issue with dump_all gobbling end-of-document comments on parsing
233    (reported by `Pierre B. <https://bitbucket.org/octplane/>`__)
234
235[0, 15, 68]: 2018-09-20
236  - fix issue with parsabel, but incorrect output with nested flow-style sequences
237    (reported by `Dougal Seeley <https://bitbucket.org/dseeley/>`__)
238  - fix issue with loading Python objects that have __setstate__ and recursion in parameters
239    (reported by `Douglas RAILLARD <https://bitbucket.org/DouglasRaillard/>`__)
240
241[0, 15, 67]: 2018-09-19
242  - fix issue with extra space inserted with non-root literal strings
243    (Issue reported and PR with fix provided by
244    `Naomi Seyfer <https://bitbucket.org/sixolet/>`__.)
245
246[0, 15, 66]: 2018-09-07
247  - fix issue with fold indicating characters inserted in safe_load-ed folded strings
248    (reported by `Maximilian Hils <https://bitbucket.org/mhils/>`__).
249
250[0, 15, 65]: 2018-09-07
251  - fix issue #232 revert to throw ParserError for unexcpected ``]``
252    and ``}`` instead of IndexError. (Issue reported and PR with fix
253    provided by `Naomi Seyfer <https://bitbucket.org/sixolet/>`__.)
254  - added ``key`` and ``reverse`` parameter (suggested by Jannik Klemm via email)
255  - indent root level literal scalars that have directive or document end markers
256    at the beginning of a line
257
258[0, 15, 64]: 2018-08-30
259  - support round-trip of tagged sequences: ``!Arg [a, {b: 1}]``
260  - single entry mappings in flow sequences now written by default without quotes
261    set ``yaml.brace_single_entry_mapping_in_flow_sequence=True`` to force
262    getting ``[a, {b: 1}, {c: {d: 2}}]`` instead of the default ``[a, b: 1, c: {d: 2}]``
263  - fix issue when roundtripping floats starting with a dot such as ``.5``
264    (reported by `Harrison Gregg <https://bitbucket.org/HarrisonGregg/>`__)
265
266[0, 15, 63]: 2018-08-29
267  - small fix only necessary for Windows users that don't use wheels.
268
269[0, 15, 62]: 2018-08-29
270  - C based reader/scanner & emitter now allow setting of 1.2 as YAML version.
271    ** The loading/dumping is still YAML 1.1 code**, so use the common subset of
272    YAML 1.2 and 1.1 (reported by `Ge Yang <https://bitbucket.org/yangge/>`__)
273
274[0, 15, 61]: 2018-08-23
275  - support for round-tripping folded style scalars (initially requested
276    by `Johnathan Viduchinsky <https://bitbucket.org/johnathanvidu/>`__)
277  - update of C code
278  - speed up of scanning (~30% depending on the input)
279
280[0, 15, 60]: 2018-08-18
281  - cleanup for mypy
282  - spurious print in library (reported by
283    `Lele Gaifax <https://bitbucket.org/lele/>`__), now automatically checked
284
285[0, 15, 59]: 2018-08-17
286  - issue with C based loader and leading zeros (reported by
287    `Tom Hamilton Stubber <https://bitbucket.org/TomHamiltonStubber/>`__)
288
289[0, 15, 58]: 2018-08-17
290  - simple mappings can now be used as keys when round-tripping::
291
292      {a: 1, b: 2}: hello world
293
294    although using the obvious operations (del, popitem) on the key will
295    fail, you can mutilate it by going through its attributes. If you load the
296    above YAML in `d`, then changing the value is cumbersome:
297
298        d = {CommentedKeyMap([('a', 1), ('b', 2)]): "goodbye"}
299
300    and changing the key even more so:
301
302        d[CommentedKeyMap([('b', 1), ('a', 2)])] = d.pop(
303                     CommentedKeyMap([('a', 1), ('b', 2)]))
304
305    (you can use a `dict` instead of a list of tuples (or ordereddict), but that might result
306    in a different order, of the keys of the key, in the output)
307  - check integers to dump with 1.2 patterns instead of 1.1 (reported by
308    `Lele Gaifax <https://bitbucket.org/lele/>`__)
309
310
311[0, 15, 57]: 2018-08-15
312  - Fix that CommentedSeq could no longer be used in adding or do a copy
313    (reported by `Christopher Wright <https://bitbucket.org/CJ-Wright4242/>`__)
314
315[0, 15, 56]: 2018-08-15
316  - fix issue with ``python -O`` optimizing away code (reported, and detailed cause
317    pinpointed, by `Alex Grönholm <https://bitbucket.org/agronholm/>`__
318
319[0, 15, 55]: 2018-08-14
320
321  - unmade ``CommentedSeq`` a subclass of ``list``. It is now
322    indirectly a subclass of the standard
323    ``collections.abc.MutableSequence`` (without .abc if you are
324    still on Python2.7). If you do ``isinstance(yaml.load('[1, 2]'),
325    list)``) anywhere in your code replace ``list`` with
326    ``MutableSequence``.  Directly, ``CommentedSeq`` is a subclass of
327    the abstract baseclass ``ruamel.yaml.compat.MutableScliceableSequence``,
328    with the result that *(extended) slicing is supported on
329    ``CommentedSeq``*.
330    (reported by `Stuart Berg <https://bitbucket.org/stuarteberg/>`__)
331  - duplicate keys (or their values) with non-ascii now correctly
332    report in Python2, instead of raising a Unicode error.
333    (Reported by `Jonathan Pyle <https://bitbucket.org/jonathan_pyle/>`__)
334
335[0, 15, 54]: 2018-08-13
336
337  - fix issue where a comment could pop-up twice in the output (reported by
338    `Mike Kazantsev <https://bitbucket.org/mk_fg/>`__ and by
339    `Nate Peterson <https://bitbucket.org/ndpete21/>`__)
340  - fix issue where JSON object (mapping) without spaces was not parsed
341    properly (reported by `Marc Schmidt <https://bitbucket.org/marcj/>`__)
342  - fix issue where comments after empty flow-style mappings were not emitted
343    (reported by `Qinfench Chen <https://bitbucket.org/flyin5ish/>`__)
344
345[0, 15, 53]: 2018-08-12
346  - fix issue with flow style mapping with comments gobbled newline (reported
347    by `Christopher Lambert <https://bitbucket.org/XN137/>`__)
348  - fix issue where single '+' under YAML 1.2 was interpreted as
349    integer, erroring out (reported by `Jethro Yu
350    <https://bitbucket.org/jcppkkk/>`__)
351
352[0, 15, 52]: 2018-08-09
353  - added `.copy()` mapping representation for round-tripping
354    (``CommentedMap``) to fix incomplete copies of merged mappings
355    (reported by `Will Richards
356    <https://bitbucket.org/will_richards/>`__)
357  - Also unmade that class a subclass of ordereddict to solve incorrect behaviour
358    for ``{**merged-mapping}`` and ``dict(**merged-mapping)`` (reported by
359    `Filip Matzner <https://bitbucket.org/FloopCZ/>`__)
360
361[0, 15, 51]: 2018-08-08
362  - Fix method name dumps (were not dotted) and loads (reported by `Douglas Raillard
363    <https://bitbucket.org/DouglasRaillard/>`__)
364  - Fix spurious trailing white-space caused when the comment start
365    column was no longer reached and there was no actual EOL comment
366    (e.g. following empty line) and doing substitutions, or when
367    quotes around scalars got dropped.  (reported by `Thomas Guillet
368    <https://bitbucket.org/guillett/>`__)
369
370[0, 15, 50]: 2018-08-05
371  - Allow ``YAML()`` as a context manager for output, thereby making it much easier
372    to generate multi-documents in a stream.
373  - Fix issue with incorrect type information for `load()` and `dump()` (reported
374    by `Jimbo Jim <https://bitbucket.org/jimbo1qaz/>`__)
375
376[0, 15, 49]: 2018-08-05
377  - fix preservation of leading newlines in root level literal style scalar,
378    and preserve comment after literal style indicator (``|  # some comment``)
379    Both needed for round-tripping multi-doc streams in
380    `ryd <https://pypi.org/project/ryd/>`__.
381
382[0, 15, 48]: 2018-08-03
383  - housekeeping: ``oitnb`` for formatting, mypy 0.620 upgrade and conformity
384
385[0, 15, 47]: 2018-07-31
386  - fix broken 3.6 manylinux1 (result of an unclean ``build`` (reported by
387    `Roman Sichnyi <https://bitbucket.org/rsichnyi-gl/>`__)
388
389
390[0, 15, 46]: 2018-07-29
391  - fixed DeprecationWarning for importing from ``collections`` on 3.7
392    (issue 210, reported by `Reinoud Elhorst
393    <https://bitbucket.org/reinhrst/>`__). It was `difficult to find
394    why tox/pytest did not report
395    <https://stackoverflow.com/q/51573204/1307905>`__ and as time
396    consuming to actually `fix
397    <https://stackoverflow.com/a/51573205/1307905>`__ the tests.
398
399[0, 15, 45]: 2018-07-26
400  - After adding failing test for ``YAML.load_all(Path())``, remove StopIteration
401    (PR provided by `Zachary Buhman <https://bitbucket.org/buhman/>`__,
402    also reported by `Steven Hiscocks <https://bitbucket.org/sdhiscocks/>`__.
403
404[0, 15, 44]: 2018-07-14
405  - Correct loading plain scalars consisting of numerals only and
406    starting with `0`, when not explicitly specifying YAML version
407    1.1. This also fixes the issue about dumping string `'019'` as
408    plain scalars as reported by `Min RK
409    <https://bitbucket.org/minrk/>`__, that prompted this chance.
410
411[0, 15, 43]: 2018-07-12
412  - merge PR33: Python2.7 on Windows is narrow, but has no
413    ``sysconfig.get_config_var('Py_UNICODE_SIZE')``. (merge provided by
414    `Marcel Bargull <https://bitbucket.org/mbargull/>`__)
415  - ``register_class()`` now returns class (proposed by
416    `Mike Nerone <https://bitbucket.org/Manganeez/>`__}
417
418[0, 15, 42]: 2018-07-01
419  - fix regression showing only on narrow Python 2.7 (py27mu) builds
420    (with help from
421    `Marcel Bargull <https://bitbucket.org/mbargull/>`__ and
422    `Colm O'Connor <>`__).
423  - run pre-commit ``tox`` on Python 2.7 wide and narrow, as well as
424    3.4/3.5/3.6/3.7/pypy
425
426[0, 15, 41]: 2018-06-27
427  - add detection of C-compile failure (investigation prompted by
428    `StackOverlow <https://stackoverflow.com/a/51057399/1307905>`__ by
429    `Emmanuel Blot <https://stackoverflow.com/users/8233409/emmanuel-blot>`__),
430    which was removed while no longer dependent on ``libyaml``, C-extensions
431    compilation still needs a compiler though.
432
433[0, 15, 40]: 2018-06-18
434  - added links to landing places as suggested in issue 190 by
435    `KostisA <https://bitbucket.org/ankostis/>`__
436  - fixes issue #201: decoding unicode escaped tags on Python2, reported
437    by `Dan Abolafia <https://bitbucket.org/danabo/>`__
438
439[0, 15, 39]: 2018-06-16
440  - merge PR27 improving package startup time (and loading when regexp not
441    actually used), provided by
442    `Marcel Bargull <https://bitbucket.org/mbargull/>`__
443
444[0, 15, 38]: 2018-06-13
445  - fix for losing precision when roundtripping floats by
446    `Rolf Wojtech <https://bitbucket.org/asomov/>`__
447  - fix for hardcoded dir separator not working for Windows by
448    `Nuno André <https://bitbucket.org/nu_no/>`__
449  - typo fix by `Andrey Somov <https://bitbucket.org/asomov/>`__
450
451[0, 15, 37]: 2018-03-21
452  - again trying to create installable files for 187
453
454[0, 15, 36]: 2018-02-07
455  - fix issue 187, incompatibility of C extension with 3.7 (reported by
456    Daniel Blanchard)
457
458[0, 15, 35]: 2017-12-03
459  - allow ``None`` as stream when specifying ``transform`` parameters to
460    ``YAML.dump()``.
461    This is useful if the transforming function doesn't return a meaningful value
462    (inspired by `StackOverflow <https://stackoverflow.com/q/47614862/1307905>`__ by
463    `rsaw <https://stackoverflow.com/users/406281/rsaw>`__).
464
465[0, 15, 34]: 2017-09-17
466  - fix for issue 157: CDumper not dumping floats (reported by Jan Smitka)
467
468[0, 15, 33]: 2017-08-31
469  - support for "undefined" round-tripping tagged scalar objects (in addition to
470    tagged mapping object). Inspired by a use case presented by Matthew Patton
471    on `StackOverflow <https://stackoverflow.com/a/45967047/1307905>`__.
472  - fix issue 148: replace cryptic error message when using !!timestamp with an
473    incorrectly formatted or non- scalar. Reported by FichteFoll.
474
475[0, 15, 32]: 2017-08-21
476  - allow setting ``yaml.default_flow_style = None`` (default: ``False``) for
477    for ``typ='rt'``.
478  - fix for issue 149: multiplications on ``ScalarFloat`` now return ``float``
479
480[0, 15, 31]: 2017-08-15
481  - fix Comment dumping
482
483[0, 15, 30]: 2017-08-14
484  - fix for issue with "compact JSON" not parsing: ``{"in":{},"out":{}}``
485    (reported on `StackOverflow <https://stackoverflow.com/q/45681626/1307905>`_ by
486    `mjalkio <https://stackoverflow.com/users/5130525/mjalkio>`_
487
488[0, 15, 29]: 2017-08-14
489  - fix issue #51: different indents for mappings and sequences (reported by
490    Alex Harvey)
491  - fix for flow sequence/mapping as element/value of block sequence with
492    sequence-indent minus dash-offset not equal two.
493
494[0, 15, 28]: 2017-08-13
495  - fix issue #61: merge of merge cannot be __repr__-ed (reported by Tal Liron)
496
497[0, 15, 27]: 2017-08-13
498  - fix issue 62, YAML 1.2 allows ``?`` and ``:`` in plain scalars if non-ambigious
499    (reported by nowox)
500  - fix lists within lists which would make comments disappear
501
502[0, 15, 26]: 2017-08-10
503  - fix for disappearing comment after empty flow sequence (reported by
504    oit-tzhimmash)
505
506[0, 15, 25]: 2017-08-09
507  - fix for problem with dumping (unloaded) floats (reported by eyenseo)
508
509[0, 15, 24]: 2017-08-09
510  - added ScalarFloat which supports roundtripping of 23.1, 23.100,
511    42.00E+56, 0.0, -0.0 etc. while keeping the format. Underscores in mantissas
512    are not preserved/supported (yet, is anybody using that?).
513  - (finally) fixed longstanding issue 23 (reported by `Antony Sottile
514    <https://bitbucket.org/asottile/>`_), now handling comment between block
515    mapping key and value correctly
516  - warn on YAML 1.1 float input that is incorrect (triggered by invalid YAML
517    provided by Cecil Curry)
518  - allow setting of boolean representation (`false`, `true`) by using:
519    ``yaml.boolean_representation = [u'False', u'True']``
520
521[0, 15, 23]: 2017-08-01
522  - fix for round_tripping integers on 2.7.X > sys.maxint (reported by ccatterina)
523
524[0, 15, 22]: 2017-07-28
525  - fix for round_tripping singe excl. mark tags doubling (reported and fix by Jan Brezina)
526
527[0, 15, 21]: 2017-07-25
528  - fix for writing unicode in new API, https://stackoverflow.com/a/45281922/1307905
529
530[0, 15, 20]: 2017-07-23
531  - wheels for windows including C extensions
532
533[0, 15, 19]: 2017-07-13
534  - added object constructor for rt, decorator ``yaml_object`` to replace YAMLObject.
535  - fix for problem using load_all with Path() instance
536  - fix for load_all in combination with zero indent block style literal
537    (``pure=True`` only!)
538
539[0, 15, 18]: 2017-07-04
540  - missing ``pure`` attribute on ``YAML`` useful for implementing `!include` tag
541    constructor for `including YAML files in a YAML file
542    <https://stackoverflow.com/a/44913652/1307905>`_
543  - some documentation improvements
544  - trigger of doc build on new revision
545
546[0, 15, 17]: 2017-07-03
547  - support for Unicode supplementary Plane **output** with allow_unicode
548    (input was already supported, triggered by
549    `this <https://stackoverflow.com/a/44875714/1307905>`_ Stack Overflow Q&A)
550
551[0, 15, 16]: 2017-07-01
552  - minor typing issues (reported and fix provided by
553    `Manvendra Singh <https://bitbucket.org/manu-chroma/>`_)
554  - small doc improvements
555
556[0, 15, 15]: 2017-06-27
557  - fix for issue 135, typ='safe' not dumping in Python 2.7
558    (reported by Andrzej Ostrowski <https://bitbucket.org/aostr123/>`_)
559
560[0, 15, 14]: 2017-06-25
561  - setup.py: change ModuleNotFoundError to ImportError (reported and fix by Asley Drake)
562
563[0, 15, 13]: 2017-06-24
564  - suppress duplicate key warning on mappings with merge keys (reported by
565    Cameron Sweeney)
566
567[0, 15, 12]: 2017-06-24
568  - remove fatal dependency of setup.py on wheel package (reported by
569    Cameron Sweeney)
570
571[0, 15, 11]: 2017-06-24
572  - fix for issue 130, regression in nested merge keys (reported by
573    `David Fee <https://bitbucket.org/dfee/>`_)
574
575[0, 15, 10]: 2017-06-23
576  - top level PreservedScalarString not indented if not explicitly asked to
577  - remove Makefile (not very useful anyway)
578  - some mypy additions
579
580[0, 15, 9]: 2017-06-16
581  - fix for issue 127: tagged scalars were always quoted and seperated
582    by a newline when in a block sequence (reported and largely fixed by
583    `Tommy Wang <https://bitbucket.org/twang817/>`_)
584
585[0, 15, 8]: 2017-06-15
586  - allow plug-in install via ``install ruamel.yaml[jinja2]``
587
588[0, 15, 7]: 2017-06-14
589  - add plug-in mechanism for load/dump pre resp. post-processing
590
591[0, 15, 6]: 2017-06-10
592  - a set() with duplicate elements now throws error in rt loading
593  - support for toplevel column zero literal/folded scalar in explicit documents
594
595[0, 15, 5]: 2017-06-08
596  - repeat `load()` on a single `YAML()` instance would fail.
597
598(0, 15, 4) 2017-06-08: |
599  - `transform` parameter on dump that expects a function taking a
600    string and returning a string. This allows transformation of the output
601    before it is written to stream.
602  - some updates to the docs
603
604(0, 15, 3) 2017-06-07:
605  - No longer try to compile C extensions on Windows. Compilation can be forced by setting
606    the environment variable `RUAMEL_FORCE_EXT_BUILD` to some value
607    before starting the `pip install`.
608
609(0, 15, 2) 2017-06-07:
610  - update to conform to mypy 0.511:mypy --strict
611
612(0, 15, 1) 2017-06-07:
613  - Any `duplicate keys  <http://yaml.readthedocs.io/en/latest/api.html#duplicate-keys>`_
614    in mappings generate an error (in the old API this change generates a warning until 0.16)
615  - dependecy on ruamel.ordereddict for 2.7 now via extras_require
616
617(0, 15, 0) 2017-06-04:
618  - it is now allowed to pass in a ``pathlib.Path`` as "stream" parameter to all
619    load/dump functions
620  - passing in a non-supported object (e.g. a string) as "stream" will result in a
621    much more meaningful YAMLStreamError.
622  - assigning a normal string value to an existing CommentedMap key or CommentedSeq
623    element will result in a value cast to the previous value's type if possible.
624
625(0, 14, 12) 2017-05-14:
626  - fix for issue 119, deepcopy not returning subclasses (reported and PR by
627    Constantine Evans <cevans@evanslabs.org>)
628
629(0, 14, 11) 2017-05-01:
630  - fix for issue 103 allowing implicit documents after document end marker line (``...``)
631    in YAML 1.2
632
633(0, 14, 10) 2017-04-26:
634  - fix problem with emitting using cyaml
635
636(0, 14, 9) 2017-04-22:
637  - remove dependency on ``typing`` while still supporting ``mypy``
638    (http://stackoverflow.com/a/43516781/1307905)
639  - fix unclarity in doc that stated 2.6 is supported (reported by feetdust)
640
641(0, 14, 8) 2017-04-19:
642  - fix Text not available on 3.5.0 and 3.5.1, now proactively setting version guards
643    on all files (reported by `João Paulo Magalhães <https://bitbucket.org/jpmag/>`_)
644
645(0, 14, 7) 2017-04-18:
646  - round trip of integers (decimal, octal, hex, binary) now preserve
647    leading zero(s) padding and underscores. Underscores are presumed
648    to be at regular distances (i.e. ``0o12_345_67`` dumps back as
649    ``0o1_23_45_67`` as the space from the last digit to the
650    underscore before that is the determining factor).
651
652(0, 14, 6) 2017-04-14:
653  - binary, octal and hex integers are now preserved by default. This
654    was a known deficiency. Working on this was prompted by the issue report (112)
655    from devnoname120, as well as the additional experience with `.replace()`
656    on `scalarstring` classes.
657  - fix issues 114 cannot install on Buildozer (reported by mixmastamyk).
658    Setting env. var ``RUAMEL_NO_PIP_INSTALL_CHECK`` will suppress ``pip``-check.
659
660(0, 14, 5) 2017-04-04:
661  - fix issue 109 None not dumping correctly at top level (reported by Andrea Censi)
662  - fix issue 110 .replace on Preserved/DoubleQuoted/SingleQuoted ScalarString
663    would give back "normal" string (reported by sandres23)
664
665(0, 14, 4) 2017-03-31:
666  - fix readme
667
668(0, 14, 3) 2017-03-31:
669  - fix for 0o52 not being a string in YAML 1.1 (reported on
670    `StackOverflow Q&A 43138503><http://stackoverflow.com/a/43138503/1307905>`_ by
671    `Frank D <http://stackoverflow.com/users/7796630/frank-d>`_
672
673(0, 14, 2) 2017-03-23:
674  - fix for old default pip on Ubuntu 14.04 (reported by Sébastien Maccagnoni-Munch)
675
676(0.14.1) 2017-03-22:
677  - fix Text not available on 3.5.0 and 3.5.1 (reported by Charles Bouchard-Légaré)
678
679(0.14.0) 2017-03-21:
680  - updates for mypy --strict
681  - preparation for moving away from inheritance in Loader and Dumper, calls from e.g.
682    the Representer to the Serializer.serialize() are now done via the attribute
683    .serializer.serialize(). Usage of .serialize() outside of Serializer will be
684    deprecated soon
685  - some extra tests on main.py functions
686
687(0.13.14) 2017-02-12:
688  - fix for issue 97, clipped block scalar followed by empty lines and comment
689    would result in two CommentTokens of which the first was dropped.
690    (reported by Colm O'Connor)
691
692(0.13.13) 2017-01-28:
693  - fix for issue 96, prevent insertion of extra empty line if indented mapping entries
694    are separated by an empty line (reported by Derrick Sawyer)
695
696(0.13.11) 2017-01-23:
697  - allow ':' in flow style scalars if not followed by space. Also don't
698    quote such scalar as this is no longer necessary.
699  - add python 3.6 manylinux wheel to PyPI
700
701(0.13.10) 2017-01-22:
702  - fix for issue 93, insert spurious blank line before single line comment
703    between indented sequence elements (reported by Alex)
704
705(0.13.9) 2017-01-18:
706  - fix for issue 92, wrong import name reported by the-corinthian
707
708(0.13.8) 2017-01-18:
709  - fix for issue 91, when a compiler is unavailable reported by Maximilian Hils
710  - fix for deepcopy issue with TimeStamps not preserving 'T', reported on
711    `StackOverflow Q&A <http://stackoverflow.com/a/41577841/1307905>`_ by
712    `Quuxplusone <http://stackoverflow.com/users/1424877/quuxplusone>`_
713
714(0.13.7) 2016-12-27:
715  - fix for issue 85, constructor.py importing unicode_literals caused mypy to fail
716    on 2.7 (reported by Peter Amstutz)
717
718(0.13.6) 2016-12-27:
719  - fix for issue 83, collections.OrderedDict not representable by SafeRepresenter
720    (reported by Frazer McLean)
721
722(0.13.5) 2016-12-25:
723  - fix for issue 84, deepcopy not properly working (reported by Peter Amstutz)
724
725(0.13.4) 2016-12-05:
726  - another fix for issue 82, change to non-global resolver data broke implicit type
727    specification
728
729(0.13.3) 2016-12-05:
730  - fix for issue 82, deepcopy not working (reported by code monk)
731
732(0.13.2) 2016-11-28:
733  - fix for comments after empty (null) values  (reported by dsw2127 and cokelaer)
734
735(0.13.1) 2016-11-22:
736  - optimisations on memory usage when loading YAML from large files (py3 -50%, py2 -85%)
737
738(0.13.0) 2016-11-20:
739  - if ``load()`` or ``load_all()`` is called with only a single argument
740    (stream or string)
741    a UnsafeLoaderWarning will be issued once. If appropriate you can surpress this
742    warning by filtering it. Explicitly supplying the ``Loader=ruamel.yaml.Loader``
743    argument, will also prevent it from being issued. You should however consider
744    using ``safe_load()``, ``safe_load_all()`` if your YAML input does not use tags.
745  - allow adding comments before and after keys (based on
746    `StackOveflow Q&A <http://stackoverflow.com/a/40705671/1307905>`_  by
747    `msinn <http://stackoverflow.com/users/7185467/msinn>`_)
748
749(0.12.18) 2016-11-16:
750  - another fix for numpy (re-reported independently by PaulG & Nathanial Burdic)
751
752(0.12.17) 2016-11-15:
753  - only the RoundTripLoader included the Resolver that supports YAML 1.2
754    now all loaders do (reported by mixmastamyk)
755
756(0.12.16) 2016-11-13:
757  - allow dot char (and many others) in anchor name
758    Fix issue 72 (reported by Shalon Wood)
759  - |
760    Slightly smarter behaviour dumping strings when no style is
761    specified. Single string scalars that start with single quotes
762    or have newlines now are dumped double quoted "'abc\nklm'" instead of
763
764      '''abc
765
766        klm'''
767
768(0.12.14) 2016-09-21:
769 - preserve round-trip sequences that are mapping keys
770   (prompted by stackoverflow question 39595807 from Nowox)
771
772(0.12.13) 2016-09-15:
773 - Fix for issue #60 representation of CommentedMap with merge
774   keys incorrect (reported by Tal Liron)
775
776(0.12.11) 2016-09-06:
777 - Fix issue 58 endless loop in scanning tokens (reported by
778   Christopher Lambert)
779
780(0.12.10) 2016-09-05:
781 - Make previous fix depend on unicode char width (32 bit unicode support
782   is a problem on MacOS reported by David Tagatac)
783
784(0.12.8) 2016-09-05:
785   - To be ignored Unicode characters were not properly regex matched
786     (no specific tests, PR by Haraguroicha Hsu)
787
788(0.12.7) 2016-09-03:
789   - fixing issue 54 empty lines with spaces (reported by Alex Harvey)
790
791(0.12.6) 2016-09-03:
792   - fixing issue 46 empty lines between top-level keys were gobbled (but
793     not between sequence elements, nor between keys in netsted mappings
794     (reported by Alex Harvey)
795
796(0.12.5) 2016-08-20:
797  - fixing issue 45 preserving datetime formatting (submitted by altuin)
798    Several formatting parameters are preserved with some normalisation:
799  - preserve 'T', 't' is replaced by 'T', multiple spaces between date
800    and time reduced to one.
801  - optional space before timezone is removed
802  - still using microseconds, but now rounded (.1234567 -> .123457)
803  - Z/-5/+01:00 preserved
804
805(0.12.4) 2016-08-19:
806  - Fix for issue 44: missing preserve_quotes keyword argument (reported
807    by M. Crusoe)
808
809(0.12.3) 2016-08-17:
810  - correct 'in' operation for merged CommentedMaps in round-trip mode
811    (implementation inspired by J.Ngo, but original not working for merges)
812  - iteration over round-trip loaded mappings, that contain merges. Also
813    keys(), items(), values() (Py3/Py2) and iterkeys(), iteritems(),
814    itervalues(), viewkeys(), viewitems(), viewvalues() (Py2)
815  - reuse of anchor name now generates warning, not an error. Round-tripping such
816    anchors works correctly. This inherited PyYAML issue was brought to attention
817    by G. Coddut (and was long standing https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=515634)
818    suppressing the warning::
819
820        import warnings
821        from ruamel.yaml.error import ReusedAnchorWarning
822        warnings.simplefilter("ignore", ReusedAnchorWarning)
823
824(0.12.2) 2016-08-16:
825  - minor improvements based on feedback from M. Crusoe
826    https://bitbucket.org/ruamel/yaml/issues/42/
827
828(0.12.0) 2016-08-16:
829  - drop support for Python 2.6
830  - include initial Type information (inspired by M. Crusoe)
831
832(0.11.15) 2016-08-07:
833  - Change to prevent FutureWarning in NumPy, as reported by tgehring
834    ("comparison to None will result in an elementwise object comparison in the future")
835
836(0.11.14) 2016-07-06:
837  - fix preserve_quotes missing on original Loaders (as reported
838    by Leynos, bitbucket issue 38)
839
840(0.11.13) 2016-07-06:
841  - documentation only, automated linux wheels
842
843(0.11.12) 2016-07-06:
844  - added support for roundtrip of single/double quoted scalars using:
845    ruamel.yaml.round_trip_load(stream, preserve_quotes=True)
846
847(0.11.10) 2016-05-02:
848
849- added .insert(pos, key, value, comment=None) to CommentedMap
850
851(0.11.10) 2016-04-19:
852
853- indent=2, block_seq_indent=2 works as expected
854
855(0.11.0) 2016-02-18:
856  - RoundTripLoader loads 1.2 by default (no sexagesimals, 012 octals nor
857    yes/no/on/off booleans
858
859(0.10.11) 2015-09-17:
860- Fix issue 13: dependency on libyaml to be installed for yaml.h
861
862(0.10.10) 2015-09-15:
863- Python 3.5 tested with tox
864- pypy full test (old PyYAML tests failed on too many open file handles)
865
866(0.10.6-0.10.9) 2015-09-14:
867- Fix for issue 9
868- Fix for issue 11: double dump losing comments
869- Include libyaml code
870- move code from 'py' subdir for proper namespace packaging.
871
872(0.10.5) 2015-08-25:
873- preservation of newlines after block scalars. Contributed by Sam Thursfield.
874
875(0.10) 2015-06-22:
876- preservation of hand crafted anchor names ( not of the form "idNNN")
877- preservation of map merges ( <<< )
878
879(0.9) 2015-04-18:
880- collections read in by the RoundTripLoader now have a ``lc`` property
881  that can be quired for line and column ( ``lc.line`` resp. ``lc.col``)
882
883(0.8) 2015-04-15:
884- bug fix for non-roundtrip save of ordereddict
885- adding/replacing end of line comments on block style mappings/sequences
886
887(0.7.2) 2015-03-29:
888- support for end-of-line comments on flow style sequences and mappings
889
890(0.7.1) 2015-03-27:
891- RoundTrip capability of flow style sequences ( 'a: b, c, d' )
892
893(0.7) 2015-03-26:
894- tests (currently failing) for inline sequece and non-standard spacing between
895  block sequence dash and scalar (Anthony Sottile)
896- initial possibility (on list, i.e. CommentedSeq) to set the flow format
897  explicitly
898- RoundTrip capability of flow style sequences ( 'a: b, c, d' )
899
900(0.6.1) 2015-03-15:
901- setup.py changed so ruamel.ordereddict no longer is a dependency
902  if not on CPython 2.x (used to test only for 2.x, which breaks pypy 2.5.0
903  reported by Anthony Sottile)
904
905(0.6) 2015-03-11:
906- basic support for scalars with preserved newlines
907- html option for yaml command
908- check if yaml C library is available before trying to compile C extension
909- include unreleased change in PyYAML dd 20141128
910
911(0.5) 2015-01-14:
912- move configobj -> YAML generator to own module
913- added dependency on ruamel.base (based on feedback from  Sess
914  <leycec@gmail.com>
915
916(0.4) 20141125:
917- move comment classes in own module comments
918- fix omap pre comment
919- make !!omap and !!set take parameters. There are still some restrictions:
920  - no comments before the !!tag
921- extra tests
922
923(0.3) 20141124:
924- fix value comment occuring as on previous line (looking like eol comment)
925- INI conversion in yaml + tests
926- (hidden) test in yaml for debugging with auto command
927- fix for missing comment in middel of simple map + test
928
929(0.2) 20141123:
930- add ext/_yaml.c etc to the source tree
931- tests for yaml to work on 2.6/3.3/3.4
932- change install so that you can include ruamel.yaml instead of ruamel.yaml.py
933- add "yaml" utility with initial subcommands (test rt, from json)
934
935(0.1) 20141122:
936- merge py2 and py3 code bases
937- remove support for 2.5/3.0/3.1/3.2 (this merge relies on u"" as
938  available in 3.3 and . imports not available in 2.5)
939- tox.ini for 2.7/3.4/2.6/3.3
940- remove lib3/ and tests/lib3 directories and content
941- commit
942- correct --verbose for test application
943- DATA=changed to be relative to __file__ of code
944- DATA using os.sep
945- remove os.path from imports as os is already imported
946- have test_yaml.py exit with value 0 on success, 1 on failures, 2 on
947  error
948- added support for octal integers starting with '0o'
949  keep support for 01234 as well as 0o1234
950- commit
951- added test_roundtrip_data:
952  requirest a .data file and .roundtrip (empty), yaml_load .data
953  and compare dump against original.
954- fix grammar as per David Pursehouse:
955  https://bitbucket.org/xi/pyyaml/pull-request/5/fix-grammar-in-error-messages/diff
956- http://www.json.org/ extra escaped char \/
957  add .skip-ext as libyaml is not updated
958- David Fraser: Extract a method to represent keys in mappings, so that
959  a subclass can choose not to quote them, used in repesent_mapping
960  https://bitbucket.org/davidfraser/pyyaml/
961- add CommentToken and percolate through parser and composer and constructor
962- add Comments to wrapped mapping and sequence constructs (not to scalars)
963- generate YAML with comments
964- initial README
965