Skip to main content

No project description provided

Project description

Edgework - NHL API Client

A Python client library for interacting with NHL APIs, providing easy access to player statistics, team information, schedules, and more.

🏒 Features

  • Player Data: Access active and historical player information
  • Statistics: Get skater and goalie statistics with flexible filtering
  • Team Information: Retrieve team rosters, stats, and schedules
  • Game Data: Access game schedules and results
  • Easy to Use: Simple, intuitive API with comprehensive documentation

📦 Installation

pip install edgework

🚀 Quick Start

from edgework import Edgework

# Initialize the client
client = Edgework()

# Get active players
players = client.players(active_only=True)
print(f"Found {len(players)} active players")

# Get top scorers
top_scorers = client.skater_stats(
    season="2023-2024",
    sort="points",
    limit=10
)

for player in top_scorers:
    print(f"{player.name}: {player.points} points")

📚 Documentation

Full documentation is available at: https://problemxl.github.io/edgework/

Local Documentation

To view documentation locally:

# Install documentation dependencies
pip install mkdocs mkdocs-material mkdocstrings[python] pymdown-extensions

# Serve documentation locally
mkdocs serve

# Or use the helper script
python docs.py serve

The documentation will be available at http://127.0.0.1:8000/edgework/

🔧 API Reference

Main Client

from edgework import Edgework

client = Edgework(user_agent="MyApp/1.0")  # Optional custom user agent

Player Methods

  • client.players(active_only=True) - Get player list
  • client.skater_stats(season, ...) - Get skater statistics
  • client.goalie_stats(season, ...) - Get goalie statistics

Team Methods

  • client.team_stats(season, ...) - Get team statistics
  • client.get_teams() - Get all teams
  • client.get_roster(team_code, season) - Get team roster

Schedule Methods

  • client.get_schedule() - Get current schedule
  • client.get_schedule_for_date(date) - Get schedule for specific date
  • client.get_schedule_for_date_range(start, end) - Get schedule for date range

🛠️ Development

Setting up Development Environment

# Clone the repository
git clone https://github.com/problemxl/edgework.git
cd edgework

# Install development dependencies
pdm install --dev

# Or using pip
pip install -e .

Running Tests

pytest

Building Documentation

# Install documentation dependencies
pip install mkdocs mkdocs-material mkdocstrings[python] pymdown-extensions

# Build documentation
mkdocs build

# Serve locally
mkdocs serve

📊 Examples

Getting Player Statistics

from edgework import Edgework

client = Edgework()

# Get assists leaders
assist_leaders = client.skater_stats(
    season="2023-2024",
    sort="assists",
    limit=10
)

# Get goalie wins leaders
goalie_wins = client.goalie_stats(
    season="2023-2024",
    sort="wins",
    limit=5
)

Working with Teams

# Get team statistics
team_stats = client.team_stats(season="2023-2024")

# Get team roster
team = team_stats[0]  # First team
roster = team.get_roster()

print(f"Roster for {team.name}:")
print(f"Forwards: {len(roster.forwards)}")
print(f"Defensemen: {len(roster.defensemen)}")
print(f"Goalies: {len(roster.goalies)}")

🎯 Season Format

All season parameters should use the format "YYYY-YYYY":

  • "2023-2024" for the 2023-2024 season
  • "2022-2023" for the 2022-2023 season

🤝 Contributing

Contributions are welcome! Please see our Contributing Guide for details.

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

⚡ API Rate Limiting

Please be respectful of the NHL's servers:

  • Implement appropriate delays between requests
  • Cache responses when possible
  • Handle errors gracefully

🙏 Acknowledgments

  • NHL for providing the API data
  • Contributors and maintainers
  • The Python community

📞 Support


Made with ❤️ for the hockey community

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

edgework-0.6.0.tar.gz (161.1 kB view details)

Uploaded Source

Built Distribution

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

edgework-0.6.0-py3-none-any.whl (52.0 kB view details)

Uploaded Python 3

File details

Details for the file edgework-0.6.0.tar.gz.

File metadata

  • Download URL: edgework-0.6.0.tar.gz
  • Upload date:
  • Size: 161.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for edgework-0.6.0.tar.gz
Algorithm Hash digest
SHA256 0b5b0e063320681002eabc9d2ae60f3fbf50094418d1c42815b79b58b1bb37c8
MD5 501fb59e1a7157a25fb9b45d78026e2d
BLAKE2b-256 bacf2649e1daeefa17b50afb5ff7c7092903b955158893f76d2147626fe92ad9

See more details on using hashes here.

Provenance

The following attestation bundles were made for edgework-0.6.0.tar.gz:

Publisher: publish.yml on problemxl/edgework

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file edgework-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: edgework-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 52.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for edgework-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b421e63921bbf7ef01df74374b8d7167531ab410da2a384ab7dde285a110d2bd
MD5 55d5d34132ef64fcc8ecb44ab81a65f0
BLAKE2b-256 9208d88120dcd7f5578aee02b70fd3b60cb0627e84042782664f3d589f2abcd6

See more details on using hashes here.

Provenance

The following attestation bundles were made for edgework-0.6.0-py3-none-any.whl:

Publisher: publish.yml on problemxl/edgework

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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