Skip to main content

NBA analytics platform with core models and utilities

Project description

bball

Comprehensive NBA analytics platform for Python.

Features

  • Core Models - Pydantic models for Players, Teams, Games, and Stats
  • Advanced Analytics - Calculate true shooting %, PER, win shares, and more
  • Data Fetching - Integration with NBA stats API
  • CLI Tools - Command-line interface for quick analysis
  • API Server - REST and GraphQL endpoints for your applications
  • Reporting - Generate visualizations and reports
  • Type Safe - Full type hints and runtime validation

Installation

# Install everything
pip install bball[all]

# Or install specific components
pip install bball              # Just core models and utilities
pip install bball[cli]         # Core + CLI
pip install bball[analytics]   # Core + data, strategies, reports
pip install bball[api]         # Core + API server

Quick Start

from bball import Player, Team, Game, Stats

# Create a player
player = Player(
    id="203999",
    name="Nikola Jokic",
    team_id="DEN",
    position="C",
    height=83,
    weight=284,
    jersey_number=15
)

# Work with stats
from bball import calculate_advanced_stats

stats = Stats(
    points=25.0,
    rebounds=12.0,
    assists=9.0,
    field_goals_made=10,
    field_goals_attempted=18,
    # ... more stats
)

advanced = calculate_advanced_stats(stats)
print(f"True Shooting %: {advanced['true_shooting_pct']:.3f}")

Package Ecosystem

The bball ecosystem consists of a core package and optional extensions:

Package Description Install
bball Core models and utilities pip install bball
bball-cli Command-line interface pip install bball[cli]
bball-api REST/GraphQL API server pip install bball[api]
bball-data Data fetching and processing pip install bball[data]
bball-strategies Analysis strategies and ML models pip install bball[strategies]
bball-reports Report generation and visualization pip install bball[reports]

CLI Usage

# After installing bball[cli]
bball info              # Show installed components
bball version           # Show version information

Development

This project uses modern Python tooling and requires Python 3.13+.

# Clone the repository
git clone https://github.com/bball-dev/bball.git
cd bball

# Install uv package manager
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install all packages in development mode
# This automatically installs Python 3.13 and all dependencies
uv sync --all-packages

# Run tests
uv run pytest

# Run code quality checks
uv run ruff check src/ packages/
uv run ruff format src/ packages/
uv run pyright src/ packages/

For detailed development documentation, see docs/development.md.

Documentation

Contributing

Contributions are welcome! Please see our development guide for:

  • Architecture overview
  • Development workflow
  • Testing strategy
  • Publishing process

Quick Contribution Guide

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Run tests and quality checks (uv run pytest && uv run ruff check)
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to your branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Requirements

  • Python 3.13+
  • See pyproject.toml for package-specific dependencies

Links

Credits

Built with:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bball-0.1.2.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bball-0.1.2-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file bball-0.1.2.tar.gz.

File metadata

  • Download URL: bball-0.1.2.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.14

File hashes

Hashes for bball-0.1.2.tar.gz
Algorithm Hash digest
SHA256 e5c05a122197bbc6fd55669daa34716de5f7648b59fa1d5e5a489675d84b5e36
MD5 6612369206412ea0c777e0cba0df7ef5
BLAKE2b-256 b1dd15594c260cbf212d38c8b91cc9fe6d2ca85b58ede29be2df14355cb22f76

See more details on using hashes here.

File details

Details for the file bball-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: bball-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.14

File hashes

Hashes for bball-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f9de6841dfeed97a753a7a851ad826129126669ca7f61abdd35fec9969556c11
MD5 0ffe9a9e256bffdc7e976e3c24787275
BLAKE2b-256 8541d3d6659e9aa3a9149eafaa1ef01fae62685355f064559a5e25a1d6dd5f3e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page