Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-yq for openSUSE:Factory checked in at 2023-04-07 18:17:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-yq (Old) and /work/SRC/openSUSE:Factory/.python-yq.new.19717 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-yq" Fri Apr 7 18:17:00 2023 rev:12 rq:1077834 version:3.2.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-yq/python-yq.changes 2023-03-02 23:04:13.384069610 +0100 +++ /work/SRC/openSUSE:Factory/.python-yq.new.19717/python-yq.changes 2023-04-07 18:17:09.492832950 +0200 @@ -1,0 +2,8 @@ +Thu Apr 6 12:15:52 UTC 2023 - Andrea Manzini <andrea.manz...@suse.com> + +- Update to 3.2.1: + * Use tomlkit instead of toml + * Add security policy + * Documentation and release infrastructure improvements + +------------------------------------------------------------------- Old: ---- yq-3.1.1.tar.gz New: ---- yq-3.2.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-yq.spec ++++++ --- /var/tmp/diff_new_pack.ni5zBu/_old 2023-04-07 18:17:10.948841337 +0200 +++ /var/tmp/diff_new_pack.ni5zBu/_new 2023-04-07 18:17:10.956841383 +0200 @@ -16,10 +16,9 @@ # -%{?!python_module:%define python_module() python-%{**} python3-%{**}} %define skip_python2 1 Name: python-yq -Version: 3.1.1 +Version: 3.2.1 Release: 0 Summary: Command-line YAML processor - jq wrapper for YAML documents License: Apache-2.0 @@ -31,8 +30,7 @@ Requires: jq Requires: python-PyYAML >= 5.3.1 Requires: python-argcomplete >= 1.8.1 -Requires: python-setuptools -Requires: python-toml >= 0.10.0 +Requires: python-tomlkit >= 0.11.6 Requires: python-xmltodict >= 0.11.0 Requires(post): update-alternatives Requires(postun):update-alternatives @@ -40,7 +38,7 @@ # SECTION test requirements BuildRequires: %{python_module PyYAML >= 5.3.1} BuildRequires: %{python_module argcomplete >= 1.8.1} -BuildRequires: %{python_module toml >= 0.10.0} +BuildRequires: %{python_module tomlkit >= 0.11.6} BuildRequires: %{python_module xmltodict >= 0.11.0} BuildRequires: jq # /SECTION @@ -83,6 +81,6 @@ %python_alternative %{_bindir}/yq %python_alternative %{_bindir}/xq %python_alternative %{_bindir}/tomlq -%{python_sitelib}/* +%{python_sitelib}/yq* %changelog ++++++ yq-3.1.1.tar.gz -> yq-3.2.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.1.1/.github/workflows/ci.yml new/yq-3.2.1/.github/workflows/ci.yml --- old/yq-3.1.1/.github/workflows/ci.yml 2023-02-22 06:14:38.000000000 +0100 +++ new/yq-3.2.1/.github/workflows/ci.yml 2023-04-05 03:34:39.000000000 +0200 @@ -8,7 +8,7 @@ strategy: max-parallel: 8 matrix: - os: [ubuntu-18.04, ubuntu-22.04, macos-12] + os: [ubuntu-20.04, ubuntu-22.04, macos-12] python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"] steps: - uses: actions/checkout@v3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.1.1/Changes.rst new/yq-3.2.1/Changes.rst --- old/yq-3.1.1/Changes.rst 2023-02-22 06:26:45.000000000 +0100 +++ new/yq-3.2.1/Changes.rst 2023-04-05 03:36:26.000000000 +0200 @@ -1,3 +1,18 @@ +Changes for v3.2.1 (2023-04-04) +=============================== + +- Relax tomlkit dependency version range to preserve Python 3.6 + compatibility (#165) + +Changes for v3.2.0 (2023-04-03) +=============================== + +- Use tomlkit instead of toml + +- Add security policy + +- Documentation and release infrastructure improvements + Changes for v3.1.1 (2023-02-21) =============================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.1.1/Makefile new/yq-3.2.1/Makefile --- old/yq-3.1.1/Makefile 2023-02-22 06:14:38.000000000 +0100 +++ new/yq-3.2.1/Makefile 2023-04-05 03:34:39.000000000 +0200 @@ -1,7 +1,7 @@ SHELL=/bin/bash lint: - flake8 + ruff $$(dirname */__init__.py) mypy --install-types --non-interactive --check-untyped-defs $$(dirname */__init__.py) test: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.1.1/PKG-INFO new/yq-3.2.1/PKG-INFO --- old/yq-3.1.1/PKG-INFO 2023-02-22 06:27:05.400125300 +0100 +++ new/yq-3.2.1/PKG-INFO 2023-04-05 03:36:45.064249300 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: yq -Version: 3.1.1 +Version: 3.2.1 Summary: Command-line YAML/XML processor - jq wrapper for YAML/XML documents Home-page: https://github.com/kislyuk/yq Author: Andrey Kislyuk @@ -12,11 +12,11 @@ Classifier: Operating System :: POSIX Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 Classifier: Topic :: Software Development :: Libraries :: Python Modules Requires-Python: >=3.6 Provides-Extra: tests @@ -58,10 +58,14 @@ yq -Y .foo.bar input.yml -Use the ``--width``/``-w`` option to pass the line wrap width for string literals. With ``-y/-Y``, files can be edited -in place like with ``sed -i``: ``yq -yi .foo=1 *.yml``. All other command line arguments are forwarded to ``jq``. ``yq`` -forwards the exit code ``jq`` produced, unless there was an error in YAML parsing, in which case the exit code is 1. -See the `jq manual <https://stedolan.github.io/jq/manual/>`_ for more details on ``jq`` features and options. +yq can be called as a module if needed. With ``-y/-Y``, files can be edited in place like with ``sed -i``:: + + python -m yq -Y --indentless --in-place '.["current-context"] = "staging-cluster"' ~/.kube/config + +Use the ``--width``/``-w`` option to pass the line wrap width for string literals. All other command line arguments are +forwarded to ``jq``. ``yq`` forwards the exit code ``jq`` produced, unless there was an error in YAML parsing, in which +case the exit code is 1. See the `jq manual <https://stedolan.github.io/jq/manual/>`_ for more details on ``jq`` +features and options. Because YAML treats JSON as a dialect of YAML, you can use yq to convert JSON to YAML: ``yq -y . < in.json > out.yml``. @@ -133,8 +137,8 @@ TOML support ------------ ``yq`` supports `TOML <https://toml.io/>`_ as well. The ``yq`` package installs an executable, ``tomlq``, which uses the -`toml library <https://github.com/uiri/toml>`_ to transcode TOML to JSON, then pipes it to ``jq``. Roundtrip transcoding -is available with the ``tomlq --toml-output``/``tomlq -t`` option. +`tomlkit library <https://github.com/sdispater/tomlkit>`_ to transcode TOML to JSON, then pipes it to ``jq``. Roundtrip +transcoding is available with the ``tomlq --toml-output``/``tomlq -t`` option. .. admonition:: Compatibility note diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.1.1/README.rst new/yq-3.2.1/README.rst --- old/yq-3.1.1/README.rst 2023-02-22 06:14:38.000000000 +0100 +++ new/yq-3.2.1/README.rst 2023-04-05 03:34:39.000000000 +0200 @@ -34,10 +34,14 @@ yq -Y .foo.bar input.yml -Use the ``--width``/``-w`` option to pass the line wrap width for string literals. With ``-y/-Y``, files can be edited -in place like with ``sed -i``: ``yq -yi .foo=1 *.yml``. All other command line arguments are forwarded to ``jq``. ``yq`` -forwards the exit code ``jq`` produced, unless there was an error in YAML parsing, in which case the exit code is 1. -See the `jq manual <https://stedolan.github.io/jq/manual/>`_ for more details on ``jq`` features and options. +yq can be called as a module if needed. With ``-y/-Y``, files can be edited in place like with ``sed -i``:: + + python -m yq -Y --indentless --in-place '.["current-context"] = "staging-cluster"' ~/.kube/config + +Use the ``--width``/``-w`` option to pass the line wrap width for string literals. All other command line arguments are +forwarded to ``jq``. ``yq`` forwards the exit code ``jq`` produced, unless there was an error in YAML parsing, in which +case the exit code is 1. See the `jq manual <https://stedolan.github.io/jq/manual/>`_ for more details on ``jq`` +features and options. Because YAML treats JSON as a dialect of YAML, you can use yq to convert JSON to YAML: ``yq -y . < in.json > out.yml``. @@ -109,8 +113,8 @@ TOML support ------------ ``yq`` supports `TOML <https://toml.io/>`_ as well. The ``yq`` package installs an executable, ``tomlq``, which uses the -`toml library <https://github.com/uiri/toml>`_ to transcode TOML to JSON, then pipes it to ``jq``. Roundtrip transcoding -is available with the ``tomlq --toml-output``/``tomlq -t`` option. +`tomlkit library <https://github.com/sdispater/tomlkit>`_ to transcode TOML to JSON, then pipes it to ``jq``. Roundtrip +transcoding is available with the ``tomlq --toml-output``/``tomlq -t`` option. .. admonition:: Compatibility note diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.1.1/SECURITY.md new/yq-3.2.1/SECURITY.md --- old/yq-3.1.1/SECURITY.md 1970-01-01 01:00:00.000000000 +0100 +++ new/yq-3.2.1/SECURITY.md 2023-04-05 03:34:39.000000000 +0200 @@ -0,0 +1,9 @@ +# Security Policy + +## Reporting a Vulnerability + +If you believe you have found a security vulnerability in this project, please report it to us by submitting a security advisory at https://github.com/kislyuk/yq/security/advisories. You can expect an initial response within 14 days. + +## Supported Versions + +In general, the maintainers of this project provide security updates only for the most recent published release. If you need support for prior versions, please open an issue and describe your situation. Requests for updates to prior releases will be considered on a case-by-case basis, and will generally be accommodated only for the latest releases in prior major version release series. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.1.1/common.mk new/yq-3.2.1/common.mk --- old/yq-3.1.1/common.mk 2022-07-03 21:16:59.000000000 +0200 +++ new/yq-3.2.1/common.mk 2023-04-05 03:34:39.000000000 +0200 @@ -17,13 +17,8 @@ @if [[ -z $$TAG ]]; then echo "Use release-{major,minor,patch}"; exit 1; fi @if ! type -P pandoc; then echo "Please install pandoc"; exit 1; fi @if ! type -P sponge; then echo "Please install moreutils"; exit 1; fi - @if ! type -P http; then echo "Please install httpie"; exit 1; fi + @if ! type -P gh; then echo "Please install gh"; exit 1; fi @if ! type -P twine; then echo "Please install twine"; exit 1; fi - $(eval REMOTE=$(shell git remote get-url origin | perl -ne '/([^\/\:]+\/[^\/\:]+?)(\.git)?$$/; print $$1')) - $(eval GIT_USER=$(shell git config --get user.email)) - $(eval GH_AUTH=$(shell if grep -q '@github.com' ~/.git-credentials; then echo $$(grep '@github.com' ~/.git-credentials | python3 -c 'import sys, urllib.parse as p; print(p.urlparse(sys.stdin.read()).netloc.split("@")[0])'); else echo $(GIT_USER); fi)) - $(eval RELEASES_API=https://api.github.com/repos/${REMOTE}/releases) - $(eval UPLOADS_API=https://uploads.github.com/repos/${REMOTE}/releases) git pull git clean -x --force $$(python setup.py --name) sed -i -e "s/version=\([\'\"]\)[0-9]*\.[0-9]*\.[0-9]*/version=\1$${TAG:1}/" setup.py @@ -34,15 +29,12 @@ $${EDITOR:-emacs} $$TAG_MSG; \ if [[ -f Changes.md ]]; then cat $$TAG_MSG <(echo) Changes.md | sponge Changes.md; git add Changes.md; fi; \ if [[ -f Changes.rst ]]; then cat <(pandoc --from markdown --to rst $$TAG_MSG) <(echo) Changes.rst | sponge Changes.rst; git add Changes.rst; fi; \ - yq --help > docs/cli-doc.txt; git add docs/cli-doc.txt; \ - git commit -m ${TAG}; \ + yq --help > docs/cli-doc.txt; git add docs/cli-doc.txt; \ + git commit -m ${TAG}; \ git tag --sign --annotate --file $$TAG_MSG ${TAG} git push --follow-tags - http --check-status --auth ${GH_AUTH} ${RELEASES_API} tag_name=${TAG} name=${TAG} \ - body="$$(git tag --list ${TAG} -n99 | perl -pe 's/^\S+\s*// if $$. == 1' | sed 's/^\s\s\s\s//')" $(MAKE) install - http --check-status --auth ${GH_AUTH} POST ${UPLOADS_API}/$$(http --auth ${GH_AUTH} ${RELEASES_API}/latest | jq .id)/assets \ - name==$$(basename dist/*.whl) label=="Python Wheel" < dist/*.whl + gh release create ${TAG} dist/*.whl --notes="$$(git tag --list ${TAG} -n99 | perl -pe 's/^\S+\s*// if $$. == 1' | sed 's/^\s\s\s\s//')" $(MAKE) release-pypi $(MAKE) release-docs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.1.1/pyproject.toml new/yq-3.2.1/pyproject.toml --- old/yq-3.1.1/pyproject.toml 2023-02-22 06:14:38.000000000 +0100 +++ new/yq-3.2.1/pyproject.toml 2023-04-05 03:34:39.000000000 +0200 @@ -1,9 +1,15 @@ [tool.black] line-length = 120 + [tool.isort] profile = "black" line_length = 120 skip_gitignore = true + +[tool.ruff] +line-length = 120 +per-file-ignores = {"yq/__init__.py" = ["F401"]} + [[tool.mypy.overrides]] module = "argcomplete.*" -ignore_missing_imports = true \ No newline at end of file +ignore_missing_imports = true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.1.1/setup.cfg new/yq-3.2.1/setup.cfg --- old/yq-3.1.1/setup.cfg 2023-02-22 06:27:05.400349600 +0100 +++ new/yq-3.2.1/setup.cfg 2023-04-05 03:36:45.064434500 +0200 @@ -1,12 +1,3 @@ -[metadata] -license_file = LICENSE - -[flake8] -max-line-length = 120 -extend-ignore = E203 -per-file-ignores = - yq/__init__.py:F401 - [egg_info] tag_build = tag_date = 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.1.1/setup.py new/yq-3.2.1/setup.py --- old/yq-3.1.1/setup.py 2023-02-22 06:26:16.000000000 +0100 +++ new/yq-3.2.1/setup.py 2023-04-05 03:36:13.000000000 +0200 @@ -4,7 +4,7 @@ setup( name="yq", - version="3.1.1", + version="3.2.1", url="https://github.com/kislyuk/yq", license="Apache Software License", author="Andrey Kislyuk", @@ -19,15 +19,15 @@ install_requires=[ "PyYAML >= 5.3.1", "xmltodict >= 0.11.0", - "toml >= 0.10.0", + "tomlkit >= 0.11.6", "argcomplete >= 1.8.1", ], extras_require={ "tests": [ "coverage", - "flake8", "wheel", "build", + "ruff", "mypy", ] }, @@ -44,11 +44,11 @@ "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", "Topic :: Software Development :: Libraries :: Python Modules", ], ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.1.1/yq/__init__.py new/yq-3.2.1/yq/__init__.py --- old/yq-3.1.1/yq/__init__.py 2023-02-22 06:19:50.000000000 +0100 +++ new/yq-3.2.1/yq/__init__.py 2023-04-05 03:34:39.000000000 +0200 @@ -246,9 +246,9 @@ json.dump(doc, json_buffer, cls=JSONDateTimeEncoder) json_buffer.write("\n") elif input_format == "toml": - import toml + import tomlkit - doc = toml.load(input_stream) # type: ignore + doc = tomlkit.load(input_stream) # type: ignore json.dump(doc, json_buffer, cls=JSONDateTimeEncoder) json_buffer.write("\n") else: @@ -295,13 +295,13 @@ raise output_stream.write(b"\n" if sys.version_info < (3, 0) else "\n") elif output_format == "toml": - import toml + import tomlkit for doc in decode_docs(jq_out, json_decoder): if not isinstance(doc, dict): msg = "{}: Error converting JSON to TOML: cannot represent non-object types at top level." exit_func(msg.format(program_name)) - toml.dump(doc, output_stream) + tomlkit.dump(doc, output_stream) else: if input_format == "yaml": loader_class = get_loader( @@ -327,10 +327,10 @@ ) jq.stdin.write("\n") # type: ignore elif input_format == "toml": - import toml + import tomlkit for input_stream in input_streams: - json.dump(toml.load(input_stream), jq.stdin, cls=JSONDateTimeEncoder) # type: ignore + json.dump(tomlkit.load(input_stream), jq.stdin, cls=JSONDateTimeEncoder) # type: ignore jq.stdin.write("\n") # type: ignore else: raise Exception("Unknown input format") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.1.1/yq/version.py new/yq-3.2.1/yq/version.py --- old/yq-3.1.1/yq/version.py 2023-02-22 06:27:05.000000000 +0100 +++ new/yq-3.2.1/yq/version.py 2023-04-05 03:36:45.000000000 +0200 @@ -1,4 +1,4 @@ # file generated by setuptools_scm # don't change, don't track in version control -__version__ = version = '3.1.1' -__version_tuple__ = version_tuple = (3, 1, 1) +__version__ = version = '3.2.1' +__version_tuple__ = version_tuple = (3, 2, 1) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.1.1/yq.egg-info/PKG-INFO new/yq-3.2.1/yq.egg-info/PKG-INFO --- old/yq-3.1.1/yq.egg-info/PKG-INFO 2023-02-22 06:27:05.000000000 +0100 +++ new/yq-3.2.1/yq.egg-info/PKG-INFO 2023-04-05 03:36:45.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: yq -Version: 3.1.1 +Version: 3.2.1 Summary: Command-line YAML/XML processor - jq wrapper for YAML/XML documents Home-page: https://github.com/kislyuk/yq Author: Andrey Kislyuk @@ -12,11 +12,11 @@ Classifier: Operating System :: POSIX Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 Classifier: Topic :: Software Development :: Libraries :: Python Modules Requires-Python: >=3.6 Provides-Extra: tests @@ -58,10 +58,14 @@ yq -Y .foo.bar input.yml -Use the ``--width``/``-w`` option to pass the line wrap width for string literals. With ``-y/-Y``, files can be edited -in place like with ``sed -i``: ``yq -yi .foo=1 *.yml``. All other command line arguments are forwarded to ``jq``. ``yq`` -forwards the exit code ``jq`` produced, unless there was an error in YAML parsing, in which case the exit code is 1. -See the `jq manual <https://stedolan.github.io/jq/manual/>`_ for more details on ``jq`` features and options. +yq can be called as a module if needed. With ``-y/-Y``, files can be edited in place like with ``sed -i``:: + + python -m yq -Y --indentless --in-place '.["current-context"] = "staging-cluster"' ~/.kube/config + +Use the ``--width``/``-w`` option to pass the line wrap width for string literals. All other command line arguments are +forwarded to ``jq``. ``yq`` forwards the exit code ``jq`` produced, unless there was an error in YAML parsing, in which +case the exit code is 1. See the `jq manual <https://stedolan.github.io/jq/manual/>`_ for more details on ``jq`` +features and options. Because YAML treats JSON as a dialect of YAML, you can use yq to convert JSON to YAML: ``yq -y . < in.json > out.yml``. @@ -133,8 +137,8 @@ TOML support ------------ ``yq`` supports `TOML <https://toml.io/>`_ as well. The ``yq`` package installs an executable, ``tomlq``, which uses the -`toml library <https://github.com/uiri/toml>`_ to transcode TOML to JSON, then pipes it to ``jq``. Roundtrip transcoding -is available with the ``tomlq --toml-output``/``tomlq -t`` option. +`tomlkit library <https://github.com/sdispater/tomlkit>`_ to transcode TOML to JSON, then pipes it to ``jq``. Roundtrip +transcoding is available with the ``tomlq --toml-output``/``tomlq -t`` option. .. admonition:: Compatibility note diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.1.1/yq.egg-info/SOURCES.txt new/yq-3.2.1/yq.egg-info/SOURCES.txt --- old/yq-3.1.1/yq.egg-info/SOURCES.txt 2023-02-22 06:27:05.000000000 +0100 +++ new/yq-3.2.1/yq.egg-info/SOURCES.txt 2023-04-05 03:36:45.000000000 +0200 @@ -4,9 +4,9 @@ MANIFEST.in Makefile README.rst +SECURITY.md common.mk pyproject.toml -setup.cfg setup.py .github/FUNDING.yml .github/workflows/ci.yml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.1.1/yq.egg-info/requires.txt new/yq-3.2.1/yq.egg-info/requires.txt --- old/yq-3.1.1/yq.egg-info/requires.txt 2023-02-22 06:27:05.000000000 +0100 +++ new/yq-3.2.1/yq.egg-info/requires.txt 2023-04-05 03:36:45.000000000 +0200 @@ -1,11 +1,11 @@ PyYAML>=5.3.1 xmltodict>=0.11.0 -toml>=0.10.0 +tomlkit>=0.11.6 argcomplete>=1.8.1 [tests] coverage -flake8 wheel build +ruff mypy