Skip to content

Commit 3829d26

Browse files
committed
Factor out Tablebase.add_file()
1 parent 59cadb1 commit 3829d26

File tree

1 file changed

+16
-20
lines changed

1 file changed

+16
-20
lines changed

chess/syzygy.py

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1511,27 +1511,23 @@ def add_directory(self, directory: str, *, load_wdl: bool = True, load_dtz: bool
15111511
15121512
Returns the number of table files that were found.
15131513
"""
1514-
num = 0
15151514
directory = os.path.abspath(directory)
1516-
1517-
for filename in os.listdir(directory):
1518-
path = os.path.join(directory, filename)
1519-
tablename, ext = os.path.splitext(filename)
1520-
1521-
if is_tablename(tablename, one_king=self.variant.one_king) and os.path.isfile(path):
1522-
if load_wdl:
1523-
if ext == self.variant.tbw_suffix:
1524-
num += self._open_table(self.wdl, WdlTable, path)
1525-
elif "P" not in tablename and ext == self.variant.pawnless_tbw_suffix:
1526-
num += self._open_table(self.wdl, WdlTable, path)
1527-
1528-
if load_dtz:
1529-
if ext == self.variant.tbz_suffix:
1530-
num += self._open_table(self.dtz, DtzTable, path)
1531-
elif "P" not in tablename and ext == self.variant.pawnless_tbz_suffix:
1532-
num += self._open_table(self.dtz, DtzTable, path)
1533-
1534-
return num
1515+
return sum(self.add_file(os.path.join(directory, filename), load_wdl=load_wdl, load_dtz=load_dtz) for filename in os.listdir(directory))
1516+
1517+
def add_file(self, path: str, *, load_wdl: bool = True, load_dtz: bool = True) -> int:
1518+
tablename, ext = os.path.splitext(os.path.basename(path))
1519+
if is_tablename(tablename, one_king=self.variant.one_king) and os.path.isfile(path):
1520+
if load_wdl:
1521+
if ext == self.variant.tbw_suffix:
1522+
return self._open_table(self.wdl, WdlTable, path)
1523+
elif "P" not in tablename and ext == self.variant.pawnless_tbw_suffix:
1524+
return self._open_table(self.wdl, WdlTable, path)
1525+
if load_dtz:
1526+
if ext == self.variant.tbz_suffix:
1527+
return self._open_table(self.dtz, DtzTable, path)
1528+
elif "P" not in tablename and ext == self.variant.pawnless_tbz_suffix:
1529+
return self._open_table(self.dtz, DtzTable, path)
1530+
return 0
15351531

15361532
def probe_wdl_table(self, board: chess.Board) -> int:
15371533
# Test for variant end.

0 commit comments

Comments
 (0)