summaryrefslogtreecommitdiff
path: root/app-misc/yq
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-02-23 09:44:00 +0000
committerV3n3RiX <venerix@koprulu.sector>2023-02-23 09:44:00 +0000
commit8d15cb8238a384acdb70250a0cd213f2ab5f0ab6 (patch)
tree547dd4d959be6b14e702d37e94063dc2104319a5 /app-misc/yq
parent71fb24e4cc15fe73651423df81c5e6a79fa8c142 (diff)
gentoo auto-resync : 23:02:2023 - 09:44:00
Diffstat (limited to 'app-misc/yq')
-rw-r--r--app-misc/yq/Manifest3
-rw-r--r--app-misc/yq/files/yq-3.1.1-tomli.patch80
-rw-r--r--app-misc/yq/yq-3.1.1.ebuild59
3 files changed, 142 insertions, 0 deletions
diff --git a/app-misc/yq/Manifest b/app-misc/yq/Manifest
index 45ee272c6e86..0f77cf312c50 100644
--- a/app-misc/yq/Manifest
+++ b/app-misc/yq/Manifest
@@ -1,5 +1,8 @@
AUX yq-2.13.0-tests.patch 746 BLAKE2B 0d769a32a3e80cdc8a49e0f3575ab9da880bb0a916a564261874e6a8775b35c5570e99fad5a902bdf9bbdf5a6bb080a7bf57324aad461fb1ca7d9de4da787808 SHA512 e6bd60877d628e2fac51d5395b03f96a0cf7a5033c72a676dee8fe353425f6cc7ee585404567778d7765459ded0f7f71b6563e2343de9d520b8cde493012af01
AUX yq-3.1.0-tomli.patch 4426 BLAKE2B ae6b056a2d7c1a5c0603a5fa8c49face53c1b04ab46ef58c6960c8356c16e4f5a085b980031df5623ee6598c964b75b87700f79ace37a2b14760be3133994a5c SHA512 c6c73f03710db12e3b52ebd2d1f8d36e5cb610b57af73b86d15440823dd2b8be8ad13cc3337476efb2972122a626e65857cd67c964586664bc452bd6b98e968a
+AUX yq-3.1.1-tomli.patch 3537 BLAKE2B 672b7cb6d9418197bd0163fef51f0e141e59bcd9d7529cbe0aee3c10c13196116fdfcbd1c964ba8deae2cb357d0a634a4061d85dc14bec7cb28c6031e15da9f3 SHA512 bc98a46e112145e44d5c480cd22d9ebd7369a6f0208126242acc188ef1574c60ca446b237b26fdde4130e7fedf3a5c73a4f24498c56dc788dc5cee0fe22b4d0f
DIST yq-3.1.0.tar.gz 29627 BLAKE2B 9ebeec400462788613b256a29c9706f4d6a06ced8a86b72ce6128cea6bdf258a62ff18b643cea00d5170f68af798d28af324b3908fc3fdea83329bc5feaa5539 SHA512 bb55a9fde5c072d2341faacd76c54d7374fcc70789ddae4d06e36fd48d7ebd6462c8bff13042c39c3fedf191d70752fa2f94af3c69f52f754bca83c3f1f89004
+DIST yq-3.1.1.tar.gz 30095 BLAKE2B 0f8ed3d23e1c1b65fae0164f34b19ab774308ee8ec9b5c21547c5eddf930c49750cdbee858b6b48bcd92d4146715f7e4c45dd976141dc5837c788e4ae68a51bc SHA512 f6d372fd406179121849330391ab5657e9bac3b6fb4d33673872d4649337fd60344fe01c534d1382cc35416919cd19b62287350d1f0f825f198fb9cc9bc58c1f
EBUILD yq-3.1.0-r1.ebuild 1261 BLAKE2B 32ef3212f204d208bb62a2b6f219066d1b1418e6a3e07f0655c8f7747040d4092ec6076bd83db09793469170a4115b1666b7d3e29ebf72f873484024d8a666f3 SHA512 87057325350c7ae4ae0fdfb7f41339ca79fe3842c24f4617746dd93813f2e2dea7536b4c411cbe96893d5fc2b131b188088ea4913d2bd3d0f29d6afc8bda861f
+EBUILD yq-3.1.1.ebuild 1250 BLAKE2B a50bec1186b565e8809c0f8e122520141b1165c15f32d79eb7f72771871579a6bca79f8f0ef52900fc6e3b8809b6e12c4381b0121f9ce855fa5429d9f785e39e SHA512 95cd466a5dd4feddc48954fef07fad34d5fc4afab9d7e097e54cdf3d8cc023069f814c891fad2bb7d939be07395394731dbcbc95b0f52d0f47a028048c73efb4
MISC metadata.xml 444 BLAKE2B 43250e8368905e7c7613ef6d9555abe4ee58c5d88f1d94dc2fc6d26c99cc71e0253ed830e82356a7cae131c0d8d70397da5e5c6fac41a11a4ed5f18879a4aaba SHA512 f14ad6182b3a82311473ff28308f9f435c2a9ecbf2f1fae996f82366d7547421923c2cebfe255574c3bc57b3d3774ed19bd896b6dda5be1d919d372e1428a143
diff --git a/app-misc/yq/files/yq-3.1.1-tomli.patch b/app-misc/yq/files/yq-3.1.1-tomli.patch
new file mode 100644
index 000000000000..b4ef5ef3dfb9
--- /dev/null
+++ b/app-misc/yq/files/yq-3.1.1-tomli.patch
@@ -0,0 +1,80 @@
+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 <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
++`tomllib module <https://docs.python.org/3.11/library/tomllib.html>` or `tomli library
++<https://github.com/hukkin/tomli>`_ to transcode TOML to JSON, then pipes it to ``jq``. Transcoding to TOML uses the
++`tomli-w <https://github.com/hukkin/toml-w`_ package. Roundtrip transcoding
+ is available with the ``tomlq --toml-output``/``tomlq -t`` option.
+
+ .. admonition:: Compatibility note
+diff --git a/setup.py b/setup.py
+index 9de217e..7d34f8c 100755
+--- a/setup.py
++++ b/setup.py
+@@ -19,7 +19,8 @@ setup(
+ install_requires=[
+ "PyYAML >= 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 0ccb8e8..88da1d7 100644
+--- a/yq/__init__.py
++++ b/yq/__init__.py
+@@ -246,9 +246,12 @@ def yq(
+ json.dump(doc, json_buffer, cls=JSONDateTimeEncoder)
+ json_buffer.write("\n")
+ elif input_format == "toml":
+- import toml
++ if sys.version_info >= (3, 11):
++ import tomllib
++ else:
++ import tomli as tomllib
+
+- doc = toml.load(input_stream) # type: ignore
++ doc = tomllib.loads(input_stream.read()) # type: ignore
+ json.dump(doc, json_buffer, cls=JSONDateTimeEncoder)
+ json_buffer.write("\n")
+ else:
+@@ -295,13 +298,13 @@ def yq(
+ 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(
+@@ -327,10 +330,13 @@ def yq(
+ )
+ jq.stdin.write("\n") # type: ignore
+ 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, cls=JSONDateTimeEncoder) # type: ignore
++ json.dump(tomllib.loads(input_stream.read()), jq.stdin, cls=JSONDateTimeEncoder) # type: ignore
+ jq.stdin.write("\n") # type: ignore
+ else:
+ raise Exception("Unknown input format")
diff --git a/app-misc/yq/yq-3.1.1.ebuild b/app-misc/yq/yq-3.1.1.ebuild
new file mode 100644
index 000000000000..93a72bf0f774
--- /dev/null
+++ b/app-misc/yq/yq-3.1.1.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 )
+DISTUTILS_USE_PEP517=setuptools
+
+inherit pypi 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/
+"
+
+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}/yq-3.1.1-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 </dev/null || die "tests failed under ${EPYTHON}"
+}