diff --git a/CHANGELOG.md b/CHANGELOG.md index 632a9c5dc4..46b71c5f58 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -176,6 +176,7 @@ Up requirements to Django 4.0+, Twisted 22+, Python 3.9 or 3.10 even though doc suggested one could (ChrisLR) - New contrib `name_generator` for building random real-world based or fantasy-names based on phonetic rules. +- Enable proper serialization of dict subclasses in Attributes (aogier) ## Evennia 0.9.5 diff --git a/evennia/utils/dbserialize.py b/evennia/utils/dbserialize.py index 136d182a7b..3d406b3172 100644 --- a/evennia/utils/dbserialize.py +++ b/evennia/utils/dbserialize.py @@ -653,7 +653,7 @@ def to_pickle(data): ) except (AttributeError, TypeError): return {process_item(key): process_item(val) for key, val in item.items()} - except: + except Exception: # we try to conserve the iterable class, if not convert to list try: return item.__class__([process_item(val) for val in item]) @@ -730,7 +730,7 @@ def from_pickle(data, db_obj=None): ) except (AttributeError, TypeError): return {process_item(key): process_item(val) for key, val in item.items()} - except: + except Exception: try: # we try to conserve the iterable class if # it accepts an iterator @@ -811,7 +811,7 @@ def from_pickle(data, db_obj=None): (process_item(key), process_tree(val, dat)) for key, val in item.items() ) return dat - except: + except Exception: try: # we try to conserve the iterable class if it # accepts an iterator @@ -882,7 +882,7 @@ def from_pickle(data, db_obj=None): (process_item(key), process_tree(val, dat)) for key, val in data.items() ) return dat - except: + except Exception: try: # we try to conserve the iterable class if it # accepts an iterator