2 For a complete changelog, see:
4 * https://github.com/yaml/pyyaml/commits/
5 * https://bitbucket.org/xi/pyyaml/commits/
9 * https://github.com/yaml/pyyaml/pull/702 -- pin Cython build dep to < 3.0
13 * https://github.com/yaml/pyyaml/pull/327 -- Change README format to Markdown
14 * https://github.com/yaml/pyyaml/pull/483 -- Add a test for YAML 1.1 types
15 * https://github.com/yaml/pyyaml/pull/497 -- fix float resolver to ignore `.` and `._`
16 * https://github.com/yaml/pyyaml/pull/550 -- drop Python 2.7
17 * https://github.com/yaml/pyyaml/pull/553 -- Fix spelling of “hexadecimal”
18 * https://github.com/yaml/pyyaml/pull/556 -- fix representation of Enum subclasses
19 * https://github.com/yaml/pyyaml/pull/557 -- fix libyaml extension compiler warnings
20 * https://github.com/yaml/pyyaml/pull/560 -- fix ResourceWarning on leaked file descriptors
21 * https://github.com/yaml/pyyaml/pull/561 -- always require `Loader` arg to `yaml.load()`
22 * https://github.com/yaml/pyyaml/pull/564 -- remove remaining direct distutils usage
26 * https://github.com/yaml/pyyaml/pull/480 -- Fix stub compat with older pyyaml versions that may unwittingly load it
30 * https://github.com/yaml/pyyaml/pull/407 -- Build modernization, remove distutils, fix metadata, build wheels, CI to GHA
31 * https://github.com/yaml/pyyaml/pull/472 -- Fix for CVE-2020-14343, moves arbitrary python tags to UnsafeLoader
32 * https://github.com/yaml/pyyaml/pull/441 -- Fix memory leak in implicit resolver setup
33 * https://github.com/yaml/pyyaml/pull/392 -- Fix py2 copy support for timezone objects
34 * https://github.com/yaml/pyyaml/pull/378 -- Fix compatibility with Jython
38 * https://github.com/yaml/pyyaml/pull/386 -- Prevents arbitrary code execution during python/object/new constructor
42 * https://github.com/yaml/pyyaml/pull/290 -- Use `is` instead of equality for comparing with `None`
43 * https://github.com/yaml/pyyaml/pull/270 -- Fix typos and stylistic nit
44 * https://github.com/yaml/pyyaml/pull/309 -- Fix up small typo
45 * https://github.com/yaml/pyyaml/pull/161 -- Fix handling of __slots__
46 * https://github.com/yaml/pyyaml/pull/358 -- Allow calling add_multi_constructor with None
47 * https://github.com/yaml/pyyaml/pull/285 -- Add use of safe_load() function in README
48 * https://github.com/yaml/pyyaml/pull/351 -- Fix reader for Unicode code points over 0xFFFF
49 * https://github.com/yaml/pyyaml/pull/360 -- Enable certain unicode tests when maxunicode not > 0xffff
50 * https://github.com/yaml/pyyaml/pull/359 -- Use full_load in yaml-highlight example
51 * https://github.com/yaml/pyyaml/pull/244 -- Document that PyYAML is implemented with Cython
52 * https://github.com/yaml/pyyaml/pull/329 -- Fix for Python 3.10
53 * https://github.com/yaml/pyyaml/pull/310 -- Increase size of index, line, and column fields
54 * https://github.com/yaml/pyyaml/pull/260 -- Remove some unused imports
55 * https://github.com/yaml/pyyaml/pull/163 -- Create timezone-aware datetimes when parsed as such
56 * https://github.com/yaml/pyyaml/pull/363 -- Add tests for timezone
61 * Repair incompatibilities introduced with 5.1. The default Loader was changed,
62 but several methods like add_constructor still used the old default
63 https://github.com/yaml/pyyaml/pull/279 -- A more flexible fix for custom tag constructors
64 https://github.com/yaml/pyyaml/pull/287 -- Change default loader for yaml.add_constructor
65 https://github.com/yaml/pyyaml/pull/305 -- Change default loader for add_implicit_resolver, add_path_resolver
66 * Make FullLoader safer by removing python/object/apply from the default FullLoader
67 https://github.com/yaml/pyyaml/pull/347 -- Move constructor for object/apply to UnsafeConstructor
68 * Fix bug introduced in 5.1 where quoting went wrong on systems with sys.maxunicode <= 0xffff
69 https://github.com/yaml/pyyaml/pull/276 -- Fix logic for quoting special characters
71 https://github.com/yaml/pyyaml/pull/280 -- Update CHANGES for 5.1
76 * Re-release of 5.1 with regenerated Cython sources to build properly for Python 3.8b2+
81 * Re-release of 5.1 with regenerated Cython sources to build properly for Python 3.8b1
86 * https://github.com/yaml/pyyaml/pull/35 -- Some modernization of the test running
87 * https://github.com/yaml/pyyaml/pull/42 -- Install tox in a virtualenv
88 * https://github.com/yaml/pyyaml/pull/45 -- Allow colon in a plain scalar in a flow context
89 * https://github.com/yaml/pyyaml/pull/48 -- Fix typos
90 * https://github.com/yaml/pyyaml/pull/55 -- Improve RepresenterError creation
91 * https://github.com/yaml/pyyaml/pull/59 -- Resolves #57, update readme issues link
92 * https://github.com/yaml/pyyaml/pull/60 -- Document and test Python 3.6 support
93 * https://github.com/yaml/pyyaml/pull/61 -- Use Travis CI built in pip cache support
94 * https://github.com/yaml/pyyaml/pull/62 -- Remove tox workaround for Travis CI
95 * https://github.com/yaml/pyyaml/pull/63 -- Adding support to Unicode characters over codepoint 0xffff
96 * https://github.com/yaml/pyyaml/pull/75 -- add 3.12 changelog
97 * https://github.com/yaml/pyyaml/pull/76 -- Fallback to Pure Python if Compilation fails
98 * https://github.com/yaml/pyyaml/pull/84 -- Drop unsupported Python 3.3
99 * https://github.com/yaml/pyyaml/pull/102 -- Include license file in the generated wheel package
100 * https://github.com/yaml/pyyaml/pull/105 -- Removed Python 2.6 & 3.3 support
101 * https://github.com/yaml/pyyaml/pull/111 -- Remove commented out Psyco code
102 * https://github.com/yaml/pyyaml/pull/129 -- Remove call to `ord` in lib3 emitter code
103 * https://github.com/yaml/pyyaml/pull/149 -- Test on Python 3.7-dev
104 * https://github.com/yaml/pyyaml/pull/158 -- Support escaped slash in double quotes "\/"
105 * https://github.com/yaml/pyyaml/pull/175 -- Updated link to pypi in release announcement
106 * https://github.com/yaml/pyyaml/pull/181 -- Import Hashable from collections.abc
107 * https://github.com/yaml/pyyaml/pull/194 -- Reverting https://github.com/yaml/pyyaml/pull/74
108 * https://github.com/yaml/pyyaml/pull/195 -- Build libyaml on travis
109 * https://github.com/yaml/pyyaml/pull/196 -- Force cython when building sdist
110 * https://github.com/yaml/pyyaml/pull/254 -- Allow to turn off sorting keys in Dumper (2)
111 * https://github.com/yaml/pyyaml/pull/256 -- Make default_flow_style=False
112 * https://github.com/yaml/pyyaml/pull/257 -- Deprecate yaml.load and add FullLoader and UnsafeLoader classes
113 * https://github.com/yaml/pyyaml/pull/261 -- Skip certain unicode tests when maxunicode not > 0xffff
114 * https://github.com/yaml/pyyaml/pull/263 -- Windows Appveyor build
119 * Resolved issues around PyYAML working in Python 3.7.
124 * Wheel packages for Windows binaries.
125 * Adding an implicit resolver to a derived loader should not affect the base loader.
126 * Uniform representation for OrderedDict? across different versions of Python.
127 * Fixed comparison to None warning.
132 * Source and binary distributions are rebuilt against the latest
133 versions of Cython and LibYAML.
138 * Do not try to build LibYAML bindings on platforms other than CPython
139 (Thank to olt(at)bogosoft(dot)com).
140 * Clear cyclic references in the parser and the emitter
141 (Thank to kristjan(at)ccpgames(dot)com).
142 * Dropped support for Python 2.3 and 2.4.
147 * Fixed an obscure scanner error not reported when there is
148 no line break at the end of the stream (Thank to Ingy).
149 * Fixed use of uninitialized memory when emitting anchors with
150 LibYAML bindings (Thank to cegner(at)yahoo-inc(dot)com).
151 * Fixed emitting incorrect BOM characters for UTF-16 (Thank to
153 * Fixed the emitter for folded scalars not respecting the preferred
154 line width (Thank to Ingy).
155 * Fixed a subtle ordering issue with emitting '%TAG' directives
156 (Thank to Andrey Somov).
157 * Fixed performance regression with LibYAML bindings.
163 * Python 3 support (Thank to Erick Tryzelaar).
164 * Use Cython instead of Pyrex to build LibYAML bindings.
165 * Refactored support for unicode and byte input/output streams.
171 * The emitter learned to use an optional indentation indicator
172 for block scalar; thus scalars with leading whitespaces
173 could now be represented in a literal or folded style.
174 * The test suite is now included in the source distribution.
175 To run the tests, type 'python setup.py test'.
176 * Refactored the test suite: dropped unittest in favor of
177 a custom test appliance.
178 * Fixed the path resolver in CDumper.
179 * Forced an explicit document end indicator when there is
180 a possibility of parsing ambiguity.
181 * More setup.py improvements: the package should be usable
182 when any combination of setuptools, Pyrex and LibYAML
184 * Windows binary packages are built against LibYAML-0.1.2.
185 * Minor typos and corrections (Thank to Ingy dot Net
192 * setup.py checks whether LibYAML is installed and if so, builds
193 and installs LibYAML bindings. To force or disable installation
194 of LibYAML bindings, use '--with-libyaml' or '--without-libyaml'
196 * The source distribution includes compiled Pyrex sources so
197 building LibYAML bindings no longer requires Pyrex installed.
198 * 'yaml.load()' raises an exception if the input stream contains
199 more than one YAML document.
200 * Fixed exceptions produced by LibYAML bindings.
201 * Fixed a dot '.' character being recognized as !!float.
202 * Fixed Python 2.3 compatibility issue in constructing !!timestamp values.
203 * Windows binary packages are built against the LibYAML stable branch.
204 * Added attributes 'yaml.__version__' and 'yaml.__with_libyaml__'.
210 * Windows binary packages were built with LibYAML trunk.
211 * Fixed a bug that prevent processing a live stream of YAML documents in
212 timely manner (Thanks edward(at)sweetbytes(dot)net).
213 * Fixed a bug when the path in add_path_resolver contains boolean values
214 (Thanks jstroud(at)mbi(dot)ucla(dot)edu).
215 * Fixed loss of microsecond precision in timestamps
216 (Thanks edemaine(at)mit(dot)edu).
217 * Fixed loading an empty YAML stream.
218 * Allowed immutable subclasses of YAMLObject.
219 * Made the encoding of the unicode->str conversion explicit so that
220 the conversion does not depend on the default Python encoding.
221 * Forced emitting float values in a YAML compatible form.
227 * Include experimental LibYAML bindings.
228 * Fully support recursive structures.
229 * Sort dictionary keys. Mapping node values are now represented
230 as lists of pairs instead of dictionaries. No longer check
231 for duplicate mapping keys as it didn't work correctly anyway.
232 * Fix invalid output of single-quoted scalars in cases when a single
233 quote is not escaped when preceded by whitespaces or line breaks.
234 * To make porting easier, rewrite Parser not using generators.
235 * Fix handling of unexpected block mapping values.
236 * Fix a bug in Representer.represent_object: copy_reg.dispatch_table
237 was not correctly handled.
238 * Fix a bug when a block scalar is incorrectly emitted in the simple
240 * Hold references to the objects being represented.
241 * Make Representer not try to guess !!pairs when a list is represented.
242 * Fix timestamp constructing and representing.
243 * Fix the 'N' plain scalar being incorrectly recognized as !!bool.
249 * Fix Python 2.5 compatibility issues.
250 * Fix numerous bugs in the float handling.
251 * Fix scanning some ill-formed documents.
258 * Fix win32 installer. Apparently bdist_wininst does not work well
260 * Fix a bug in add_path_resolver.
261 * Add the yaml-highlight example. Try to run on a color terminal:
262 `python yaml_hl.py <any_document.yaml`.
268 * Initial release. The version number reflects the codename
269 of the project (PyYAML 3000) and differentiates it from
270 the abandoned PyYaml module.