From 248128dfaabb33e922b1e36a298fd7ec0c730069 Mon Sep 17 00:00:00 2001 From: stonebig Date: Sat, 11 May 2019 14:19:20 +0200 Subject: [PATCH 1/2] Python-3.8 PEP570 positional only argument --- IPython/core/interactiveshell.py | 54 ++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 17 deletions(-) diff --git a/IPython/core/interactiveshell.py b/IPython/core/interactiveshell.py index ce8ceb196c..8cc89e4192 100644 --- a/IPython/core/interactiveshell.py +++ b/IPython/core/interactiveshell.py @@ -138,23 +138,43 @@ def removed_co_newlocals(function:types.FunctionType) -> types.FunctionType: from types import CodeType, FunctionType CO_NEWLOCALS = 0x0002 code = function.__code__ - new_code = CodeType( - code.co_argcount, - code.co_kwonlyargcount, - code.co_nlocals, - code.co_stacksize, - code.co_flags & ~CO_NEWLOCALS, - code.co_code, - code.co_consts, - code.co_names, - code.co_varnames, - code.co_filename, - code.co_name, - code.co_firstlineno, - code.co_lnotab, - code.co_freevars, - code.co_cellvars - ) + if sys.version_info > (3,8): + new_code = CodeType( + code.co_argcount, + code.co_posonlyargcount, # Python-3.8 PEP570 positional only argument + code.co_kwonlyargcount, + code.co_nlocals, + code.co_stacksize, + code.co_flags & ~CO_NEWLOCALS, + code.co_code, + code.co_consts, + code.co_names, + code.co_varnames, + code.co_filename, + code.co_name, + code.co_firstlineno, + code.co_lnotab, + code.co_freevars, + code.co_cellvars + ) + else: + new_code = CodeType( + code.co_argcount, + code.co_kwonlyargcount, + code.co_nlocals, + code.co_stacksize, + code.co_flags & ~CO_NEWLOCALS, + code.co_code, + code.co_consts, + code.co_names, + code.co_varnames, + code.co_filename, + code.co_name, + code.co_firstlineno, + code.co_lnotab, + code.co_freevars, + code.co_cellvars + ) return FunctionType(new_code, globals(), function.__name__, function.__defaults__) From 3b160421894ef3495781a6d76fe0edd0fe44ea2d Mon Sep 17 00:00:00 2001 From: stonebig Date: Sat, 11 May 2019 14:31:54 +0200 Subject: [PATCH 2/2] be more precise : >3.8.0a3 --- IPython/core/interactiveshell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IPython/core/interactiveshell.py b/IPython/core/interactiveshell.py index 8cc89e4192..c102b2352d 100644 --- a/IPython/core/interactiveshell.py +++ b/IPython/core/interactiveshell.py @@ -138,7 +138,7 @@ def removed_co_newlocals(function:types.FunctionType) -> types.FunctionType: from types import CodeType, FunctionType CO_NEWLOCALS = 0x0002 code = function.__code__ - if sys.version_info > (3,8): + if sys.version_info > (3, 8, 0, 'alpha', 3): new_code = CodeType( code.co_argcount, code.co_posonlyargcount, # Python-3.8 PEP570 positional only argument