From 236302aac694377916670b7769f941e3f1dd0bbc Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Thu, 26 Jan 2023 19:56:43 +0000 Subject: gentoo auto-resync : 26:01:2023 - 19:56:42 --- app-misc/yq/Manifest | 3 +- app-misc/yq/files/yq-3.1.0-tomli.patch | 94 ++++++++++++++++++++++++++++++++++ app-misc/yq/yq-3.1.0-r1.ebuild | 59 +++++++++++++++++++++ app-misc/yq/yq-3.1.0.ebuild | 50 ------------------ 4 files changed, 155 insertions(+), 51 deletions(-) create mode 100644 app-misc/yq/files/yq-3.1.0-tomli.patch create mode 100644 app-misc/yq/yq-3.1.0-r1.ebuild delete mode 100644 app-misc/yq/yq-3.1.0.ebuild (limited to 'app-misc/yq') diff --git a/app-misc/yq/Manifest b/app-misc/yq/Manifest index 42a1ec4be868..45ee272c6e86 100644 --- a/app-misc/yq/Manifest +++ b/app-misc/yq/Manifest @@ -1,4 +1,5 @@ AUX yq-2.13.0-tests.patch 746 BLAKE2B 0d769a32a3e80cdc8a49e0f3575ab9da880bb0a916a564261874e6a8775b35c5570e99fad5a902bdf9bbdf5a6bb080a7bf57324aad461fb1ca7d9de4da787808 SHA512 e6bd60877d628e2fac51d5395b03f96a0cf7a5033c72a676dee8fe353425f6cc7ee585404567778d7765459ded0f7f71b6563e2343de9d520b8cde493012af01 +AUX yq-3.1.0-tomli.patch 4426 BLAKE2B ae6b056a2d7c1a5c0603a5fa8c49face53c1b04ab46ef58c6960c8356c16e4f5a085b980031df5623ee6598c964b75b87700f79ace37a2b14760be3133994a5c SHA512 c6c73f03710db12e3b52ebd2d1f8d36e5cb610b57af73b86d15440823dd2b8be8ad13cc3337476efb2972122a626e65857cd67c964586664bc452bd6b98e968a DIST yq-3.1.0.tar.gz 29627 BLAKE2B 9ebeec400462788613b256a29c9706f4d6a06ced8a86b72ce6128cea6bdf258a62ff18b643cea00d5170f68af798d28af324b3908fc3fdea83329bc5feaa5539 SHA512 bb55a9fde5c072d2341faacd76c54d7374fcc70789ddae4d06e36fd48d7ebd6462c8bff13042c39c3fedf191d70752fa2f94af3c69f52f754bca83c3f1f89004 -EBUILD yq-3.1.0.ebuild 1181 BLAKE2B 9ef937bfb82a7ea017c4ee067fd56b779372003045cad9360f43a48dd8ba0ea749ec9861a8e7ccbc8641e6c764d74310ceeeb66c28f10ac84613c85ffa7667d3 SHA512 73547c8667e68c0cee6411dac892fbfe68921b2b67742c1ca9c710dcf9a910f348b8063e6c7fb87a4c9944e37c12b5b4e3519176ea2772056f77c1bbd39df63d +EBUILD yq-3.1.0-r1.ebuild 1261 BLAKE2B 32ef3212f204d208bb62a2b6f219066d1b1418e6a3e07f0655c8f7747040d4092ec6076bd83db09793469170a4115b1666b7d3e29ebf72f873484024d8a666f3 SHA512 87057325350c7ae4ae0fdfb7f41339ca79fe3842c24f4617746dd93813f2e2dea7536b4c411cbe96893d5fc2b131b188088ea4913d2bd3d0f29d6afc8bda861f MISC metadata.xml 444 BLAKE2B 43250e8368905e7c7613ef6d9555abe4ee58c5d88f1d94dc2fc6d26c99cc71e0253ed830e82356a7cae131c0d8d70397da5e5c6fac41a11a4ed5f18879a4aaba SHA512 f14ad6182b3a82311473ff28308f9f435c2a9ecbf2f1fae996f82366d7547421923c2cebfe255574c3bc57b3d3774ed19bd896b6dda5be1d919d372e1428a143 diff --git a/app-misc/yq/files/yq-3.1.0-tomli.patch b/app-misc/yq/files/yq-3.1.0-tomli.patch new file mode 100644 index 000000000000..ad6d8a1d7e7d --- /dev/null +++ b/app-misc/yq/files/yq-3.1.0-tomli.patch @@ -0,0 +1,94 @@ +From 425ebfb12908c0d5f72f5a4eec06a235e8bbd54b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= +Date: Sun, 23 Oct 2022 11:38:58 +0200 +Subject: [PATCH] Use tomllib/tomli/tomli-w instead of unmaintained toml + package + +Replace the use of the unmaintained `toml` package with the modern +trinity: built-in `tomllib` module for reading TOML in Python 3.11+, +`tomli` for reading TOML in older Python versions and `tomli-w` for +writing TOML in all Python versions. This ensures correct TOML 1.0 +support that the old `toml` package lacks. +--- + README.rst | 4 +++- + setup.py | 3 ++- + yq/__init__.py | 18 ++++++++++++------ + 3 files changed, 17 insertions(+), 8 deletions(-) + +diff --git a/README.rst b/README.rst +index 69d77e1..237b89e 100644 +--- a/README.rst ++++ b/README.rst +@@ -109,7 +109,9 @@ the ``xq --xml-output``/``xq -x`` option. Multiple XML documents can be passed i + TOML support + ------------ + ``yq`` supports `TOML `_ as well. The ``yq`` package installs an executable, ``tomlq``, which uses the +-`toml library `_ to transcode TOML to JSON, then pipes it to ``jq``. Roundtrip transcoding ++`tomllib module ` or `tomli library ++`_ to transcode TOML to JSON, then pipes it to ``jq``. Transcoding to TOML uses the ++`tomli-w = 5.3.1", + "xmltodict >= 0.11.0", +- "toml >= 0.10.0", ++ "tomli >= 1.2.3; python_version < '3.11'", ++ "tomli-w", + "argcomplete >= 1.8.1" + ], + extras_require={ +diff --git a/yq/__init__.py b/yq/__init__.py +index 1043ff7..dd89408 100755 +--- a/yq/__init__.py ++++ b/yq/__init__.py +@@ -201,8 +201,11 @@ def yq(input_streams=None, output_stream=None, input_format="yaml", output_forma + json.dump(doc, json_buffer, cls=JSONDateTimeEncoder) + json_buffer.write("\n") + elif input_format == "toml": +- import toml +- doc = toml.load(input_stream) ++ if sys.version_info >= (3, 11): ++ import tomllib ++ else: ++ import tomli as tomllib ++ doc = tomllib.loads(input_stream.read()) + json.dump(doc, json_buffer, cls=JSONDateTimeEncoder) + json_buffer.write("\n") + else: +@@ -235,12 +238,12 @@ def yq(input_streams=None, output_stream=None, input_format="yaml", output_forma + raise + output_stream.write(b"\n" if sys.version_info < (3, 0) else "\n") + elif output_format == "toml": +- import toml ++ import tomli_w + 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) ++ output_stream.write(tomli_w.dumps(doc)) + else: + if input_format == "yaml": + loader_class = get_loader(use_annotations=False, expand_aliases=expand_aliases, +@@ -255,9 +258,12 @@ def yq(input_streams=None, output_stream=None, input_format="yaml", output_forma + force_list=xml_force_list), jq.stdin) + jq.stdin.write("\n") + elif input_format == "toml": +- import toml ++ if sys.version_info >= (3, 11): ++ import tomllib ++ else: ++ import tomli as tomllib + for input_stream in input_streams: +- json.dump(toml.load(input_stream), jq.stdin) ++ json.dump(tomllib.loads(input_stream.read()), jq.stdin) + jq.stdin.write("\n") + else: + raise Exception("Unknown input format") diff --git a/app-misc/yq/yq-3.1.0-r1.ebuild b/app-misc/yq/yq-3.1.0-r1.ebuild new file mode 100644 index 000000000000..d40930f5ff57 --- /dev/null +++ b/app-misc/yq/yq-3.1.0-r1.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} pypy3 ) + +inherit distutils-r1 + +DESCRIPTION="Command-line YAML processor - jq wrapper for YAML documents" +HOMEPAGE=" + https://yq.readthedocs.io/ + https://github.com/kislyuk/yq/ + https://pypi.org/project/yq/ +" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + app-misc/jq + dev-python/argcomplete[${PYTHON_USEDEP}] + >=dev-python/pyyaml-5.3.1[${PYTHON_USEDEP}] + dev-python/xmltodict[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + dev-python/tomli[${PYTHON_USEDEP}] + ' 3.{8..10}) +" +DEPEND=" + ${RDEPEND} + test? ( + dev-python/wheel[${PYTHON_USEDEP}] + ) +" + +PATCHES=( + "${FILESDIR}/yq-2.13.0-tests.patch" + "${FILESDIR}/${P}-tomli.patch" +) + +python_prepare_all() { + sed -e 's:unittest.main():unittest.main(verbosity=2):' \ + -i test/test.py || die + + sed -r -e 's:[[:space:]]*"coverage",:: ; s:[[:space:]]*"flake8",::' \ + -i setup.py || die + + sed -e '/license_file/ d' -i setup.cfg || die + + distutils-r1_python_prepare_all +} + +python_test() { + "${EPYTHON}" test/test.py