. ├── docs │ ├── before_you_commit.md │ ├── HACKING.md │ ├── installing.md │ ├── manual-pairing-guide.md │ ├── program-structure.md │ ├── project_formatting.md │ └── screenshots ├── Gambit-Pairing.spec ├── install_editable_pip.sh ├── licenses │ ├── LICENSE │ └── license.rtf ├── make_executable.py ├── make_executable.sh ├── pyproject.toml ├── README.md ├── resources │ ├── scripts │ │ └── format_project.py │ └── unused_designs ├── src │ ├── gambitpairing │ │ ├── core │ │ │ ├── api_utils.py │ │ │ ├── constants.py │ │ │ ├── exceptions.py │ │ │ ├── init.py │ │ │ ├── pairing_dutch_swiss.py │ │ │ ├── pairing_round_robin.py │ │ │ ├── player.py │ │ │ ├── print_utils.py │ │ │ ├── tournament.py │ │ │ ├── updater.py │ │ │ └── utils.py │ │ ├── gui │ │ │ ├── crosstable_tab.py │ │ │ ├── dialogs │ │ │ │ ├── about_dialog.py │ │ │ │ ├── init.py │ │ │ │ ├── manual_pairing_dialog.py │ │ │ │ ├── new_tournament_dialog.py │ │ │ │ ├── player_detail_dialog.py │ │ │ │ ├── player_edit_dialog.py │ │ │ │ ├── printing.py │ │ │ │ ├── settings_dialog.py │ │ │ │ ├── update_dialog.py │ │ │ │ └── update_prompt_dialog.py │ │ │ ├── dialogs.py │ │ │ ├── history_tab.py │ │ │ ├── init.py │ │ │ ├── mainwindow.py │ │ │ ├── notification.py │ │ │ ├── notournament_placeholder.py │ │ │ ├── players_tab.py │ │ │ ├── standings_tab.py │ │ │ ├── tournament_tab.py │ │ │ └── update_worker.py │ │ ├── init.py │ │ ├── main.py │ │ ├── resources │ │ │ ├── icons │ │ │ ├── init.py │ │ │ ├── resource_utils.py │ │ │ ├── scripts │ │ │ └── styles.qss │ │ └── test │ │ ├── core │ │ │ └── pairing_round_robin.py │ │ ├── init.py │ │ └── main.py └── test_data ├── players │ ├── test_16_rated_players.csv │ └── test_45_rated_players.csv └── tournaments ├── test_32_player_tournament.json ├── test_open_2025.json └── winter_chess_championship_2025.json
43 directories, 198 files
- uses a src layout, see: https://packaging.python.org/en/latest/discussions/src-layout-vs-flat-layout/#src-layout-vs-flat-layout
- Creates the main window. Handles various OS'.
from gui.mainwindow import GambitPairingMainWindowimports app
class GambitPairingMainWindow(QtWidgets.QMainWindow):
class CrosstableTab(QtWidgets.QWidget):
class Player:
class Tournament: