Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: postseason bracket rotation #500

Merged
merged 8 commits into from
Oct 2, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/run_unittest_on_pr_open.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.7", "3.8", "3.9", "3.10"]
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
Expand All @@ -25,4 +25,4 @@ jobs:
pip install -r ./requirements.txt
- name: Test with unittest
run: |
python -m unittest discover -s ./tests -p 'test_*.py'
python -m unittest discover -s ./tests -p 'test_*.py'
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -261,6 +261,9 @@ A default `config.json.example` file is included for reference. Copy this file t

* Pitch Data - Pitch data can be shown on the game screen, See the [coordinates readme file](/coordinates/README.md) for details. In addition, the `short` and `long` pitch description can be changed in data/pitches.py

* Previous Play Data - Data for the previous play can be shown on the game screen. See the [coordinates readme file](/coordinates/README.md) for details. Long and short play descriptions can be changed in data/plays.py
* **NOTE:** Because play result data is ephemeral, not every play result will be displayed. Situations like a mound visit, injury, or other timeout immediately following a play often cause the play result to be immediately replaced on the MLB API.

### Flags

You can configure your LED matrix with the same flags used in the [rpi-rgb-led-matrix](https://github.com/hzeller/rpi-rgb-led-matrix) library. More information on these arguments can be found in the library documentation.
Expand Down
4 changes: 4 additions & 0 deletions coordinates/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ The layout can have a couple of different states where things are rendered diffe
* `mph` (true/false) When rendering pitch speed add mph after (99 mph)
* `desc_length` (short/long) The short or long pitch type description, you can change both the short and long description to your liking in data/pitches as long as you do not change the index value.

## Play Result
* `enabled` (true/false) turn feature on/off
* `desc_length` (short/long) The short or long play result description. You can change both the short and long description to your liking in data/plays.

## Updates
The software develops and releases features with full support for the default layouts, so custom layouts may look unsatisfactory if you update to later versions of the scoreboard. If you as a user decide to create a custom layout file, you are responsible for tweaking the coordinates to your liking with each update.

Expand Down
9 changes: 9 additions & 0 deletions data/status.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@
INSTANT_REPLAY = "Instant Replay" # Live
MANAGER_CHALLENGE = "Manager challenge" # Live
MANAGER_CHALLENGE_CATCHDROP_IN_OUTFIELD = "Manager challenge: Catch/drop in outfield" # Live
MANAGER_CHALLENGE_CATCHERS_INTERFERENCE = "Manager challenge: Catchers Interference" # Live
MANAGER_CHALLENGE_CLOSE_PLAY_AT_1ST = "Manager challenge: Close play at 1st" # Live
MANAGER_CHALLENGE_FAIRFOUL_IN_OUTFIELD = "Manager challenge: Fair/foul in outfield" # Live
MANAGER_CHALLENGE_FAN_INTERFERENCE = "Manager challenge: Fan interference" # Live
Expand Down Expand Up @@ -157,6 +158,8 @@
UMPIRE_REVIEW_TOUCHING_A_BASE = "Umpire review: Touching a base" # Live
UMPIRE_REVIEW_TRAP_PLAY_IN_OUTFIELD = "Umpire review: Trap play in outfield" # Live
UMPIRE_REVIEW_SHIFT_VIOLATION = "Umpire review: Def Shift Violation" # Live
UMPIRE_CHALLENGE_PITCH_RESULT = "Umpire Challenge: Pitch Result" # Live
PLAYER_CHALLENGE_PITCH_RESULT = "Player challenge: Pitch Result" # Live
UNKNOWN = "Unknown" # Other
WARMUP = "Warmup" # Live
WRITING = "Writing" # Other
Expand All @@ -170,6 +173,7 @@
INSTANT_REPLAY,
MANAGER_CHALLENGE,
MANAGER_CHALLENGE_CATCHDROP_IN_OUTFIELD,
MANAGER_CHALLENGE_CATCHERS_INTERFERENCE,
MANAGER_CHALLENGE_CLOSE_PLAY_AT_1ST,
MANAGER_CHALLENGE_FAIRFOUL_IN_OUTFIELD,
MANAGER_CHALLENGE_FAN_INTERFERENCE,
Expand Down Expand Up @@ -211,6 +215,8 @@
UMPIRE_REVIEW_TOUCHING_A_BASE,
UMPIRE_REVIEW_TRAP_PLAY_IN_OUTFIELD,
UMPIRE_REVIEW_SHIFT_VIOLATION,
UMPIRE_CHALLENGE_PITCH_RESULT,
PLAYER_CHALLENGE_PITCH_RESULT,
]

GAME_STATE_PREGAME = [SCHEDULED, PREGAME, WARMUP]
Expand Down Expand Up @@ -300,6 +306,7 @@
FORFEIT_WILLFUL_RULE_VIOLATION,
MANAGER_CHALLENGE,
MANAGER_CHALLENGE_CATCHDROP_IN_OUTFIELD,
MANAGER_CHALLENGE_CATCHERS_INTERFERENCE,
MANAGER_CHALLENGE_CLOSE_PLAY_AT_1ST,
MANAGER_CHALLENGE_FAIRFOUL_IN_OUTFIELD,
MANAGER_CHALLENGE_FAN_INTERFERENCE,
Expand Down Expand Up @@ -371,6 +378,8 @@
UMPIRE_REVIEW_TOUCHING_A_BASE,
UMPIRE_REVIEW_TRAP_PLAY_IN_OUTFIELD,
UMPIRE_REVIEW_SHIFT_VIOLATION,
UMPIRE_CHALLENGE_PITCH_RESULT,
PLAYER_CHALLENGE_PITCH_RESULT,
WRITING,
UNKNOWN,
]
Expand Down
11 changes: 6 additions & 5 deletions renderers/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -232,11 +232,12 @@ def __draw_standings(self, cond: Callable[[], bool]):

self.canvas = self.matrix.SwapOnVSync(self.canvas)

if self.data.standings.is_postseason() and update % 20 == 0:
if self.standings_league == "NL":
self.standings_league = "AL"
else:
self.standings_league = "NL"
if self.data.standings.is_postseason():
if update % 20 == 0:
if self.standings_league == "NL":
self.standings_league = "AL"
else:
self.standings_league = "NL"
elif self.canvas.width == 32 and update % 5 == 0:
if self.standings_stat == "w":
self.standings_stat = "l"
Expand Down