Skip to content

Commit 2977f83

Browse files
authored
refac: Improved support for pickle and deepcopy (#504)
1 parent e16e0ef commit 2977f83

File tree

2 files changed

+0
-23
lines changed

2 files changed

+0
-23
lines changed

statemachine/callbacks.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -331,9 +331,6 @@ def __init__(self) -> None:
331331
self._registry: Dict[str, CallbacksExecutor] = defaultdict(CallbacksExecutor)
332332
self.has_async_callbacks: bool = False
333333

334-
def clear(self):
335-
self._registry.clear()
336-
337334
def __getitem__(self, key: str) -> CallbacksExecutor:
338335
return self._registry[key]
339336

statemachine/statemachine.py

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import warnings
2-
from copy import deepcopy
32
from inspect import isawaitable
4-
from threading import Lock
53
from typing import TYPE_CHECKING
64
from typing import Any
75
from typing import Dict
@@ -129,24 +127,6 @@ def __repr__(self):
129127
f"current_state={current_state_id!r})"
130128
)
131129

132-
def __deepcopy__(self, memo):
133-
deepcopy_method = self.__deepcopy__
134-
lock = self._engine._processing
135-
with lock:
136-
self.__deepcopy__ = None
137-
self._engine._processing = None
138-
try:
139-
cp = deepcopy(self, memo)
140-
cp._engine._processing = Lock()
141-
finally:
142-
self.__deepcopy__ = deepcopy_method
143-
cp.__deepcopy__ = deepcopy_method
144-
self._engine._processing = lock
145-
cp._callbacks.clear()
146-
cp._register_callbacks([])
147-
cp.add_listener(*cp._listeners.keys())
148-
return cp
149-
150130
def __getstate__(self):
151131
state = self.__dict__.copy()
152132
state["_rtc"] = self._engine._rtc

0 commit comments

Comments
 (0)