diff options
| author | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2025-03-12 18:54:51 +0000 |
|---|---|---|
| committer | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2025-03-12 18:54:51 +0000 |
| commit | 3f2a29a383c5af70156ff2431e837cae35435362 (patch) | |
| tree | 82b322eebd41ad4127594a76b250d7eb397e0457 /dev-python/dill | |
| parent | 39a45434e4c1f3e22d2f2d2d8d25314eeb141294 (diff) | |
| download | baldeagleos-repo-3f2a29a383c5af70156ff2431e837cae35435362.tar.gz baldeagleos-repo-3f2a29a383c5af70156ff2431e837cae35435362.tar.xz baldeagleos-repo-3f2a29a383c5af70156ff2431e837cae35435362.zip | |
Adding metadata
Diffstat (limited to 'dev-python/dill')
| -rw-r--r-- | dev-python/dill/dill-0.3.9.ebuild | 8 | ||||
| -rw-r--r-- | dev-python/dill/files/dill-0.3.9-pypy311.patch | 123 |
2 files changed, 130 insertions, 1 deletions
diff --git a/dev-python/dill/dill-0.3.9.ebuild b/dev-python/dill/dill-0.3.9.ebuild index c6d0eb3d6287..ee837b8dbf42 100644 --- a/dev-python/dill/dill-0.3.9.ebuild +++ b/dev-python/dill/dill-0.3.9.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -18,6 +18,12 @@ LICENSE="BSD" SLOT="0" KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux" +PATCHES=( + # https://github.com/uqfoundation/dill/pull/707 + # https://github.com/uqfoundation/dill/pull/701 + "${FILESDIR}/${P}-pypy311.patch" +) + python_test() { "${EPYTHON}" -m dill.tests || die } diff --git a/dev-python/dill/files/dill-0.3.9-pypy311.patch b/dev-python/dill/files/dill-0.3.9-pypy311.patch new file mode 100644 index 000000000000..8f73f1264a25 --- /dev/null +++ b/dev-python/dill/files/dill-0.3.9-pypy311.patch @@ -0,0 +1,123 @@ +From 599265e0a0cec406e245808105b63987077f53f2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Wed, 12 Mar 2025 03:41:39 +0100 +Subject: [PATCH] fix CodeType support for PyPy3.11 7.3.19+ (#707) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Add support for the variation of `types.CodeType` used in PyPy3.11 +7.3.19 and newer. It introduces `co_qualname` in addition +to the previous members — but it does not feature `co_exceptiontable` +like CPython 3.11. I've named the version `(3,11,'p')` for PyPy. + +Fixes #706 +--- + dill/_dill.py | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) + +diff --git a/dill/_dill.py b/dill/_dill.py +index 152899f1..aec297c4 100644 +--- a/dill/_dill.py ++++ b/dill/_dill.py +@@ -665,6 +665,7 @@ def __getattr__(self, item): + # Version New attribute CodeType parameters + ((3,11,'a'), 'co_endlinetable', 'argcount posonlyargcount kwonlyargcount nlocals stacksize flags code consts names varnames filename name qualname firstlineno linetable endlinetable columntable exceptiontable freevars cellvars'), + ((3,11), 'co_exceptiontable', 'argcount posonlyargcount kwonlyargcount nlocals stacksize flags code consts names varnames filename name qualname firstlineno linetable exceptiontable freevars cellvars'), ++ ((3,11,'p'), 'co_qualname', 'argcount posonlyargcount kwonlyargcount nlocals stacksize flags code consts names varnames filename name qualname firstlineno linetable freevars cellvars'), + ((3,10), 'co_linetable', 'argcount posonlyargcount kwonlyargcount nlocals stacksize flags code consts names varnames filename name firstlineno linetable freevars cellvars'), + ((3,8), 'co_posonlyargcount', 'argcount posonlyargcount kwonlyargcount nlocals stacksize flags code consts names varnames filename name firstlineno lnotab freevars cellvars'), + ((3,7), 'co_kwonlyargcount', 'argcount kwonlyargcount nlocals stacksize flags code consts names varnames filename name firstlineno lnotab freevars cellvars'), +@@ -701,6 +702,22 @@ def _create_code(*args): + args[17], + ) + fields = m.fields ++ # PyPy 3.11 7.3.19+ (17 members) ++ elif m.case(( ++ 'argcount', 'posonlyargcount', 'kwonlyargcount', 'nlocals', 'stacksize', 'flags', # args[0:6] ++ 'code', 'consts', 'names', 'varnames', 'filename', 'name', 'qualname', # args[6:13] ++ 'firstlineno', 'linetable', 'freevars', 'cellvars' # args[13:] ++ )): ++ if CODE_VERSION == (3,11,'p'): ++ return CodeType( ++ *args[:6], ++ args[6].encode() if hasattr(args[6], 'encode') else args[6], # code ++ *args[7:14], ++ args[14].encode() if hasattr(args[14], 'encode') else args[14], # linetable ++ args[15], ++ args[16], ++ ) ++ fields = m.fields + # Python 3.10 or 3.8/3.9 (16 members) + elif m.case(( + 'argcount', 'posonlyargcount', 'kwonlyargcount', 'nlocals', 'stacksize', 'flags', # args[0:6] +@@ -1175,6 +1192,15 @@ def save_code(pickler, obj): + obj.co_firstlineno, obj.co_linetable, obj.co_exceptiontable, + obj.co_freevars, obj.co_cellvars + ) ++ elif hasattr(obj, "co_qualname"): # pypy 3.11 7.3.19+ (17 args) ++ args = ( ++ obj.co_lnotab, obj.co_argcount, obj.co_posonlyargcount, ++ obj.co_kwonlyargcount, obj.co_nlocals, obj.co_stacksize, ++ obj.co_flags, obj.co_code, obj.co_consts, obj.co_names, ++ obj.co_varnames, obj.co_filename, obj.co_name, obj.co_qualname, ++ obj.co_firstlineno, obj.co_linetable, obj.co_freevars, ++ obj.co_cellvars ++ ) + elif hasattr(obj, "co_linetable"): # python 3.10 (16 args) + args = ( + obj.co_lnotab, # for < python 3.10 [not counted in args] + +From a3d129f9c8aceb856a7e50277af4b7fef6ab9202 Mon Sep 17 00:00:00 2001 +From: Mike McKerns <mmckerns@caltech.edu> +Date: Mon, 17 Feb 2025 00:06:31 -0500 +Subject: [PATCH] support pypy-3.11 (#701) + +--- + dill/_dill.py | 2 +- + dill/_objects.py | 2 +- + dill/detect.py | 5 ++++- + 3 files changed, 6 insertions(+), 3 deletions(-) + +diff --git a/dill/_dill.py b/dill/_dill.py +index 987b96b..152899f 100644 +--- a/dill/_dill.py ++++ b/dill/_dill.py +@@ -571,7 +571,7 @@ if sys.hexversion >= 0x30a00a0: + _incedental_reverse_typemap['LineIteratorType'] = type(compile('3', '', 'eval').co_lines()) + ''' + +-if sys.hexversion >= 0x30b00b0: ++if sys.hexversion >= 0x30b00b0 and not IS_PYPY: + from types import GenericAlias + _incedental_reverse_typemap["GenericAliasIteratorType"] = type(iter(GenericAlias(list, (int,)))) + ''' +diff --git a/dill/_objects.py b/dill/_objects.py +index 500322f..a37cd79 100644 +--- a/dill/_objects.py ++++ b/dill/_objects.py +@@ -402,7 +402,7 @@ except ImportError: + if sys.hexversion >= 0x30a00a0 and not IS_PYPY: + x['LineIteratorType'] = compile('3', '', 'eval').co_lines() + +-if sys.hexversion >= 0x30b00b0: ++if sys.hexversion >= 0x30b00b0 and not IS_PYPY: + from types import GenericAlias + d["GenericAliasIteratorType"] = iter(GenericAlias(list, (int,))) + x['PositionsIteratorType'] = compile('3', '', 'eval').co_positions() +diff --git a/dill/detect.py b/dill/detect.py +index 1f8ae3d..2f0bea1 100644 +--- a/dill/detect.py ++++ b/dill/detect.py +@@ -145,7 +145,10 @@ def nestedglobals(func, recurse=True): + CAN_NULL = sys.hexversion >= 0x30b00a7 # NULL may be prepended >= 3.11a7 + names = set() + with capture('stdout') as out: +- dis.dis(func) #XXX: dis.dis(None) disassembles last traceback ++ try: ++ dis.dis(func) #XXX: dis.dis(None) disassembles last traceback ++ except IndexError: ++ pass #FIXME: HACK for IS_PYPY (3.11) + for line in out.getvalue().splitlines(): + if '_GLOBAL' in line: + name = line.split('(')[-1].split(')')[0] |
