@@ -178,24 +178,43 @@ def inner(value):
178
178
(),
179
179
)
180
180
else :
181
- return types .CodeType (
182
- co .co_argcount ,
183
- co .co_kwonlyargcount ,
184
- co .co_nlocals ,
185
- co .co_stacksize ,
186
- co .co_flags ,
187
- co .co_code ,
188
- co .co_consts ,
189
- co .co_names ,
190
- co .co_varnames ,
191
- co .co_filename ,
192
- co .co_name ,
193
- co .co_firstlineno ,
194
- co .co_lnotab ,
195
- co .co_cellvars , # this is the trickery
196
- (),
197
- )
198
-
181
+ if hasattr (types .CodeType , "co_posonlyargcount" ): # pragma: no branch
182
+ return types .CodeType (
183
+ co .co_argcount ,
184
+ co .co_posonlyargcount , # Python3.8 with PEP570
185
+ co .co_kwonlyargcount ,
186
+ co .co_nlocals ,
187
+ co .co_stacksize ,
188
+ co .co_flags ,
189
+ co .co_code ,
190
+ co .co_consts ,
191
+ co .co_names ,
192
+ co .co_varnames ,
193
+ co .co_filename ,
194
+ co .co_name ,
195
+ co .co_firstlineno ,
196
+ co .co_lnotab ,
197
+ co .co_cellvars , # this is the trickery
198
+ (),
199
+ )
200
+ else :
201
+ return types .CodeType (
202
+ co .co_argcount ,
203
+ co .co_kwonlyargcount ,
204
+ co .co_nlocals ,
205
+ co .co_stacksize ,
206
+ co .co_flags ,
207
+ co .co_code ,
208
+ co .co_consts ,
209
+ co .co_names ,
210
+ co .co_varnames ,
211
+ co .co_filename ,
212
+ co .co_name ,
213
+ co .co_firstlineno ,
214
+ co .co_lnotab ,
215
+ co .co_cellvars , # this is the trickery
216
+ (),
217
+ )
199
218
200
219
_cell_set_template_code = _make_cell_set_template_code ()
201
220
@@ -355,12 +374,23 @@ def save_codeobject(self, obj):
355
374
Save a code object
356
375
"""
357
376
if PY3 : # pragma: no branch
358
- args = (
359
- obj .co_argcount , obj .co_kwonlyargcount , obj .co_nlocals , obj .co_stacksize ,
360
- obj .co_flags , obj .co_code , obj .co_consts , obj .co_names , obj .co_varnames ,
361
- obj .co_filename , obj .co_name , obj .co_firstlineno , obj .co_lnotab , obj .co_freevars ,
362
- obj .co_cellvars
363
- )
377
+ if hasattr (obj , "co_posonlyargcount" ): # pragma: no branch
378
+ args = (
379
+ obj .co_argcount , obj .co_posonlyargcount ,
380
+ obj .co_kwonlyargcount , obj .co_nlocals , obj .co_stacksize ,
381
+ obj .co_flags , obj .co_code , obj .co_consts , obj .co_names ,
382
+ obj .co_varnames , obj .co_filename , obj .co_name ,
383
+ obj .co_firstlineno , obj .co_lnotab , obj .co_freevars ,
384
+ obj .co_cellvars
385
+ )
386
+ else :
387
+ args = (
388
+ obj .co_argcount , obj .co_kwonlyargcount , obj .co_nlocals ,
389
+ obj .co_stacksize , obj .co_flags , obj .co_code , obj .co_consts ,
390
+ obj .co_names , obj .co_varnames , obj .co_filename ,
391
+ obj .co_name , obj .co_firstlineno , obj .co_lnotab ,
392
+ obj .co_freevars , obj .co_cellvars
393
+ )
364
394
else :
365
395
args = (
366
396
obj .co_argcount , obj .co_nlocals , obj .co_stacksize , obj .co_flags , obj .co_code ,
0 commit comments