ruyaml
ruyaml
package is a fork of ruamel.yaml
aimed to made in order to
secure the future of the library, mainly by having a pool of maintainers.
Notes
- The current version has the same API as the "ruamel.yaml" package.
However, it will install the
ruyaml
python module. Thus, simply
replace from ruamel import yaml
with import ruyaml as yaml
(or equivalent) and you're all set. - python3.6 is the minimal version of python supported
:version: 0.90.1
:updated: 2021-06-10
:documentation: http://ruyaml.readthedocs.io
:repository: https://github.com/pycontribs/ruyaml.git
:pypi: https://pypi.org/project/ruyaml/
The 0.16.13 release was the last that was tested to be working on Python 2.7.
The 0.17 series will still be tested on Python 3.5, but the 0.18 will not. The
0.17 series will also stop support for the old PyYAML functions, so a YAML()
instance
will need to be created.
The 0.17 series will also see changes in how comments are attached during
roundtrip. This will result in backwards incompatibilities on the .ca
data and
it might even be necessary for documented methods that handle comments.
Please adjust your dependencies accordingly if necessary. (ruamel.yaml<0.17
)
Starting with version 0.15.0 the way YAML files are loaded and dumped
has been changing, see the API doc for details. Currently existing
functionality will throw a warning before being changed/removed.
For production systems already using a pre 0.16 version, you should
pin the version being used with ruamel.yaml<=0.15
if you cannot
fully test upgrading to a newer version. For new usage
pin to the minor version tested ( ruamel.yaml<=0.17
) or even to the
exact version used.
New functionality is usually only available via the new API, so
make sure you use it and stop using the ruamel.yaml.safe_load()
,
ruamel.yaml.round_trip_load()
and ruamel.yaml.load()
functions
(and their ....dump()
counterparts).
If your package uses ruamel.yaml
and is not listed on PyPI, drop
me an email, preferably with some information on how you use the
package (or a link to the repository) and I'll keep you informed
when the status of the API is stable enough to make the transition.
Overview <http://yaml.readthedocs.org/en/latest/overview.html>
_Installing <http://yaml.readthedocs.org/en/latest/install.html>
_Basic Usage <http://yaml.readthedocs.org/en/latest/basicuse.html>
_Details <http://yaml.readthedocs.org/en/latest/detail.html>
_Examples <http://yaml.readthedocs.org/en/latest/example.html>
_API <http://yaml.readthedocs.org/en/latest/api.html>
_Differences with PyYAML <http://yaml.readthedocs.org/en/latest/pyyaml.html>
_
.. image:: https://readthedocs.org/projects/yaml/badge/?version=stable
:target: https://yaml.readthedocs.org/en/stable
.. image:: https://bestpractices.coreinfrastructure.org/projects/1128/badge
:target: https://bestpractices.coreinfrastructure.org/projects/1128
.. image:: https://sourceforge.net/p/ruamel-yaml/code/ci/default/tree/_doc/_static/license.svg?format=raw
:target: https://opensource.org/licenses/MIT
.. image:: https://sourceforge.net/p/ruamel-yaml/code/ci/default/tree/_doc/_static/pypi.svg?format=raw
:target: https://pypi.org/project/ruamel.yaml/
.. image:: https://sourceforge.net/p/oitnb/code/ci/default/tree/_doc/_static/oitnb.svg?format=raw
:target: https://pypi.org/project/oitnb/
.. image:: http://www.mypy-lang.org/static/mypy_badge.svg
:target: http://mypy-lang.org/
ChangeLog
.. should insert NEXT: at the beginning of line for next key (with empty line)
0.17.17 (2021-10-31):
- extract timestamp matching/creation to util
0.17.16 (2021-08-28):
- 398 also handle issue 397 when comment is newline
0.17.15 (2021-08-28):
- fix issue 397, insert comment before key when a comment between key and value exists
(reported by
Bastien gerard <https://sourceforge.net/u/bagerard/>
__)
0.17.14 (2021-08-25):
- fix issue 396, inserting key/val in merged-in dictionary (reported by
Bastien gerard <https://sourceforge.net/u/bagerard/>
__)
0.17.13 (2021-08-21):
- minor fix in attr handling
0.17.12 (2021-08-21):
- fix issue with anchor on registered class not preserved and those classes using package
attrs with
@attr.s()
(both reported by ssph <https://sourceforge.net/u/sph/>
__)
0.17.11 (2021-08-19):
- fix error baseclass for
DuplicateKeyErorr
(reported by Łukasz Rogalski <https://sourceforge.net/u/lrogalski/>
__) - fix typo in reader error message, causing
KeyError
during reader error
(reported by MTU <https://sourceforge.net/u/mtu/>
__)
0.17.10 (2021-06-24):
- fix issue 388, token with old comment structure != two elements
(reported by
Dimitrios Bariamis <https://sourceforge.net/u/dbdbc/>
__)
0.17.9 (2021-06-10):
- fix issue with updating CommentedMap (reported by sri on
StackOverflow <https://stackoverflow.com/q/67911659/1307905>
__)
0.17.8 (2021-06-09):
- fix for issue 387 where templated anchors on tagged object did get set
resulting in potential id reuse. (reported by
Artem Ploujnikov <https://sourceforge.net/u/flexthink/>
__)
0.17.7 (2021-05-31):
- issue 385 also affected other deprecated loaders (reported via email
by Oren Watson)
0.17.6 (2021-05-31):
- merged type annotations update provided by
Jochen Sprickerhof <https://sourceforge.net/u/jspricke/>
__ - fix for issue 385: deprecated round_trip_loader function not working
(reported by
Mike Gouline <https://sourceforge.net/u/gouline/>
__) - wasted a few hours getting rid of mypy warnings/errors
0.17.5 (2021-05-30):
- fix for issue 384 !!set with aliased entry resulting in broken YAML on rt
reported by
William Kimball <https://sourceforge.net/u/william303/>
__)
0.17.4 (2021-04-07):
- prevent (empty) comments from throwing assertion error (issue 351
reported by
William Kimball <https://sourceforge.net/u/william303/>
__)
comments (or empty line) will be dropped
0.17.3 (2021-04-07):
- fix for issue 382 caused by an error in a format string (reported by
William Kimball <https://sourceforge.net/u/william303/>
__) - allow expansion of aliases by setting
yaml.composer.return_alias = lambda s: copy.deepcopy(s)
(as per Stackoverflow answer <https://stackoverflow.com/a/66983530/1307905>
__)
0.17.2 (2021-03-29):
- change -py2.py3-none-any.whl to -py3-none-any.whl, and remove 0.17.1
0.17.1 (2021-03-29):
- added 'Programming Language :: Python :: 3 :: Only', and removing
0.17.0 from PyPI (reported by
Alasdair Nicol <https://sourceforge.net/u/alasdairnicol/>
__)
0.17.0 (2021-03-26):
- removed because of incomplete classifiers
- this release no longer supports Python 2.7, most if not all Python 2
specific code is removed. The 0.17.x series is the last to support Python 3.5
(this also allowed for removal of the dependency on
ruamel.std.pathlib
) - remove Python2 specific code branches and adaptations (u-strings)
- prepare % code for f-strings using
_F
- allow PyOxidisation (
issue 324 <https://sourceforge.net/p/ruamel-yaml/tickets/324/>
__
resp. issue 171 <https://github.com/indygreg/PyOxidizer/issues/171>
__) - replaced Python 2 compatible enforcement of keyword arguments with '*'
- the old top level functions
load
, safe_load
, round_trip_load
,
dump
, safe_dump
, round_trip_dump
, scan
, parse
,
compose
, emit
, serialize
as well as their _all
variants for
multi-document streams, now issue a PendingDeprecationning
(e.g. when run
from pytest, but also Python is started with -Wd
). Use the methods on
YAML()
, which have been extended. - fix for issue 376: indentation changes could put literal/folded scalar to start
before the
#
column of a following comment. Effectively making the comment
part of the scalar in the output. (reported by
Bence Nagy <https://sourceforge.net/u/underyx/>
__)
0.16.13 (2021-03-05):
- fix for issue 359: could not update() CommentedMap with keyword arguments
(reported by
Steve Franchak <https://sourceforge.net/u/binaryadder/>
__) - fix for issue 365: unable to dump mutated TimeStamp objects
(reported by Anton Akmerov https://sourceforge.net/u/akhmerov/`__)
- fix for issue 371: unable to addd comment without starting space
(reported by 'Mark Grandi https://sourceforge.net/u/mgrandi`__)
- fix for issue 373: recursive call to walk_tree not preserving all params
(reported by
eulores <https://sourceforge.net/u/eulores/>
__) - a None value in a flow-style sequence is now dumped as
null
instead
of !!null ''
(reported by mcarans on
StackOverflow <https://stackoverflow.com/a/66489600/1307905>
__)
0.16.12 (2020-09-04):
0.16.11 (2020-09-03):
0.16.10 (2020-02-12):
- (auto) updated image references in README to sourceforge
0.16.9 (2020-02-11):
0.16.8 (2020-02-11):
- update requirements so that ruamel.yaml.clib is installed for 3.8,
as it has become available (via manylinux builds)
0.16.7 (2020-01-30):
- fix typchecking issue on TaggedScalar (reported by Jens Nielsen)
- fix error in dumping literal scalar in sequence with comments before element
(reported by
EJ Etherington <https://sourceforge.net/u/ejether/>
__)
0.16.6 (2020-01-20):
- fix empty string mapping key roundtripping with preservation of quotes as
? ''
(reported via email by Tomer Aharoni). - fix incorrect state setting in class constructor (reported by
Douglas Raillard <https://bitbucket.org/%7Bcf052d92-a278-4339-9aa8-de41923bb556%7D/>
__) - adjust deprecation warning test for Hashable, as that no longer warns (reported
by
Jason Montleon <https://bitbucket.org/%7B8f377d12-8d5b-4069-a662-00a2674fee4e%7D/>
__)
0.16.5 (2019-08-18):
- allow for
YAML(typ=['unsafe', 'pytypes'])
0.16.4 (2019-08-16):
- fix output of TAG directives with # (reported by
Thomas Smith <https://bitbucket.org/%7Bd4c57a72-f041-4843-8217-b4d48b6ece2f%7D/>
__)
0.16.3 (2019-08-15):
- split construct_object
- change stuff back to keep mypy happy
- move setting of version based on YAML directive to scanner, allowing to
check for file version during TAG directive scanning
0.16.2 (2019-08-15):
- preserve YAML and TAG directives on roundtrip, correctly output #
in URL for YAML 1.2 (both reported by
Thomas Smith <https://bitbucket.org/%7Bd4c57a72-f041-4843-8217-b4d48b6ece2f%7D/>
__)
0.16.1 (2019-08-08):
- Force the use of new version of ruamel.yaml.clib (reported by
Alex Joz <https://bitbucket.org/%7B9af55900-2534-4212-976c-61339b6ffe14%7D/>
__) - Allow '#' in tag URI as these are allowed in YAML 1.2 (reported by
Thomas Smith <https://bitbucket.org/%7Bd4c57a72-f041-4843-8217-b4d48b6ece2f%7D/>
__)
0.16.0 (2019-07-25):
- split of C source that generates .so file to ruamel.yaml.clib
- duplicate keys are now an error when working with the old API as well
For older changes see the file
CHANGES <https://sourceforge.net/p/ruamel-yaml/code/ci/default/tree/CHANGES>
_