| 223 | return data |
| 224 | |
| 225 | def __setstate__(self, data): |
| 226 | if isinstance(data["_data"], SON): |
| 227 | data["_data"] = self.__class__._from_son(data["_data"])._data |
| 228 | for k in ( |
| 229 | "_changed_fields", |
| 230 | "_initialised", |
| 231 | "_created", |
| 232 | "_data", |
| 233 | "_dynamic_fields", |
| 234 | ): |
| 235 | if k in data: |
| 236 | setattr(self, k, data[k]) |
| 237 | if "_fields_ordered" in data: |
| 238 | if self._dynamic: |
| 239 | self._fields_ordered = data["_fields_ordered"] |
| 240 | else: |
| 241 | _super_fields_ordered = type(self)._fields_ordered |
| 242 | self._fields_ordered = _super_fields_ordered |
| 243 | |
| 244 | dynamic_fields = data.get("_dynamic_fields") or SON() |
| 245 | for k in dynamic_fields.keys(): |
| 246 | setattr(self, k, data["_data"].get(k)) |
| 247 | |
| 248 | def __iter__(self): |
| 249 | return iter(self._fields_ordered) |