Example error taken from Sheetmetal Wb but applies to many parts of this workbench:
File "/usr/lib/python3.11/json/encoder.py", line 180, in default
raise TypeError(f'Object of type {o.__class__.__name__} '
<class 'TypeError'>: Object of type FeaturePython is not JSON serializable
17:04:02 PropertyPythonObject::toString(): failed for <class 'SheetMetalCmd.SMViewProviderFlat'>
17:04:02 pyException: Traceback (most recent call last):
File "/usr/lib/python3.11/json/__init__.py", line 231, in dumps
return _default_encoder.encode(obj)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/json/encoder.py", line 200, in encode
chunks = self.iterencode(o, _one_shot=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/json/encoder.py", line 258, in iterencode
return _iterencode(o, 0)
^^^^^^^^^^^^^^^^^
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/sql/util.py:957: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/sql/elements.py:1319: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/sql/elements.py:3407: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/sql/selectable.py:1887: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/sql/schema.py:4240: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/sql/base.py:614: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/orm/util.py:665: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/orm/state.py:472: def __setstate__(self, state_dict):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/orm/collections.py:760: def __setstate__(self, d):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/orm/events.py:507: :class:`.InstanceState.__setstate__`, containing the state
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/orm/strategy_options.py:514: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/orm/strategy_options.py:653: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/util/_collections.py:205: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/util/_collections.py:339: # dict subclass (seems to ignore __setstate__?)
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/util/langhelpers.py:643: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/util/langhelpers.py:745: "__setstate__",
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/ext/mutable.py:187:(and also restore them on __setstate__)::
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/ext/mutable.py:195: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/ext/mutable.py:340:Below we define both a ``__getstate__`` and a ``__setstate__`` that package up
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/ext/mutable.py:349: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/ext/mutable.py:745: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/ext/mutable.py:779: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/ext/mutable.py:942: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/ext/associationproxy.py:937: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/ext/associationproxy.py:987: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/engine/result.py:27: # __setstate__.
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/engine/result.py:41: obj.__setstate__(state)
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/engine/result.py:143: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/engine/result.py:732: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/cextension/resultproxy.c:54: tmp = PyObject_CallMethod((PyObject *)obj, "__setstate__", "O", state);
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/cextension/resultproxy.c:64: "__setstate__ for BaseRowProxy subclasses must set values "
/home/username/.local/share/FreeCAD/Mod/pcb/PCBboard.py:128: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/PCBboard.py:268: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/PCBobjects.py:137: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/PCBobjects.py:299: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/PCBobjects.py:387: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/PCBobjects.py:664: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/PCBobjects.py:1458: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/PCBobjects.py:1536: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/PCBobjects.py:1598: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/command/PCBexplode.py:542: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/command/PCBexplode.py:612: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/command/PCBannotations.py:440: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/command/PCBannotations.py:864: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/command/PCBassembly.py:413: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/command/PCBassembly.py:439: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/command/PCBassembly.py:555: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/command/PCBassembly.py:603: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/command/PCBglue.py:209: def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/command/PCBglue.py:345: def __setstate__(self, state):