From 4cbe592e0a0fae13f0a89918a66fd983dd84464f Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Wed, 15 Apr 2026 22:28:45 -0500 Subject: feat: add Textual TUI with auto-refresh, leaders, playoff picture, and box score MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Introduces an interactive terminal UI via the `--tui` flag backed by the Textual framework. Scores and standings auto-refresh on a configurable interval (default 60s, minimum 10s) using asyncio with nba_api calls offloaded to a thread pool to keep the event loop unblocked. New tabs: - Scores / Standings (existing views, now live-updating) - Leaders: top-25 by stat category, cycle with < / > keys - Playoff Picture: conference seeding with clinch/elimination status - Box Score: per-player live stats, load any game with keys 1–9 Refactored scores.py and standings.py to separate rendering from I/O (get_scoreboard_table, get_east/west_standings_table), keeping the existing static CLI path fully intact. Added -sc / -st shortcut flags. Adds textual>=0.89.1,<7.0 dependency, build-system declaration for uv, and package-data entry for the bundled .tcss stylesheet. --- nba_scores.egg-info/PKG-INFO | 79 ++++++++++++++++++++++++++++++++ nba_scores.egg-info/SOURCES.txt | 19 ++++++++ nba_scores.egg-info/dependency_links.txt | 1 + nba_scores.egg-info/entry_points.txt | 2 + nba_scores.egg-info/requires.txt | 4 ++ nba_scores.egg-info/top_level.txt | 1 + 6 files changed, 106 insertions(+) create mode 100644 nba_scores.egg-info/PKG-INFO create mode 100644 nba_scores.egg-info/SOURCES.txt create mode 100644 nba_scores.egg-info/dependency_links.txt create mode 100644 nba_scores.egg-info/entry_points.txt create mode 100644 nba_scores.egg-info/requires.txt create mode 100644 nba_scores.egg-info/top_level.txt (limited to 'nba_scores.egg-info') diff --git a/nba_scores.egg-info/PKG-INFO b/nba_scores.egg-info/PKG-INFO new file mode 100644 index 0000000..b0263b8 --- /dev/null +++ b/nba_scores.egg-info/PKG-INFO @@ -0,0 +1,79 @@ +Metadata-Version: 2.4 +Name: nba-scores +Version: 0.1.7 +Summary: A CLI interface to get current NBA scores and standings. +Author-email: Christian Cleberg +License-Expression: GPL-3.0-or-later +Project-URL: Homepage, https://git.cleberg.net/nba-scores.git +Project-URL: Issues, https://git.cleberg.net/nba-scores.git +Classifier: Programming Language :: Python :: 3 +Classifier: Operating System :: OS Independent +Requires-Python: >=3.9 +Description-Content-Type: text/markdown +License-File: LICENSE +Requires-Dist: nba_api +Requires-Dist: tabulate +Requires-Dist: argparse +Requires-Dist: textual<7.0,>=0.89.1 +Dynamic: license-file + +# NBA + +NBA is a simple Python package that provides you with a quick and easy +command-line interface to current NBA scores and standings. + +See the [Installation](#installation) & [Usage](#usage) sections below +for more information. + +# Table of Contents + +- [Installation](#installation) +- [Usage](#usage) +- [Contributing](#contributing) + +# Installation + +[Back to top](#table-of-contents) + +## PyPi + +```shell +pipx install nba-scores +``` + +## Manual + +To run the script locally, run the following commands: + +```shell +git clone https://git.cleberg.net/nba-scores.git +cd nba-scores +pipx install . +``` + +![Installation](./screenshots/installation.png) + +# Usage + +[Back to top](#table-of-contents) + +All commands can be passed to the program with the following template: +`nba ` + +| Argument | Shortcut | Description | +|---------------|----------|-----------------------------------| +| `--scores` | `-sc` | Show today's scoreboard | +| `--standings` | `-st` | Show current conference standings | + +Scores: +![Scores](./screenshots/scores.png) + +Standings: +![Standings](./screenshots/standings.png) + +# Contributing + +[Back to top](#table-of-contents) + +Any and all contributions are welcome. Feel free to fork the project, +add features, and submit a pull request. diff --git a/nba_scores.egg-info/SOURCES.txt b/nba_scores.egg-info/SOURCES.txt new file mode 100644 index 0000000..b5c9c92 --- /dev/null +++ b/nba_scores.egg-info/SOURCES.txt @@ -0,0 +1,19 @@ +LICENSE +README.md +pyproject.toml +nba/__init__.py +nba/__main__.py +nba/cli.py +nba/fetch_data.py +nba/scores.py +nba/standings.py +nba/tui/__init__.py +nba/tui/app.py +nba/tui/styles.tcss +nba/tui/widgets.py +nba_scores.egg-info/PKG-INFO +nba_scores.egg-info/SOURCES.txt +nba_scores.egg-info/dependency_links.txt +nba_scores.egg-info/entry_points.txt +nba_scores.egg-info/requires.txt +nba_scores.egg-info/top_level.txt \ No newline at end of file diff --git a/nba_scores.egg-info/dependency_links.txt b/nba_scores.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/nba_scores.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/nba_scores.egg-info/entry_points.txt b/nba_scores.egg-info/entry_points.txt new file mode 100644 index 0000000..9d47cf7 --- /dev/null +++ b/nba_scores.egg-info/entry_points.txt @@ -0,0 +1,2 @@ +[console_scripts] +nba = nba.cli:nba diff --git a/nba_scores.egg-info/requires.txt b/nba_scores.egg-info/requires.txt new file mode 100644 index 0000000..31cd9d4 --- /dev/null +++ b/nba_scores.egg-info/requires.txt @@ -0,0 +1,4 @@ +nba_api +tabulate +argparse +textual<7.0,>=0.89.1 diff --git a/nba_scores.egg-info/top_level.txt b/nba_scores.egg-info/top_level.txt new file mode 100644 index 0000000..6118b05 --- /dev/null +++ b/nba_scores.egg-info/top_level.txt @@ -0,0 +1 @@ +nba -- cgit v1.2.3