Skip to content

Commit 09b1d17

Browse files
committed
Support pickling tablebases
1 parent db28cd4 commit 09b1d17

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

chess/syzygy.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -865,10 +865,21 @@ def __enter__(self):
865865
def __exit__(self, type, value, traceback):
866866
self.close()
867867

868+
def __getstate__(self):
869+
state = self.__dict__.copy()
870+
del state["fd"]
871+
del state["data"]
872+
return state
873+
874+
def __setstate__(self, state):
875+
self.__dict__.update(state)
876+
self.__init__(self.directory, self.filename, self.suffix)
877+
868878

869879
class WdlTable(Table):
870-
def __init__(self, directory, filename):
871-
super(WdlTable, self).__init__(directory, filename, ".rtbw")
880+
881+
def __init__(self, directory, filename, suffix=".rtbw"):
882+
super(WdlTable, self).__init__(directory, filename, suffix)
872883

873884
assert WDL_MAGIC[0] == self.read_ubyte(0)
874885
assert WDL_MAGIC[1] == self.read_ubyte(1)
@@ -1069,8 +1080,8 @@ def probe_wdl_table(self, board):
10691080

10701081
class DtzTable(Table):
10711082

1072-
def __init__(self, directory, filename):
1073-
super(DtzTable, self).__init__(directory, filename, ".rtbz")
1083+
def __init__(self, directory, filename, suffix=".rtbz"):
1084+
super(DtzTable, self).__init__(directory, filename, suffix)
10741085

10751086
assert DTZ_MAGIC[0] == self.read_ubyte(0)
10761087
assert DTZ_MAGIC[1] == self.read_ubyte(1)

0 commit comments

Comments
 (0)