Skip to content

Commit 248128d

Browse files
authored
Python-3.8 PEP570 positional only argument
1 parent 380db0d commit 248128d

1 file changed

Lines changed: 37 additions & 17 deletions

File tree

IPython/core/interactiveshell.py

Lines changed: 37 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -138,23 +138,43 @@ def removed_co_newlocals(function:types.FunctionType) -> types.FunctionType:
138138
from types import CodeType, FunctionType
139139
CO_NEWLOCALS = 0x0002
140140
code = function.__code__
141-
new_code = CodeType(
142-
code.co_argcount,
143-
code.co_kwonlyargcount,
144-
code.co_nlocals,
145-
code.co_stacksize,
146-
code.co_flags & ~CO_NEWLOCALS,
147-
code.co_code,
148-
code.co_consts,
149-
code.co_names,
150-
code.co_varnames,
151-
code.co_filename,
152-
code.co_name,
153-
code.co_firstlineno,
154-
code.co_lnotab,
155-
code.co_freevars,
156-
code.co_cellvars
157-
)
141+
if sys.version_info > (3,8):
142+
new_code = CodeType(
143+
code.co_argcount,
144+
code.co_posonlyargcount, # Python-3.8 PEP570 positional only argument
145+
code.co_kwonlyargcount,
146+
code.co_nlocals,
147+
code.co_stacksize,
148+
code.co_flags & ~CO_NEWLOCALS,
149+
code.co_code,
150+
code.co_consts,
151+
code.co_names,
152+
code.co_varnames,
153+
code.co_filename,
154+
code.co_name,
155+
code.co_firstlineno,
156+
code.co_lnotab,
157+
code.co_freevars,
158+
code.co_cellvars
159+
)
160+
else:
161+
new_code = CodeType(
162+
code.co_argcount,
163+
code.co_kwonlyargcount,
164+
code.co_nlocals,
165+
code.co_stacksize,
166+
code.co_flags & ~CO_NEWLOCALS,
167+
code.co_code,
168+
code.co_consts,
169+
code.co_names,
170+
code.co_varnames,
171+
code.co_filename,
172+
code.co_name,
173+
code.co_firstlineno,
174+
code.co_lnotab,
175+
code.co_freevars,
176+
code.co_cellvars
177+
)
158178
return FunctionType(new_code, globals(), function.__name__, function.__defaults__)
159179

160180

0 commit comments

Comments
 (0)