From f0908eabcd76c1f73e067d2535863a2f5af13809 Mon Sep 17 00:00:00 2001 From: Olivier Grisel Date: Mon, 27 Apr 2020 12:06:27 +0200 Subject: [PATCH 1/3] FIX: backward compat for types.ClassType attribute --- cloudpickle/cloudpickle.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cloudpickle/cloudpickle.py b/cloudpickle/cloudpickle.py index 73ca30cc7..8df2d06ed 100644 --- a/cloudpickle/cloudpickle.py +++ b/cloudpickle/cloudpickle.py @@ -388,6 +388,11 @@ def _cell_set_factory(value): def _builtin_type(name): + if name == "ClassType": # pragma: no cover + # Backward compat to load pickle files generated with cloudpickle + # < 1.3 even if not loading pickle files from older versions is not + # officially supported. + return type return getattr(types, name) From 1c49f19aedb2fc39eeb98eb8b151aaae11bfe3da Mon Sep 17 00:00:00 2001 From: Olivier Grisel Date: Mon, 27 Apr 2020 12:07:52 +0200 Subject: [PATCH 2/3] typo --- cloudpickle/cloudpickle.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cloudpickle/cloudpickle.py b/cloudpickle/cloudpickle.py index 8df2d06ed..fb5beb5f5 100644 --- a/cloudpickle/cloudpickle.py +++ b/cloudpickle/cloudpickle.py @@ -390,7 +390,7 @@ def _cell_set_factory(value): def _builtin_type(name): if name == "ClassType": # pragma: no cover # Backward compat to load pickle files generated with cloudpickle - # < 1.3 even if not loading pickle files from older versions is not + # < 1.3 even if loading pickle files from older versions is not # officially supported. return type return getattr(types, name) From 45309c1556e41e0a4d00a000ded74245776a1751 Mon Sep 17 00:00:00 2001 From: Olivier Grisel Date: Tue, 28 Apr 2020 22:39:08 +0200 Subject: [PATCH 3/3] Add entry to changelog --- CHANGES.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index c4857e9e7..ad584c7ea 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,9 @@ 1.4.1 (in development) ====================== +- Restore compat with loading dynamic classes pickled with cloudpickle + version 1.2.1 that would reference the `types.ClassType` attribute. + ([PR #359](https://github.com/cloudpipe/cloudpickle/pull/359)) 1.4.0