brlib 0.2.0__tar.gz → 0.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- brlib-0.3.0/.github/workflows/full-test.yml +47 -0
- {brlib-0.2.0 → brlib-0.3.0}/.github/workflows/publish.yml +9 -9
- brlib-0.3.0/.github/workflows/test.yml +49 -0
- {brlib-0.2.0 → brlib-0.3.0}/PKG-INFO +34 -17
- {brlib-0.2.0 → brlib-0.3.0}/README.md +13 -5
- {brlib-0.2.0 → brlib-0.3.0}/pyproject.toml +33 -13
- brlib-0.3.0/scripts/wiki.py +57 -0
- {brlib-0.2.0 → brlib-0.3.0}/src/brlib/__init__.py +11 -4
- brlib-0.3.0/src/brlib/_helpers/__init__.py +4 -0
- {brlib-0.2.0 → brlib-0.3.0}/src/brlib/_helpers/abbreviations_manager.py +63 -61
- {brlib-0.2.0 → brlib-0.3.0}/src/brlib/_helpers/constants.py +236 -79
- {brlib-0.2.0 → brlib-0.3.0}/src/brlib/_helpers/inputs.py +38 -20
- {brlib-0.2.0 → brlib-0.3.0}/src/brlib/_helpers/no_hitter_dicts.py +101 -60
- brlib-0.3.0/src/brlib/_helpers/requests_manager.py +72 -0
- {brlib-0.2.0 → brlib-0.3.0}/src/brlib/_helpers/singleton.py +2 -2
- {brlib-0.2.0 → brlib-0.3.0}/src/brlib/_helpers/utils.py +28 -34
- brlib-0.2.0/src/brlib/all_major_leaguers.py → brlib-0.3.0/src/brlib/all_players.py +10 -11
- {brlib-0.2.0 → brlib-0.3.0}/src/brlib/find_asg.py +15 -8
- {brlib-0.2.0 → brlib-0.3.0}/src/brlib/find_games.py +73 -52
- {brlib-0.2.0 → brlib-0.3.0}/src/brlib/find_teams.py +26 -16
- {brlib-0.2.0 → brlib-0.3.0}/src/brlib/game.py +330 -230
- {brlib-0.2.0 → brlib-0.3.0}/src/brlib/game_set.py +79 -57
- brlib-0.3.0/src/brlib/get_games.py +126 -0
- brlib-0.3.0/src/brlib/get_players.py +112 -0
- brlib-0.3.0/src/brlib/get_teams.py +121 -0
- {brlib-0.2.0 → brlib-0.3.0}/src/brlib/options.py +61 -63
- {brlib-0.2.0 → brlib-0.3.0}/src/brlib/player.py +229 -163
- {brlib-0.2.0 → brlib-0.3.0}/src/brlib/player_set.py +54 -40
- {brlib-0.2.0 → brlib-0.3.0}/src/brlib/team.py +145 -95
- {brlib-0.2.0 → brlib-0.3.0}/src/brlib/team_set.py +71 -48
- {brlib-0.2.0 → brlib-0.3.0}/tests/_helpers/test_abbreviations_manager.py +18 -9
- brlib-0.3.0/tests/_helpers/test_inputs.py +132 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/_helpers/test_no_hitter_dicts.py +24 -14
- {brlib-0.2.0 → brlib-0.3.0}/tests/_helpers/test_utils.py +11 -9
- {brlib-0.2.0 → brlib-0.3.0}/tests/conftest.py +111 -46
- {brlib-0.2.0/tests/expected/games/updated → brlib-0.3.0/tests/expected/games/original}/1961-allstar-game-1/batting.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/1961-allstar-game-1/fielding.csv +1 -1
- brlib-0.3.0/tests/expected/games/original/1961-allstar-game-1/info.csv +2 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/2025-allstar-game/batting.csv +42 -42
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/2025-allstar-game/fielding.csv +60 -60
- brlib-0.3.0/tests/expected/games/original/2025-allstar-game/info.csv +2 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/2025-allstar-game/pitching.csv +26 -26
- brlib-0.3.0/tests/expected/games/original/2025-allstar-game/team_info.csv +3 -0
- {brlib-0.2.0/tests/expected/games/updated → brlib-0.3.0/tests/expected/games/original}/ANA202305090/batting.csv +1 -1
- {brlib-0.2.0/tests/expected/games/updated → brlib-0.3.0/tests/expected/games/original}/ANA202305090/fielding.csv +1 -1
- {brlib-0.2.0/tests/expected/games/updated → brlib-0.3.0/tests/expected/games/original}/ANA202305090/info.csv +2 -2
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/BOS201708250/batting.csv +1 -1
- {brlib-0.2.0/tests/expected/games/updated → brlib-0.3.0/tests/expected/games/original}/BOS201708250/fielding.csv +1 -1
- {brlib-0.2.0/tests/expected/games/updated → brlib-0.3.0/tests/expected/games/original}/BOS201708250/info.csv +2 -2
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/FLO199407290/batting.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/FLO199407290/fielding.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/FLO199407290/info.csv +2 -2
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/MLA190105301/batting.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/MLA190105301/fielding.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/MLA190105301/info.csv +2 -2
- {brlib-0.2.0/tests/expected/games/updated → brlib-0.3.0/tests/expected/games/original}/NYN200908230/batting.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/NYN200908230/fielding.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/NYN200908230/info.csv +2 -2
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/PHI202211020/batting.csv +1 -1
- {brlib-0.2.0/tests/expected/games/updated → brlib-0.3.0/tests/expected/games/original}/PHI202211020/fielding.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/PHI202211020/info.csv +2 -2
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/PIT192010023/batting.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/PIT192010023/fielding.csv +1 -1
- {brlib-0.2.0/tests/expected/games/updated → brlib-0.3.0/tests/expected/games/original}/PIT192010023/info.csv +2 -2
- {brlib-0.2.0/tests/expected/games/updated → brlib-0.3.0/tests/expected/games/original}/SEA197805231/batting.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA197805231/fielding.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA197805231/info.csv +2 -2
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201208150/batting.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201208150/fielding.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201208150/info.csv +2 -2
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201804190/batting.csv +1 -1
- {brlib-0.2.0/tests/expected/games/updated → brlib-0.3.0/tests/expected/games/original}/SEA201804190/fielding.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201804190/info.csv +2 -2
- {brlib-0.2.0/tests/expected/games/updated → brlib-0.3.0/tests/expected/games/original}/SEA201905270/batting.csv +1 -1
- {brlib-0.2.0/tests/expected/games/updated → brlib-0.3.0/tests/expected/games/original}/SEA201905270/fielding.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201905270/info.csv +2 -2
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA202210150/batting.csv +1 -1
- {brlib-0.2.0/tests/expected/games/updated → brlib-0.3.0/tests/expected/games/original}/SEA202210150/fielding.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA202210150/info.csv +2 -2
- {brlib-0.2.0/tests/expected/games/updated → brlib-0.3.0/tests/expected/games/original}/SLN190710051/batting.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SLN190710051/fielding.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SLN190710051/info.csv +2 -2
- brlib-0.3.0/tests/expected/games/records.csv +20 -0
- {brlib-0.2.0/tests/expected/games/original → brlib-0.3.0/tests/expected/games/updated}/1961-allstar-game-1/batting.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/1961-allstar-game-1/fielding.csv +1 -1
- brlib-0.3.0/tests/expected/games/updated/1961-allstar-game-1/info.csv +2 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/2025-allstar-game/batting.csv +42 -42
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/2025-allstar-game/fielding.csv +60 -60
- brlib-0.3.0/tests/expected/games/updated/2025-allstar-game/info.csv +2 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/2025-allstar-game/pitching.csv +26 -26
- brlib-0.3.0/tests/expected/games/updated/2025-allstar-game/team_info.csv +3 -0
- {brlib-0.2.0/tests/expected/games/original → brlib-0.3.0/tests/expected/games/updated}/ANA202305090/batting.csv +1 -1
- {brlib-0.2.0/tests/expected/games/original → brlib-0.3.0/tests/expected/games/updated}/ANA202305090/fielding.csv +1 -1
- {brlib-0.2.0/tests/expected/games/original → brlib-0.3.0/tests/expected/games/updated}/ANA202305090/info.csv +2 -2
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/BOS201708250/batting.csv +1 -1
- {brlib-0.2.0/tests/expected/games/original → brlib-0.3.0/tests/expected/games/updated}/BOS201708250/fielding.csv +1 -1
- {brlib-0.2.0/tests/expected/games/original → brlib-0.3.0/tests/expected/games/updated}/BOS201708250/info.csv +2 -2
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/FLO199407290/batting.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/FLO199407290/fielding.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/FLO199407290/info.csv +2 -2
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/MLA190105301/batting.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/MLA190105301/fielding.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/MLA190105301/info.csv +2 -2
- {brlib-0.2.0/tests/expected/games/original → brlib-0.3.0/tests/expected/games/updated}/NYN200908230/batting.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/NYN200908230/fielding.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/NYN200908230/info.csv +2 -2
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/PHI202211020/batting.csv +1 -1
- {brlib-0.2.0/tests/expected/games/original → brlib-0.3.0/tests/expected/games/updated}/PHI202211020/fielding.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/PHI202211020/info.csv +2 -2
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/PIT192010023/batting.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/PIT192010023/fielding.csv +1 -1
- {brlib-0.2.0/tests/expected/games/original → brlib-0.3.0/tests/expected/games/updated}/PIT192010023/info.csv +2 -2
- {brlib-0.2.0/tests/expected/games/original → brlib-0.3.0/tests/expected/games/updated}/SEA197805231/batting.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA197805231/fielding.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA197805231/info.csv +2 -2
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA201208150/batting.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA201208150/fielding.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA201208150/info.csv +2 -2
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA201804190/batting.csv +1 -1
- {brlib-0.2.0/tests/expected/games/original → brlib-0.3.0/tests/expected/games/updated}/SEA201804190/fielding.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA201804190/info.csv +2 -2
- {brlib-0.2.0/tests/expected/games/original → brlib-0.3.0/tests/expected/games/updated}/SEA201905270/batting.csv +1 -1
- {brlib-0.2.0/tests/expected/games/original → brlib-0.3.0/tests/expected/games/updated}/SEA201905270/fielding.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA201905270/info.csv +2 -2
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA202210150/batting.csv +1 -1
- {brlib-0.2.0/tests/expected/games/original → brlib-0.3.0/tests/expected/games/updated}/SEA202210150/fielding.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA202210150/info.csv +2 -2
- {brlib-0.2.0/tests/expected/games/original → brlib-0.3.0/tests/expected/games/updated}/SLN190710051/batting.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SLN190710051/fielding.csv +1 -1
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SLN190710051/info.csv +2 -2
- brlib-0.3.0/tests/expected/players/original/aloumo01/info.csv +2 -0
- brlib-0.3.0/tests/expected/players/original/bendech01/info.csv +2 -0
- brlib-0.3.0/tests/expected/players/original/colli05/info.csv +2 -0
- brlib-0.3.0/tests/expected/players/original/cormirh01/batting.csv +31 -0
- brlib-0.3.0/tests/expected/players/original/cormirh01/bling.csv +2 -0
- brlib-0.3.0/tests/expected/players/original/cormirh01/fielding.csv +23 -0
- brlib-0.3.0/tests/expected/players/original/cormirh01/info.csv +2 -0
- brlib-0.3.0/tests/expected/players/original/cormirh01/pitching.csv +32 -0
- brlib-0.3.0/tests/expected/players/original/cormirh01/teams.json +1 -0
- brlib-0.3.0/tests/expected/players/original/gibsojo99/info.csv +2 -0
- brlib-0.3.0/tests/expected/players/original/hallaro01/info.csv +2 -0
- brlib-0.3.0/tests/expected/players/original/jacksre01/info.csv +2 -0
- brlib-0.3.0/tests/expected/players/original/kigerma01/info.csv +2 -0
- brlib-0.3.0/tests/expected/players/original/pressry01/info.csv +2 -0
- brlib-0.3.0/tests/expected/players/original/vogtst01/info.csv +2 -0
- brlib-0.3.0/tests/expected/players/original/vogtst01/relatives.json +1 -0
- brlib-0.3.0/tests/expected/players/updated/aloumo01/info.csv +2 -0
- brlib-0.3.0/tests/expected/players/updated/bendech01/info.csv +2 -0
- brlib-0.3.0/tests/expected/players/updated/colli05/info.csv +2 -0
- brlib-0.3.0/tests/expected/players/updated/cormirh01/info.csv +2 -0
- brlib-0.3.0/tests/expected/players/updated/cormirh01/pitching.csv +32 -0
- brlib-0.3.0/tests/expected/players/updated/gibsojo99/info.csv +2 -0
- brlib-0.3.0/tests/expected/players/updated/hallaro01/info.csv +2 -0
- brlib-0.3.0/tests/expected/players/updated/jacksre01/info.csv +2 -0
- brlib-0.3.0/tests/expected/players/updated/kigerma01/info.csv +2 -0
- brlib-0.3.0/tests/expected/players/updated/pressry01/info.csv +2 -0
- brlib-0.3.0/tests/expected/players/updated/vogtst01/info.csv +2 -0
- brlib-0.3.0/tests/expected/teams/original/BBB1924/info.csv +2 -0
- brlib-0.3.0/tests/expected/teams/original/BEG1939/info.csv +2 -0
- brlib-0.3.0/tests/expected/teams/original/CHC2020/info.csv +2 -0
- brlib-0.3.0/tests/expected/teams/original/COT1932/info.csv +2 -0
- brlib-0.3.0/tests/expected/teams/original/HOU2022/info.csv +2 -0
- brlib-0.3.0/tests/expected/teams/original/LAA2012/info.csv +2 -0
- brlib-0.3.0/tests/expected/teams/original/SEA2012/info.csv +2 -0
- brlib-0.3.0/tests/expected/teams/original/WSH1904/info.csv +2 -0
- brlib-0.3.0/tests/expected/teams/records.csv +9 -0
- brlib-0.3.0/tests/expected/teams/updated/BBB1924/info.csv +2 -0
- brlib-0.3.0/tests/expected/teams/updated/BEG1939/info.csv +2 -0
- brlib-0.3.0/tests/expected/teams/updated/CHC2020/info.csv +2 -0
- brlib-0.3.0/tests/expected/teams/updated/COT1932/info.csv +2 -0
- brlib-0.3.0/tests/expected/teams/updated/HOU2022/info.csv +2 -0
- brlib-0.3.0/tests/expected/teams/updated/LAA2012/info.csv +2 -0
- brlib-0.3.0/tests/expected/teams/updated/SEA2012/info.csv +2 -0
- brlib-0.3.0/tests/expected/teams/updated/WSH1904/info.csv +2 -0
- brlib-0.3.0/tests/get_expected.py +45 -0
- brlib-0.3.0/tests/test_all_players.py +36 -0
- brlib-0.3.0/tests/test_find_asg.py +41 -0
- brlib-0.3.0/tests/test_find_games.py +112 -0
- brlib-0.3.0/tests/test_find_teams.py +76 -0
- brlib-0.3.0/tests/test_game.py +148 -0
- brlib-0.3.0/tests/test_game_set.py +89 -0
- brlib-0.3.0/tests/test_player.py +90 -0
- brlib-0.3.0/tests/test_player_set.py +54 -0
- brlib-0.3.0/tests/test_team.py +92 -0
- brlib-0.3.0/tests/test_team_set.py +65 -0
- brlib-0.2.0/.github/workflows/test.yml +0 -34
- brlib-0.2.0/src/brlib/_helpers/__init__.py +0 -0
- brlib-0.2.0/src/brlib/_helpers/requests_manager.py +0 -62
- brlib-0.2.0/src/brlib/get_games.py +0 -74
- brlib-0.2.0/src/brlib/get_players.py +0 -70
- brlib-0.2.0/src/brlib/get_teams.py +0 -70
- brlib-0.2.0/tests/expected/games/original/1961-allstar-game-1/info.csv +0 -2
- brlib-0.2.0/tests/expected/games/original/2025-allstar-game/info.csv +0 -2
- brlib-0.2.0/tests/expected/games/original/2025-allstar-game/team_info.csv +0 -3
- brlib-0.2.0/tests/expected/games/updated/1961-allstar-game-1/info.csv +0 -2
- brlib-0.2.0/tests/expected/games/updated/2025-allstar-game/info.csv +0 -2
- brlib-0.2.0/tests/expected/games/updated/2025-allstar-game/team_info.csv +0 -3
- brlib-0.2.0/tests/expected/players/original/aloumo01/info.csv +0 -2
- brlib-0.2.0/tests/expected/players/original/bendech01/info.csv +0 -2
- brlib-0.2.0/tests/expected/players/original/colli05/info.csv +0 -2
- brlib-0.2.0/tests/expected/players/original/gibsojo99/info.csv +0 -2
- brlib-0.2.0/tests/expected/players/original/hallaro01/info.csv +0 -2
- brlib-0.2.0/tests/expected/players/original/jacksre01/info.csv +0 -2
- brlib-0.2.0/tests/expected/players/original/kigerma01/info.csv +0 -2
- brlib-0.2.0/tests/expected/players/original/pressry01/info.csv +0 -2
- brlib-0.2.0/tests/expected/players/original/vogtst01/info.csv +0 -2
- brlib-0.2.0/tests/expected/players/updated/aloumo01/info.csv +0 -2
- brlib-0.2.0/tests/expected/players/updated/bendech01/info.csv +0 -2
- brlib-0.2.0/tests/expected/players/updated/colli05/info.csv +0 -2
- brlib-0.2.0/tests/expected/players/updated/gibsojo99/info.csv +0 -2
- brlib-0.2.0/tests/expected/players/updated/hallaro01/info.csv +0 -2
- brlib-0.2.0/tests/expected/players/updated/jacksre01/info.csv +0 -2
- brlib-0.2.0/tests/expected/players/updated/kigerma01/info.csv +0 -2
- brlib-0.2.0/tests/expected/players/updated/pressry01/info.csv +0 -2
- brlib-0.2.0/tests/expected/players/updated/vogtst01/info.csv +0 -2
- brlib-0.2.0/tests/expected/teams/original/BBB1924/info.csv +0 -2
- brlib-0.2.0/tests/expected/teams/original/BEG1939/info.csv +0 -2
- brlib-0.2.0/tests/expected/teams/original/CHC2020/info.csv +0 -2
- brlib-0.2.0/tests/expected/teams/original/COT1932/info.csv +0 -2
- brlib-0.2.0/tests/expected/teams/original/HOU2022/info.csv +0 -2
- brlib-0.2.0/tests/expected/teams/original/LAA2012/info.csv +0 -2
- brlib-0.2.0/tests/expected/teams/original/SEA2012/info.csv +0 -2
- brlib-0.2.0/tests/expected/teams/original/WSH1904/info.csv +0 -2
- brlib-0.2.0/tests/expected/teams/updated/BBB1924/info.csv +0 -2
- brlib-0.2.0/tests/expected/teams/updated/BEG1939/info.csv +0 -2
- brlib-0.2.0/tests/expected/teams/updated/CHC2020/info.csv +0 -2
- brlib-0.2.0/tests/expected/teams/updated/COT1932/info.csv +0 -2
- brlib-0.2.0/tests/expected/teams/updated/HOU2022/info.csv +0 -2
- brlib-0.2.0/tests/expected/teams/updated/LAA2012/info.csv +0 -2
- brlib-0.2.0/tests/expected/teams/updated/SEA2012/info.csv +0 -2
- brlib-0.2.0/tests/expected/teams/updated/WSH1904/info.csv +0 -2
- brlib-0.2.0/tests/test_all_major_leaguers.py +0 -23
- brlib-0.2.0/tests/test_game.py +0 -119
- brlib-0.2.0/tests/test_player.py +0 -79
- brlib-0.2.0/tests/test_team.py +0 -75
- {brlib-0.2.0 → brlib-0.3.0}/LICENSE.txt +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/1961-allstar-game-1/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/1961-allstar-game-1/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/1961-allstar-game-1/players.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/1961-allstar-game-1/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/1961-allstar-game-1/teams.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/1961-allstar-game-1/ump_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/2025-allstar-game/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/2025-allstar-game/players.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/2025-allstar-game/teams.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/2025-allstar-game/ump_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/ANA202305090/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/ANA202305090/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/ANA202305090/players.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/ANA202305090/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/ANA202305090/teams.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/ANA202305090/ump_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/BOS201708250/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/BOS201708250/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/BOS201708250/players.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/BOS201708250/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/BOS201708250/teams.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/BOS201708250/ump_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/FLO199407290/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/FLO199407290/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/FLO199407290/players.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/FLO199407290/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/FLO199407290/teams.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/FLO199407290/ump_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/MLA190105301/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/MLA190105301/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/MLA190105301/players.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/MLA190105301/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/MLA190105301/teams.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/MLA190105301/ump_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/NYN200908230/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/NYN200908230/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/NYN200908230/players.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/NYN200908230/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/NYN200908230/teams.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/NYN200908230/ump_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/PHI202211020/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/PHI202211020/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/PHI202211020/players.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/PHI202211020/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/PHI202211020/teams.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/PHI202211020/ump_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/PIT192010023/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/PIT192010023/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/PIT192010023/players.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/PIT192010023/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/PIT192010023/teams.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/PIT192010023/ump_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA197805231/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA197805231/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA197805231/players.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA197805231/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA197805231/teams.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA197805231/ump_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201208150/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201208150/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201208150/players.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201208150/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201208150/teams.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201208150/ump_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201804190/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201804190/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201804190/players.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201804190/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201804190/teams.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201804190/ump_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201905270/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201905270/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201905270/players.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201905270/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201905270/teams.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA201905270/ump_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA202210150/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA202210150/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA202210150/players.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA202210150/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA202210150/teams.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SEA202210150/ump_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SLN190710051/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SLN190710051/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SLN190710051/players.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SLN190710051/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SLN190710051/teams.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/original/SLN190710051/ump_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/1961-allstar-game-1/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/1961-allstar-game-1/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/1961-allstar-game-1/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/2025-allstar-game/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/ANA202305090/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/ANA202305090/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/ANA202305090/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/BOS201708250/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/BOS201708250/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/BOS201708250/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/FLO199407290/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/FLO199407290/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/FLO199407290/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/MLA190105301/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/MLA190105301/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/MLA190105301/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/NYN200908230/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/NYN200908230/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/NYN200908230/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/PHI202211020/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/PHI202211020/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/PHI202211020/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/PIT192010023/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/PIT192010023/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/PIT192010023/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA197805231/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA197805231/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA197805231/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA201208150/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA201208150/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA201208150/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA201804190/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA201804190/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA201804190/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA201905270/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA201905270/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA201905270/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA202210150/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA202210150/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SEA202210150/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SLN190710051/linescore.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SLN190710051/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/games/updated/SLN190710051/team_info.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/aloumo01/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/aloumo01/bling.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/aloumo01/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/aloumo01/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/aloumo01/relatives.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/aloumo01/teams.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/bendech01/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/bendech01/bling.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/bendech01/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/bendech01/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/bendech01/relatives.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/bendech01/teams.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/colli05/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/colli05/bling.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/colli05/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/colli05/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/colli05/relatives.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/colli05/teams.json +0 -0
- {brlib-0.2.0/tests/expected/players/original/gibsojo99 → brlib-0.3.0/tests/expected/players/original/cormirh01}/relatives.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/gibsojo99/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/gibsojo99/bling.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/gibsojo99/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/gibsojo99/pitching.csv +0 -0
- {brlib-0.2.0/tests/expected/players/original/hallaro01 → brlib-0.3.0/tests/expected/players/original/gibsojo99}/relatives.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/gibsojo99/teams.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/hallaro01/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/hallaro01/bling.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/hallaro01/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/hallaro01/pitching.csv +0 -0
- {brlib-0.2.0/tests/expected/players/original/kigerma01 → brlib-0.3.0/tests/expected/players/original/hallaro01}/relatives.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/hallaro01/teams.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/jacksre01/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/jacksre01/bling.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/jacksre01/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/jacksre01/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/jacksre01/relatives.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/jacksre01/teams.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/kigerma01/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/kigerma01/bling.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/kigerma01/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/kigerma01/pitching.csv +0 -0
- {brlib-0.2.0/tests/expected/players/original/pressry01 → brlib-0.3.0/tests/expected/players/original/kigerma01}/relatives.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/kigerma01/teams.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/pressry01/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/pressry01/bling.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/pressry01/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/pressry01/pitching.csv +0 -0
- {brlib-0.2.0/tests/expected/players/original/vogtst01 → brlib-0.3.0/tests/expected/players/original/pressry01}/relatives.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/pressry01/teams.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/vogtst01/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/vogtst01/bling.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/vogtst01/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/vogtst01/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/original/vogtst01/teams.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/updated/aloumo01/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/updated/bendech01/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/updated/colli05/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/updated/gibsojo99/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/updated/hallaro01/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/updated/jacksre01/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/updated/kigerma01/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/updated/pressry01/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/players/updated/vogtst01/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/BBB1924/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/BBB1924/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/BBB1924/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/BBB1924/players.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/BEG1939/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/BEG1939/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/BEG1939/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/BEG1939/players.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/CHC2020/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/CHC2020/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/CHC2020/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/CHC2020/players.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/COT1932/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/COT1932/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/COT1932/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/COT1932/players.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/HOU2022/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/HOU2022/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/HOU2022/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/HOU2022/players.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/LAA2012/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/LAA2012/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/LAA2012/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/LAA2012/players.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/SEA2012/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/SEA2012/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/SEA2012/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/SEA2012/players.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/WSH1904/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/WSH1904/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/WSH1904/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/original/WSH1904/players.json +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/BBB1924/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/BBB1924/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/BBB1924/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/BEG1939/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/BEG1939/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/BEG1939/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/CHC2020/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/CHC2020/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/CHC2020/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/COT1932/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/COT1932/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/COT1932/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/HOU2022/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/HOU2022/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/HOU2022/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/LAA2012/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/LAA2012/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/LAA2012/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/SEA2012/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/SEA2012/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/SEA2012/pitching.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/WSH1904/batting.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/WSH1904/fielding.csv +0 -0
- {brlib-0.2.0 → brlib-0.3.0}/tests/expected/teams/updated/WSH1904/pitching.csv +0 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
name: Full Tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
# to be run before releases
|
|
5
|
+
workflow_dispatch:
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
pytest:
|
|
9
|
+
runs-on: ${{ matrix.os }}
|
|
10
|
+
|
|
11
|
+
strategy:
|
|
12
|
+
matrix:
|
|
13
|
+
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
14
|
+
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
|
|
15
|
+
resolution: ['highest']
|
|
16
|
+
include:
|
|
17
|
+
- os: ubuntu-latest
|
|
18
|
+
python-version: "3.10"
|
|
19
|
+
resolution: 'lowest-direct'
|
|
20
|
+
- os: windows-latest
|
|
21
|
+
python-version: "3.10"
|
|
22
|
+
resolution: 'lowest-direct'
|
|
23
|
+
- os: macos-latest
|
|
24
|
+
# there's no 3.10 wheel for lxml on ARM64 macOS
|
|
25
|
+
python-version: "3.11"
|
|
26
|
+
resolution: 'lowest-direct'
|
|
27
|
+
|
|
28
|
+
steps:
|
|
29
|
+
- name: Checkout code
|
|
30
|
+
uses: actions/checkout@v6
|
|
31
|
+
|
|
32
|
+
- name: Install uv
|
|
33
|
+
uses: astral-sh/setup-uv@v7
|
|
34
|
+
with:
|
|
35
|
+
enable-cache: true
|
|
36
|
+
|
|
37
|
+
- name: Install Python ${{ matrix.python-version }}
|
|
38
|
+
run: uv python install ${{ matrix.python-version }}
|
|
39
|
+
|
|
40
|
+
- name: Create virtual environment
|
|
41
|
+
run: uv venv
|
|
42
|
+
|
|
43
|
+
- name: Install brlib
|
|
44
|
+
run: uv pip install --resolution ${{ matrix.resolution }} -e .[dev]
|
|
45
|
+
|
|
46
|
+
- name: Run pytest
|
|
47
|
+
run: uv run pytest
|
|
@@ -16,7 +16,7 @@ jobs:
|
|
|
16
16
|
- name: Set up Python
|
|
17
17
|
uses: actions/setup-python@v6
|
|
18
18
|
with:
|
|
19
|
-
python-version: "3.
|
|
19
|
+
python-version: "3.14"
|
|
20
20
|
|
|
21
21
|
- name: Install pypa/build
|
|
22
22
|
run: python3 -m pip install build --user
|
|
@@ -25,7 +25,7 @@ jobs:
|
|
|
25
25
|
run: python3 -m build
|
|
26
26
|
|
|
27
27
|
- name: Store the distribution packages
|
|
28
|
-
uses: actions/upload-artifact@
|
|
28
|
+
uses: actions/upload-artifact@v6
|
|
29
29
|
with:
|
|
30
30
|
name: python-package-distributions
|
|
31
31
|
path: dist/
|
|
@@ -41,10 +41,10 @@ jobs:
|
|
|
41
41
|
id-token: write
|
|
42
42
|
|
|
43
43
|
steps:
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
44
|
+
- name: Download the dists
|
|
45
|
+
uses: actions/download-artifact@v6
|
|
46
|
+
with:
|
|
47
|
+
name: python-package-distributions
|
|
48
|
+
path: dist/
|
|
49
|
+
- name: Publish distribution
|
|
50
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
name: Tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- '**'
|
|
7
|
+
schedule:
|
|
8
|
+
# run at 12 UTC, hopefully after BR's daily in-season updates
|
|
9
|
+
# run weekly, because anything more would be overkill
|
|
10
|
+
- cron: '0 12 * * 6'
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
pytest:
|
|
14
|
+
runs-on: ${{ matrix.os }}
|
|
15
|
+
|
|
16
|
+
strategy:
|
|
17
|
+
matrix:
|
|
18
|
+
os: [ubuntu-latest, windows-latest]
|
|
19
|
+
python-version: ["3.10", "3.14"]
|
|
20
|
+
exclude:
|
|
21
|
+
- os: windows-latest
|
|
22
|
+
python-version: "3.10"
|
|
23
|
+
|
|
24
|
+
steps:
|
|
25
|
+
- name: Checkout code
|
|
26
|
+
uses: actions/checkout@v6
|
|
27
|
+
|
|
28
|
+
- name: Install uv
|
|
29
|
+
uses: astral-sh/setup-uv@v7
|
|
30
|
+
with:
|
|
31
|
+
enable-cache: true
|
|
32
|
+
|
|
33
|
+
- name: Install Python ${{ matrix.python-version }}
|
|
34
|
+
run: uv python install ${{ matrix.python-version }}
|
|
35
|
+
|
|
36
|
+
- name: Create virtual environment
|
|
37
|
+
run: uv venv
|
|
38
|
+
|
|
39
|
+
- name: Install brlib
|
|
40
|
+
run: uv pip install --resolution highest -e .[dev]
|
|
41
|
+
|
|
42
|
+
- name: Check import sorting with isort
|
|
43
|
+
run: uv run isort --check-only .
|
|
44
|
+
|
|
45
|
+
- name: Check formatting with Black
|
|
46
|
+
run: uv run black --check .
|
|
47
|
+
|
|
48
|
+
- name: Run pytest
|
|
49
|
+
run: uv run pytest
|
|
@@ -1,50 +1,66 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: brlib
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: A library for collecting baseball statistics from Baseball Reference
|
|
5
|
-
Project-URL: Homepage, https://github.com/john-bieren/brlib
|
|
6
5
|
Project-URL: Documentation, https://github.com/john-bieren/brlib/wiki
|
|
7
|
-
Project-URL:
|
|
6
|
+
Project-URL: GitHub, https://github.com/john-bieren/brlib
|
|
8
7
|
Project-URL: Issues, https://github.com/john-bieren/brlib/issues
|
|
8
|
+
Project-URL: Release Notes, https://github.com/john-bieren/brlib/releases
|
|
9
9
|
Author-email: John Bieren <jbieren64@gmail.com>
|
|
10
10
|
License-Expression: MIT
|
|
11
11
|
License-File: LICENSE.txt
|
|
12
|
-
Keywords: baseball,baseball reference,baseball stats,mlb
|
|
12
|
+
Keywords: baseball,baseball reference,baseball stats,mlb,mlb stats
|
|
13
13
|
Classifier: Development Status :: 4 - Beta
|
|
14
14
|
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Intended Audience :: Science/Research
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
17
|
Classifier: Operating System :: OS Independent
|
|
16
18
|
Classifier: Programming Language :: Python
|
|
17
19
|
Classifier: Programming Language :: Python :: 3
|
|
20
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
23
|
Classifier: Programming Language :: Python :: 3.12
|
|
19
24
|
Classifier: Programming Language :: Python :: 3.13
|
|
20
25
|
Classifier: Programming Language :: Python :: 3.14
|
|
26
|
+
Classifier: Topic :: Internet :: WWW/HTTP :: Indexing/Search
|
|
27
|
+
Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
|
21
28
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
|
-
Requires-Python: >=3.
|
|
23
|
-
Requires-Dist: beautifulsoup4<
|
|
24
|
-
Requires-Dist: curl-cffi<
|
|
25
|
-
Requires-Dist: lxml<7.0.0,>=
|
|
26
|
-
Requires-Dist: pandas<3.0.0,>=2.
|
|
27
|
-
Requires-Dist: platformdirs<5.0.0,>=4.
|
|
28
|
-
Requires-Dist: tqdm<5.0.0,>=4.
|
|
29
|
+
Requires-Python: >=3.10
|
|
30
|
+
Requires-Dist: beautifulsoup4<4.15.0,>=4.12.0
|
|
31
|
+
Requires-Dist: curl-cffi<0.15.0,>=0.11.1
|
|
32
|
+
Requires-Dist: lxml<7.0.0,>=5.0.0
|
|
33
|
+
Requires-Dist: pandas<3.0.0,>=2.2.0
|
|
34
|
+
Requires-Dist: platformdirs<5.0.0,>=4.0.0
|
|
35
|
+
Requires-Dist: tqdm<5.0.0,>=4.66.0
|
|
29
36
|
Provides-Extra: dev
|
|
30
|
-
Requires-Dist:
|
|
37
|
+
Requires-Dist: black==26.1.0; extra == 'dev'
|
|
38
|
+
Requires-Dist: isort==7.0.0; extra == 'dev'
|
|
39
|
+
Requires-Dist: pytest>=7.0.0; extra == 'dev'
|
|
31
40
|
Description-Content-Type: text/markdown
|
|
32
41
|
|
|
33
42
|
# brlib
|
|
34
43
|
|
|
35
44
|
[](https://github.com/john-bieren/brlib/actions/workflows/test.yml)
|
|
36
45
|
[](https://pypi.org/project/brlib)
|
|
46
|
+
[](https://pypi.org/project/brlib)
|
|
47
|
+
[](https://github.com/psf/black)
|
|
48
|
+
[](https://pycqa.github.io/isort/)
|
|
37
49
|
|
|
38
|
-
A library for collecting baseball statistics from
|
|
50
|
+
A library for collecting baseball statistics from
|
|
51
|
+
[Baseball Reference](https://www.baseball-reference.com).
|
|
39
52
|
|
|
40
53
|
> [!IMPORTANT]
|
|
41
54
|
> brlib is in beta, breaking changes are possible until the release of version 1.
|
|
42
55
|
|
|
43
56
|
## Key Features
|
|
44
57
|
|
|
45
|
-
* `Game`, `Player`, and `Team` classes give you easy access to all associated data in one place,
|
|
46
|
-
|
|
47
|
-
*
|
|
58
|
+
* `Game`, `Player`, and `Team` classes give you easy access to all associated data in one place,
|
|
59
|
+
with attributes for stats tables, information, and more.
|
|
60
|
+
* Aggregate these into `GameSet`, `PlayerSet`, or `TeamSet` classes, which have similar attributes,
|
|
61
|
+
for easy analysis of larger samples.
|
|
62
|
+
* Quickly search for games, players, and teams of interest, and gather their stats without violating
|
|
63
|
+
the [rate limit](https://www.sports-reference.com/429.html).
|
|
48
64
|
|
|
49
65
|
Learn more by reading the documentation on the [wiki](https://github.com/john-bieren/brlib/wiki).
|
|
50
66
|
|
|
@@ -72,4 +88,5 @@ import brlib as br
|
|
|
72
88
|
|
|
73
89
|
## Data Use
|
|
74
90
|
|
|
75
|
-
Since brlib gathers data from Baseball Reference, your use of this data is subject to their
|
|
91
|
+
Since brlib gathers data from Baseball Reference, your use of this data is subject to their
|
|
92
|
+
[data use policy](https://www.sports-reference.com/data_use.html).
|
|
@@ -2,17 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://github.com/john-bieren/brlib/actions/workflows/test.yml)
|
|
4
4
|
[](https://pypi.org/project/brlib)
|
|
5
|
+
[](https://pypi.org/project/brlib)
|
|
6
|
+
[](https://github.com/psf/black)
|
|
7
|
+
[](https://pycqa.github.io/isort/)
|
|
5
8
|
|
|
6
|
-
A library for collecting baseball statistics from
|
|
9
|
+
A library for collecting baseball statistics from
|
|
10
|
+
[Baseball Reference](https://www.baseball-reference.com).
|
|
7
11
|
|
|
8
12
|
> [!IMPORTANT]
|
|
9
13
|
> brlib is in beta, breaking changes are possible until the release of version 1.
|
|
10
14
|
|
|
11
15
|
## Key Features
|
|
12
16
|
|
|
13
|
-
* `Game`, `Player`, and `Team` classes give you easy access to all associated data in one place,
|
|
14
|
-
|
|
15
|
-
*
|
|
17
|
+
* `Game`, `Player`, and `Team` classes give you easy access to all associated data in one place,
|
|
18
|
+
with attributes for stats tables, information, and more.
|
|
19
|
+
* Aggregate these into `GameSet`, `PlayerSet`, or `TeamSet` classes, which have similar attributes,
|
|
20
|
+
for easy analysis of larger samples.
|
|
21
|
+
* Quickly search for games, players, and teams of interest, and gather their stats without violating
|
|
22
|
+
the [rate limit](https://www.sports-reference.com/429.html).
|
|
16
23
|
|
|
17
24
|
Learn more by reading the documentation on the [wiki](https://github.com/john-bieren/brlib/wiki).
|
|
18
25
|
|
|
@@ -40,4 +47,5 @@ import brlib as br
|
|
|
40
47
|
|
|
41
48
|
## Data Use
|
|
42
49
|
|
|
43
|
-
Since brlib gathers data from Baseball Reference, your use of this data is subject to their
|
|
50
|
+
Since brlib gathers data from Baseball Reference, your use of this data is subject to their
|
|
51
|
+
[data use policy](https://www.sports-reference.com/data_use.html).
|
|
@@ -7,14 +7,14 @@ name = "brlib"
|
|
|
7
7
|
description = "A library for collecting baseball statistics from Baseball Reference"
|
|
8
8
|
authors = [{ name = "John Bieren", email = "jbieren64@gmail.com" }]
|
|
9
9
|
dynamic = ["version"]
|
|
10
|
-
requires-python = ">=3.
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
11
|
dependencies = [
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
12
|
+
"beautifulsoup4>=4.12.0,<4.15.0",
|
|
13
|
+
"curl-cffi>=0.11.1,<0.15.0",
|
|
14
|
+
"lxml>=5.0.0,<7.0.0",
|
|
15
|
+
"pandas>=2.2.0,<3.0.0",
|
|
16
|
+
"platformdirs>=4.0.0,<5.0.0",
|
|
17
|
+
"tqdm>=4.66.0,<5.0.0"
|
|
18
18
|
]
|
|
19
19
|
readme = "README.md"
|
|
20
20
|
license = "MIT"
|
|
@@ -22,24 +22,35 @@ license-files = ["LICENSE.txt"]
|
|
|
22
22
|
classifiers = [
|
|
23
23
|
"Development Status :: 4 - Beta",
|
|
24
24
|
"Intended Audience :: Developers",
|
|
25
|
-
"
|
|
25
|
+
"Intended Audience :: Science/Research",
|
|
26
|
+
"License :: OSI Approved :: MIT License",
|
|
27
|
+
"Operating System :: OS Independent",
|
|
26
28
|
"Programming Language :: Python",
|
|
27
29
|
"Programming Language :: Python :: 3",
|
|
30
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
31
|
+
"Programming Language :: Python :: 3.10",
|
|
32
|
+
"Programming Language :: Python :: 3.11",
|
|
28
33
|
"Programming Language :: Python :: 3.12",
|
|
29
34
|
"Programming Language :: Python :: 3.13",
|
|
30
35
|
"Programming Language :: Python :: 3.14",
|
|
31
|
-
"
|
|
36
|
+
"Topic :: Internet :: WWW/HTTP :: Indexing/Search",
|
|
37
|
+
"Topic :: Scientific/Engineering :: Information Analysis",
|
|
38
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
32
39
|
]
|
|
33
|
-
keywords = ["baseball reference", "baseball", "baseball stats", "mlb"]
|
|
40
|
+
keywords = ["baseball reference", "baseball", "baseball stats", "mlb", "mlb stats"]
|
|
34
41
|
|
|
35
42
|
[project.optional-dependencies]
|
|
36
|
-
dev = [
|
|
43
|
+
dev = [
|
|
44
|
+
"black==26.1.0",
|
|
45
|
+
"isort==7.0.0",
|
|
46
|
+
"pytest>=7.0.0"
|
|
47
|
+
]
|
|
37
48
|
|
|
38
49
|
[project.urls]
|
|
39
|
-
Homepage = "https://github.com/john-bieren/brlib"
|
|
40
50
|
Documentation = "https://github.com/john-bieren/brlib/wiki"
|
|
41
|
-
|
|
51
|
+
GitHub = "https://github.com/john-bieren/brlib"
|
|
42
52
|
Issues = "https://github.com/john-bieren/brlib/issues"
|
|
53
|
+
"Release Notes" = "https://github.com/john-bieren/brlib/releases"
|
|
43
54
|
|
|
44
55
|
[tool.hatch.version]
|
|
45
56
|
path = "src/brlib/__init__.py"
|
|
@@ -47,3 +58,12 @@ path = "src/brlib/__init__.py"
|
|
|
47
58
|
[tool.pytest.ini_options]
|
|
48
59
|
testpaths = ["tests"]
|
|
49
60
|
pythonpath = ["src"]
|
|
61
|
+
|
|
62
|
+
[tool.black]
|
|
63
|
+
line-length = 100
|
|
64
|
+
target-version = ["py310", "py311", "py312", "py313", "py314"]
|
|
65
|
+
|
|
66
|
+
[tool.isort]
|
|
67
|
+
profile = "black"
|
|
68
|
+
line_length = 100
|
|
69
|
+
known_first_party = ["brlib"]
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Copies public member docstrings into Markdown files in an adjacent "wiki" directory,
|
|
5
|
+
presumably a clone of brlib's GitHub wiki repo. This is used to refresh the wiki's contents.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import inspect
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
|
|
11
|
+
import brlib
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def main() -> None:
|
|
15
|
+
"""
|
|
16
|
+
Copies public member docstrings into Markdown files in an adjacent "wiki" directory,
|
|
17
|
+
presumably a clone of brlib's GitHub wiki repo. This is used to refresh the wiki's contents.
|
|
18
|
+
"""
|
|
19
|
+
wiki_dir = Path(__file__).parent.parent / "wiki"
|
|
20
|
+
public_members = {
|
|
21
|
+
name: mem for name, mem in inspect.getmembers(brlib) if not name.startswith("_")
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
for member_name, member in public_members.items():
|
|
25
|
+
if inspect.ismodule(member):
|
|
26
|
+
continue
|
|
27
|
+
file_path = wiki_dir / f"{member_name}.md"
|
|
28
|
+
file_path.write_text(clean_docstring(member.__doc__), encoding="UTF-8")
|
|
29
|
+
|
|
30
|
+
# for classes or variables which are the instantiation of a singleton class
|
|
31
|
+
if not inspect.isfunction(member):
|
|
32
|
+
# create files for each of the class's public methods
|
|
33
|
+
methods = inspect.getmembers(member, predicate=is_function_or_method)
|
|
34
|
+
public_methods = {name: mem for name, mem in methods if not name.startswith("_")}
|
|
35
|
+
for method_name, method in public_methods.items():
|
|
36
|
+
file_path = wiki_dir / f"{member_name}.{method_name}.md"
|
|
37
|
+
file_path.write_text(clean_docstring(method.__doc__), encoding="UTF-8")
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def clean_docstring(docstring: str) -> str:
|
|
41
|
+
"""Reformat whitespace in `docstring`."""
|
|
42
|
+
# remove leading newline
|
|
43
|
+
if docstring[0] == "\n":
|
|
44
|
+
docstring = docstring[1:]
|
|
45
|
+
return docstring
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def is_function_or_method(member: object) -> bool:
|
|
49
|
+
"""
|
|
50
|
+
Checks whether `inspect.isfunction` or `inspect.ismethod` is `True`. `isfunction` finds methods
|
|
51
|
+
if `member` is a class, and `ismethod` finds methods if `member` is a class instance.
|
|
52
|
+
"""
|
|
53
|
+
return inspect.isfunction(member) or inspect.ismethod(member)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
if __name__ == "__main__":
|
|
57
|
+
main()
|
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
"""
|
|
2
|
+
A library for collecting baseball statistics from [Baseball
|
|
3
|
+
Reference](https://www.baseball-reference.com).
|
|
4
|
+
|
|
5
|
+
Documentation can be found on the [wiki](https://github.com/john-bieren/brlib/wiki).
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from .all_players import all_players
|
|
2
9
|
from .find_asg import find_asg
|
|
3
10
|
from .find_games import find_games
|
|
4
11
|
from .find_teams import find_teams
|
|
@@ -13,10 +20,10 @@ from .player_set import PlayerSet
|
|
|
13
20
|
from .team import Team
|
|
14
21
|
from .team_set import TeamSet
|
|
15
22
|
|
|
16
|
-
__version__ = "0.
|
|
23
|
+
__version__ = "0.3.0"
|
|
17
24
|
|
|
18
25
|
__all__ = [
|
|
19
|
-
"
|
|
26
|
+
"all_players",
|
|
20
27
|
"find_asg",
|
|
21
28
|
"find_games",
|
|
22
29
|
"find_teams",
|
|
@@ -29,5 +36,5 @@ __all__ = [
|
|
|
29
36
|
"Player",
|
|
30
37
|
"PlayerSet",
|
|
31
38
|
"Team",
|
|
32
|
-
"TeamSet"
|
|
39
|
+
"TeamSet",
|
|
33
40
|
]
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
"""Defines and instantiates AbbreviationsManager singleton."""
|
|
1
|
+
"""Defines and instantiates `AbbreviationsManager` singleton."""
|
|
4
2
|
|
|
5
3
|
import functools
|
|
6
4
|
import os
|
|
@@ -8,15 +6,21 @@ from datetime import datetime
|
|
|
8
6
|
|
|
9
7
|
import pandas as pd
|
|
10
8
|
from bs4 import BeautifulSoup as bs
|
|
11
|
-
from curl_cffi import Response
|
|
9
|
+
from curl_cffi.requests import Response
|
|
12
10
|
|
|
13
11
|
from ..options import write
|
|
14
|
-
from .constants import (
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
from .constants import (
|
|
13
|
+
BML_FRANCHISE_ABVS,
|
|
14
|
+
CACHE_DIR,
|
|
15
|
+
CACHE_TIMEZONE,
|
|
16
|
+
CURRENT_YEAR,
|
|
17
|
+
CY_BASEBALL,
|
|
18
|
+
FIRST_GAMES_YEAR,
|
|
19
|
+
SEASON_START_DATE,
|
|
20
|
+
TEAM_ALIASES,
|
|
21
|
+
)
|
|
17
22
|
from .requests_manager import req_man
|
|
18
23
|
from .singleton import Singleton
|
|
19
|
-
from .utils import report_on_exc
|
|
20
24
|
|
|
21
25
|
|
|
22
26
|
class AbbreviationsManager(Singleton):
|
|
@@ -25,6 +29,7 @@ class AbbreviationsManager(Singleton):
|
|
|
25
29
|
franchise abbreviations used by Baseball Reference. Manages retrieval and caching of the data,
|
|
26
30
|
loads data on import of brlib. Has methods for working with these abbreviations.
|
|
27
31
|
"""
|
|
32
|
+
|
|
28
33
|
def __init__(self) -> None:
|
|
29
34
|
self._cache_file = CACHE_DIR / "abv_data_v1.csv"
|
|
30
35
|
self.df = pd.DataFrame()
|
|
@@ -68,7 +73,6 @@ class AbbreviationsManager(Singleton):
|
|
|
68
73
|
self.df.to_csv(self._cache_file, index=False)
|
|
69
74
|
self.df.rename({"Team ID": "Team", "Franchise ID": "Franchise"}, axis=1, inplace=True)
|
|
70
75
|
|
|
71
|
-
@report_on_exc()
|
|
72
76
|
def _gather_abbreviations(self, page: Response) -> None:
|
|
73
77
|
"""Scrapes team_IDs page and create `self.df`."""
|
|
74
78
|
soup = bs(page.content, "lxml")
|
|
@@ -82,12 +86,13 @@ class AbbreviationsManager(Singleton):
|
|
|
82
86
|
record = [ele.text.strip() for ele in row.find_all(["th", "td"])]
|
|
83
87
|
if record[4] == "Present":
|
|
84
88
|
record[4] = str(CURRENT_YEAR + CY_BASEBALL - 1)
|
|
85
|
-
del record[2]
|
|
89
|
+
del record[2] # remove the column of full team names
|
|
86
90
|
|
|
87
91
|
# create indicator column for major Negro League teams
|
|
88
92
|
if i == 0:
|
|
89
93
|
record.append("BML")
|
|
90
94
|
else:
|
|
95
|
+
# noinspection PyTypeChecker
|
|
91
96
|
record.append(record[0] in BML_FRANCHISE_ABVS)
|
|
92
97
|
records.append(record)
|
|
93
98
|
|
|
@@ -111,73 +116,69 @@ class AbbreviationsManager(Singleton):
|
|
|
111
116
|
|
|
112
117
|
@functools.cache
|
|
113
118
|
def _find_correct_teams(
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
+
self,
|
|
120
|
+
abbreviation: str,
|
|
121
|
+
season: int,
|
|
122
|
+
era_adjustment: bool,
|
|
123
|
+
) -> pd.DataFrame:
|
|
119
124
|
"""
|
|
120
125
|
Returns the team row associated with `abbreviation` during `season`.
|
|
121
126
|
Can return an empty DataFrame if there is no match.
|
|
122
127
|
|
|
123
|
-
If `era_adjustment` is True
|
|
128
|
+
If `era_adjustment` is `True`, the return DataFrame will contain the row associated with
|
|
124
129
|
`abbreviation`'s franchise during `season` even if the abbreviation is not correct.
|
|
125
|
-
For example, `self._find_correct_teams("FLA", 2025, True)` returns the
|
|
126
|
-
There can be multiple rows in the return DataFrame if an abbreviation, e.g.
|
|
130
|
+
For example, `self._find_correct_teams("FLA", 2025, True)` returns the MIA team row.
|
|
131
|
+
There can be multiple rows in the return DataFrame if an abbreviation, e.g. BAL,
|
|
127
132
|
is valid during a season, e.g. 1915, and is also associated with a franchise that
|
|
128
|
-
is active during that year, e.g.
|
|
129
|
-
`self._find_correct_teams("BAL", 1915, True)`, the
|
|
133
|
+
is active during that year, e.g. SLB which uses BAL in later years. In this case,
|
|
134
|
+
`self._find_correct_teams("BAL", 1915, True)`, the BAL and SLB team rows are returned.
|
|
130
135
|
"""
|
|
131
136
|
abv_rows = self.df.loc[self.df["Team"] == abbreviation]
|
|
132
137
|
|
|
133
138
|
if era_adjustment:
|
|
139
|
+
# handle potential overlap of abbreviations (e.g. BAL, 1915)
|
|
134
140
|
potential_franchises = abv_rows["Franchise"].values
|
|
135
141
|
franchise_rows = self.df.loc[self.df["Franchise"].isin(potential_franchises)]
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
142
|
+
matching_franchises = franchise_rows.loc[
|
|
143
|
+
(franchise_rows["First Year"] <= season) & (franchise_rows["Last Year"] >= season)
|
|
144
|
+
]["Franchise"]
|
|
139
145
|
correct_rows = abv_rows.loc[abv_rows["Franchise"].isin(matching_franchises)]
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
146
|
+
# handle the special case of the 1939 Toledo Crawfords, who changed leagues mid-season
|
|
147
|
+
# these are treated as separate teams and have different abbreviations (TC and TC2)
|
|
148
|
+
if season == 1939 and "PC" in matching_franchises.values:
|
|
149
|
+
correct_rows = correct_rows.loc[correct_rows["Franchise"] != "PC"]
|
|
150
|
+
tc_rows = self.df.loc[self.df["Team"].isin({"TC", "TC2"})]
|
|
151
|
+
correct_rows = pd.concat([correct_rows, tc_rows], ignore_index=True)
|
|
152
|
+
else:
|
|
153
|
+
# check whether abbreviation is valid for season, if so pass that row forward
|
|
154
|
+
mask = (abv_rows["First Year"] <= season) & (abv_rows["Last Year"] >= season)
|
|
155
|
+
correct_rows = abv_rows.loc[mask]
|
|
156
|
+
assert len(correct_rows) <= 1
|
|
157
|
+
|
|
158
|
+
# For each row in correct_rows, find the team row with the shortest year range that
|
|
159
|
+
# includes season within the same franchise.
|
|
160
|
+
# This corrects abbreviations for era (if applicable), and also fixes discontinuities.
|
|
161
|
+
# For example, LAA is listed as 1961-present, but CAL and ANA were also used during
|
|
162
|
+
# parts of that time. The rows returned should reflect the abbreviations used during season.
|
|
163
|
+
correct_rows.reset_index(drop=True, inplace=True)
|
|
164
|
+
for i, row in correct_rows.iterrows():
|
|
157
165
|
franchise_rows = self.df.loc[self.df["Franchise"] == row["Franchise"]]
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
season: int,
|
|
170
|
-
era_adjustment: bool
|
|
171
|
-
) -> list[str]:
|
|
166
|
+
franchise_rows = franchise_rows.loc[
|
|
167
|
+
(franchise_rows["First Year"] <= season) & (franchise_rows["Last Year"] >= season)
|
|
168
|
+
]
|
|
169
|
+
# for the 1939 Crawfords, skip the normal process to enable the prior workaround
|
|
170
|
+
if not (season == 1939 and row["Franchise"] == "PC"):
|
|
171
|
+
years_col = franchise_rows["Last Year"] - franchise_rows["First Year"]
|
|
172
|
+
correct_row = franchise_rows.loc[years_col == years_col.min()]
|
|
173
|
+
correct_rows.iloc[i] = correct_row.reset_index(drop=True).iloc[0]
|
|
174
|
+
return correct_rows
|
|
175
|
+
|
|
176
|
+
def correct_abvs(self, abbreviation: str, season: int, era_adjustment: bool) -> list[str]:
|
|
172
177
|
"""Returns the team abbreviations from `self._find_correct_teams`."""
|
|
173
178
|
team_rows = self._find_correct_teams(abbreviation, season, era_adjustment)
|
|
174
179
|
return team_rows["Team"].values.tolist()
|
|
175
180
|
|
|
176
|
-
def franchise_abv(
|
|
177
|
-
self,
|
|
178
|
-
abbreviation: str,
|
|
179
|
-
season: int
|
|
180
|
-
) -> str:
|
|
181
|
+
def franchise_abv(self, abbreviation: str, season: int) -> str:
|
|
181
182
|
"""Returns the franchise abbreviation for the team at `abbreviation` and `season`."""
|
|
182
183
|
team_row = self._find_correct_teams(abbreviation, season, era_adjustment=False)
|
|
183
184
|
if team_row.empty:
|
|
@@ -187,7 +188,7 @@ class AbbreviationsManager(Singleton):
|
|
|
187
188
|
def all_team_abvs(self, abbreviation: str, season: int) -> list[str]:
|
|
188
189
|
"""
|
|
189
190
|
Returns all team abbreviations used by the franchise which is associated with the team at
|
|
190
|
-
`abbreviation` and `season`, e.g. ("ATH", 2025) returns ["PHA", "KCA", "OAK", "ATH"]
|
|
191
|
+
`abbreviation` and `season`, e.g. `("ATH", 2025)` returns `["PHA", "KCA", "OAK", "ATH"]`.
|
|
191
192
|
"""
|
|
192
193
|
franchise_abv = self.franchise_abv(abbreviation, season)
|
|
193
194
|
franchise_df = self.df.loc[self.df["Franchise"] == franchise_abv]
|
|
@@ -215,7 +216,7 @@ class AbbreviationsManager(Singleton):
|
|
|
215
216
|
"""
|
|
216
217
|
# some aliases, e.g. KCA, are valid team abvs, these should be left alone
|
|
217
218
|
team_row = self._find_correct_teams(abbreviation, season, era_adjustment=False)
|
|
218
|
-
if not team_row.empty:
|
|
219
|
+
if not team_row.empty: # this is a valid team abbreviation for season
|
|
219
220
|
return team_row["Team"].values[0]
|
|
220
221
|
|
|
221
222
|
# otherwise, convert alias to team abv
|
|
@@ -226,4 +227,5 @@ class AbbreviationsManager(Singleton):
|
|
|
226
227
|
return abbreviation
|
|
227
228
|
return correct_row["Team"].values[0]
|
|
228
229
|
|
|
230
|
+
|
|
229
231
|
abv_man = AbbreviationsManager()
|