From 0ab07ad498641f3408db0064f16e6e5203735c4e Mon Sep 17 00:00:00 2001 From: stonebig Date: Sat, 11 May 2019 14:11:32 +0200 Subject: [PATCH 1/3] adapt to Python3.8 with PEP570 .... please update also vendored joblib --- cloudpickle/cloudpickle.py | 55 +++++++++++++++++++++++++------------- 1 file changed, 37 insertions(+), 18 deletions(-) diff --git a/cloudpickle/cloudpickle.py b/cloudpickle/cloudpickle.py index 7df5f6c74..93ff1766a 100644 --- a/cloudpickle/cloudpickle.py +++ b/cloudpickle/cloudpickle.py @@ -130,24 +130,43 @@ def inner(value): (), ) else: - return types.CodeType( - co.co_argcount, - co.co_kwonlyargcount, - co.co_nlocals, - co.co_stacksize, - co.co_flags, - co.co_code, - co.co_consts, - co.co_names, - co.co_varnames, - co.co_filename, - co.co_name, - co.co_firstlineno, - co.co_lnotab, - co.co_cellvars, # this is the trickery - (), - ) - + try: + return types.CodeType( + co.co_argcount, + co.co_kwonlyargcount, + co.co_nlocals, + co.co_stacksize, + co.co_flags, + co.co_code, + co.co_consts, + co.co_names, + co.co_varnames, + co.co_filename, + co.co_name, + co.co_firstlineno, + co.co_lnotab, + co.co_cellvars, # this is the trickery + (), + ) + except: + return types.CodeType( + co.co_argcount, + co.co_posonlyargcount, # Python3.8 with PEP570 + co.co_kwonlyargcount, + co.co_nlocals, + co.co_stacksize, + co.co_flags, + co.co_code, + co.co_consts, + co.co_names, + co.co_varnames, + co.co_filename, + co.co_name, + co.co_firstlineno, + co.co_lnotab, + co.co_cellvars, # this is the trickery + (), + ) _cell_set_template_code = _make_cell_set_template_code() From e53da8f9736b3d9f6879efbcb45bb6a1fbba0f1a Mon Sep 17 00:00:00 2001 From: stonebig Date: Sat, 11 May 2019 14:26:17 +0200 Subject: [PATCH 2/3] update cloudpickle --- cloudpickle/cloudpickle.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cloudpickle/cloudpickle.py b/cloudpickle/cloudpickle.py index 93ff1766a..3d43c0d6d 100644 --- a/cloudpickle/cloudpickle.py +++ b/cloudpickle/cloudpickle.py @@ -148,7 +148,7 @@ def inner(value): co.co_cellvars, # this is the trickery (), ) - except: + except: return types.CodeType( co.co_argcount, co.co_posonlyargcount, # Python3.8 with PEP570 From d020f6efec8bcccc68267695877db055b1e5f32a Mon Sep 17 00:00:00 2001 From: stonebig Date: Sat, 11 May 2019 16:20:42 +0200 Subject: [PATCH 3/3] implement same test as for ipython --- cloudpickle/cloudpickle.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cloudpickle/cloudpickle.py b/cloudpickle/cloudpickle.py index 3d43c0d6d..51e6eace2 100644 --- a/cloudpickle/cloudpickle.py +++ b/cloudpickle/cloudpickle.py @@ -130,9 +130,10 @@ def inner(value): (), ) else: - try: + if sys.version_info > (3, 8, 0, 'alpha', 3): return types.CodeType( co.co_argcount, + co.co_posonlyargcount, # Python3.8 with PEP570 co.co_kwonlyargcount, co.co_nlocals, co.co_stacksize, @@ -148,10 +149,9 @@ def inner(value): co.co_cellvars, # this is the trickery (), ) - except: + else: return types.CodeType( co.co_argcount, - co.co_posonlyargcount, # Python3.8 with PEP570 co.co_kwonlyargcount, co.co_nlocals, co.co_stacksize,