diff options
author | Steve Dower <steve.dower@microsoft.com> | 2017-02-04 16:46:53 -0800 |
---|---|---|
committer | Steve Dower <steve.dower@microsoft.com> | 2017-02-04 16:46:53 -0800 |
commit | b1a1742796fce8078f9f1f3d5e3161122fae3b0a (patch) | |
tree | 89c863764481b7c7fbe645be42b16e1d35e92751 /Lib/pickle.py | |
parent | 391ed6c73cb1964b57d0b538370a76d03d30511b (diff) | |
parent | cf1f5444eb42a8dc252b295d3863288309996a5d (diff) | |
download | cpython-b1a1742796fce8078f9f1f3d5e3161122fae3b0a.tar.gz |
Merge from 3.6
Diffstat (limited to 'Lib/pickle.py')
-rw-r--r-- | Lib/pickle.py | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/Lib/pickle.py b/Lib/pickle.py index c8370c9f7e..702b0b35ce 100644 --- a/Lib/pickle.py +++ b/Lib/pickle.py @@ -1464,12 +1464,19 @@ class _Unpickler: def load_appends(self): items = self.pop_mark() list_obj = self.stack[-1] - if isinstance(list_obj, list): - list_obj.extend(items) + try: + extend = list_obj.extend + except AttributeError: + pass else: - append = list_obj.append - for item in items: - append(item) + extend(items) + return + # Even if the PEP 307 requires extend() and append() methods, + # fall back on append() if the object has no extend() method + # for backward compatibility. + append = list_obj.append + for item in items: + append(item) dispatch[APPENDS[0]] = load_appends def load_setitem(self): |