summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2021-06-21 11:56:17 +0200
committerMichał Górny <mgorny@gentoo.org>2021-06-21 12:00:22 +0200
commite238a834faa392a28291189b9a72b6d325b0685e (patch)
tree994ce00ba4e63bed51a22cae7ee4352c5c24f48f /dev-python/astunparse
parentapp-backup/borgmatic: add 1.5.15 (diff)
downloadgentoo-e238a834faa392a28291189b9a72b6d325b0685e.tar.gz
gentoo-e238a834faa392a28291189b9a72b6d325b0685e.tar.bz2
gentoo-e238a834faa392a28291189b9a72b6d325b0685e.zip
dev-python/astunparse: Enable py3.9 & py3.10
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'dev-python/astunparse')
-rw-r--r--dev-python/astunparse/astunparse-1.6.3.ebuild6
-rw-r--r--dev-python/astunparse/files/astunparse-1.6.3-py39.patch74
2 files changed, 78 insertions, 2 deletions
diff --git a/dev-python/astunparse/astunparse-1.6.3.ebuild b/dev-python/astunparse/astunparse-1.6.3.ebuild
index 4f9d5b0158f7..0339e4a52d90 100644
--- a/dev-python/astunparse/astunparse-1.6.3.ebuild
+++ b/dev-python/astunparse/astunparse-1.6.3.ebuild
@@ -1,9 +1,9 @@
-# Copyright 2020 Gentoo Authors
+# Copyright 2020-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-PYTHON_COMPAT=( python3_{7,8} )
+PYTHON_COMPAT=( python3_{8..10} )
inherit distutils-r1
DESCRIPTION="Astun parser for python"
@@ -20,6 +20,8 @@ RDEPEND="
"
PATCHES=(
"${FILESDIR}/astunparse-1.6.2-tests.patch"
+ # from Fedora
+ "${FILESDIR}/${P}-py39.patch"
)
distutils_enable_tests setup.py
diff --git a/dev-python/astunparse/files/astunparse-1.6.3-py39.patch b/dev-python/astunparse/files/astunparse-1.6.3-py39.patch
new file mode 100644
index 000000000000..ab8116a559ac
--- /dev/null
+++ b/dev-python/astunparse/files/astunparse-1.6.3-py39.patch
@@ -0,0 +1,74 @@
+From 0388a0d2f42401dcedf7f89d3c291cfed3e4a3d5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
+Date: Wed, 8 Jul 2020 20:15:57 +0200
+Subject: [PATCH 1/2] Adapt dump() behavior to match ast.dump() on Python 3.9+
+
+In Python 3.9+, ast.dump() omits optional fields/attributes from the output if
+their value is None. Such defaults are defined as class attributes.
+
+See https://bugs.python.org/issue36287
+And https://github.com/python/cpython/pull/18843
+
+This patch does not change the output on previous Python versions,
+because the class attributes are missing there.
+
+Fixes https://github.com/simonpercivall/astunparse/issues/56
+---
+ lib/astunparse/printer.py | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/lib/astunparse/printer.py b/lib/astunparse/printer.py
+index 92d64f7..7a33deb 100644
+--- a/lib/astunparse/printer.py
++++ b/lib/astunparse/printer.py
+@@ -4,6 +4,9 @@
+ import six
+
+
++_NOPE = object()
++
++
+ class Printer(ast.NodeVisitor):
+
+ def __init__(self, file=sys.stdout, indent=" "):
+@@ -19,6 +22,7 @@ def write(self, text):
+ self.f.write(six.text_type(text))
+
+ def generic_visit(self, node):
++ cls = type(node)
+
+ if isinstance(node, list):
+ nodestart = "["
+@@ -27,7 +31,8 @@ def generic_visit(self, node):
+ else:
+ nodestart = type(node).__name__ + "("
+ nodeend = ")"
+- children = [(name + "=", value) for name, value in ast.iter_fields(node)]
++ children = [(name + "=", value) for name, value in ast.iter_fields(node)
++ if not (value is None and getattr(cls, name, _NOPE) is None)]
+
+ if len(children) > 1:
+ self.indentation += 1
+
+From ea2b578a1b653e73696db2392b8e3d5bf75dadc7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
+Date: Wed, 8 Jul 2020 20:21:17 +0200
+Subject: [PATCH 2/2] Test and support Python 3.9
+
+---
+ setup.py | 1 +
+ tox.ini | 2 +-
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index e5a277a..29b384b 100755
+--- a/setup.py
++++ b/setup.py
+@@ -52,6 +52,7 @@ def read_version():
+ 'Programming Language :: Python :: 3.6',
+ 'Programming Language :: Python :: 3.7',
+ 'Programming Language :: Python :: 3.8',
++ 'Programming Language :: Python :: 3.9',
+ 'Topic :: Software Development :: Code Generators',
+ ],
+ test_suite='tests',