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.1.tar.gz (89.8 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.1-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for bball-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4bb9658bd95f5736dbfc6397aba54ac0ef134b65d66c5a14f2aab6ac40aa3fc3
MD5 1334b663c27ec0bbaf150afdba52f9a9
BLAKE2b-256 59e07026126b21a967bc327f346db40e78db1bb21e61c16e0cd581cc43e30dad

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bball-0.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b2f1f837f7c05de05189193ce2c7fd402b42dd6886a8e1750b464e1b398c3ddf
MD5 c49c0a19820fdf2e86a20130c19f6939
BLAKE2b-256 112ef465dd9feb02b0c35ac6e6ae4207fb9a0e0cdfe842748939e381b8ac4d07

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