@@ -1511,27 +1511,23 @@ def add_directory(self, directory: str, *, load_wdl: bool = True, load_dtz: bool
1511
1511
1512
1512
Returns the number of table files that were found.
1513
1513
"""
1514
- num = 0
1515
1514
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
1535
1531
1536
1532
def probe_wdl_table (self , board : chess .Board ) -> int :
1537
1533
# Test for variant end.
0 commit comments