Package: chesstab
ContentsDescriptionInstallation InstructionsChess EnginesDatabase InterfacesFontsRunNotesDescriptionThis package provides a database for chess games.When playing through a game a list of all games containing the current position is displayed.Repertoire games can be defined.  When playing through a repertoire game a list of all games containing the current position is displayed.  Repertoire games are not included in this list.Chess engines can be used to analyse positions while playing through games or repertoire games.  The analysis can be played through like the game score.  The analysis can be saved on the database for later reference.Partial positions can be defined and a list of all games containing a position matching the partial position is displayed.Games can be typed, or imported from files, in PGNImport Format.Games are indexed by theseven standard tagsdefined by the PGN standard.Games can be edited or deleted.Games can be output to PGN files inExport Format,Reduced Export Format, or an import format excluding comments and glyphs.Installation InstructionsThis package is available on PyPI so can be installed by typingpython -m pip install –user chesstabat the command prompt.SeePythonandpipdocumentation for alternatives and platform-specific points.If this installation replaces ChessTab-4.1.1 or earlier you should run:python -m chesstab.tools.chesstab-4-1-1_castling-option-correctionto fix the incorrect position and analysis index keys generated for moves Rxa8, Rxh8, Rxa1, and Rxh1, where the captured piece is a rook and neither rook involved in the move, nor either king, has moved previously.For the 233,765 games in twic920g.zip through twic999g.zip downloaded fromhttps://theweekinchess.comthe run takes about two hours.Chess EnginesChess engines which support theUniversal Chess Interface(UCI) can be used to analyse positions.  WikipediaUCI entrylinks to the specification too.Database InterfacesThe default database interface is the sqlite3 module distributed with Python.Theapswinterface, if installed, to Sqlite 3 is used instead of the sqlite3 interface.New databases are accessed using these alternative interfaces if installed.berkeleydb(replaces bsddb3 at Python 3.10)bsddb3dptdb(Microsoft Windows only)Chesstab will use dptdb if installed.berkeleydb is available for Python 3.6 and later.  It is used instead of bsddb3 if both are installed and a version ofBerkeley DBsupported by berkeleydb is installed.If bsddb3 is used, a version ofBerkeley DBsupported by bsddb3 must be installed.FontsThe unicode chess pieces are used by default.The chesstab package incudes the Chess Merida, Chess Cases, Chess Motif, and Chess Lucena fonts by Armando H Marroquin.These are available fromwww.enpassant.dk/chess/fonteng.htmand the relevant files have been included in this package for convenience.Install if you prefer them to the unicode chess pieces.RunThe command to run this package is:python -m chesstab.chessgamesYou may need to give the path and version of Python depending on your system’s configuration:<path to python>/python<version> -m chesstab.chessgamesFor exampleC:\Python36\python -m chesstab.chessgameson Microsoft Windows orpython3.6 -m chesstab.chessgameson Unix-like systems.Or use the facilities of your desktop (Microsoft Windows, GNOME, KDE, …) to set up a convenient way of starting chessgames.At least one database engine supported by thesolentware-basepackage must be installed.NotesA database of about 1.5 million games will occupy between 10 and 15 Gbytes.Importing 1.5 million games will take at least a few hours.  For example about 12 hours on a 1.8GHz CPU with 2Gb 667MHz DDR2 SDRAM, and about 30 hours on a 1.7GHz CPU with 1Gb DDR266 RAM.These figures were obtained using the Enormous database from:ftp://ftp.cis.uab.edu/pub/hyatt/pgn.Partial position searches are always much quicker using thedptdbdatabase interface.When using the sqlite3, apsw, orbsddb3database interfaces, you may notice better response times on partial position searches if thebitarraymodule is installed.The sqlite3 and apsw database interfaces are equivalent, but all other pairings are incompatible.