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.3.2.tar.gz (50.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.3.2-py3-none-any.whl (45.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for edgework-0.3.2.tar.gz
Algorithm Hash digest
SHA256 8f0b2028a5cf5e4d26a5cbeae6d79e4bbdfabdb17b0cf3ae1e3e801a513f4b04
MD5 bb75932520be2bec74e63aab89bce64f
BLAKE2b-256 db511d6027a5d52a2339182cf418c9ab9200092cabc925376194be4d7d7e1628

See more details on using hashes here.

Provenance

The following attestation bundles were made for edgework-0.3.2.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.3.2-py3-none-any.whl.

File metadata

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

File hashes

Hashes for edgework-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e5f5178575a76c5b3e8d45300fe3c58c528c78767b5ce9575d6d698a49163706
MD5 c38e0d880a80220cd13939abd2f4c83f
BLAKE2b-256 36a13b8848bcee216acf7710ad9c3169ebaafc841edd078e5d052f88341135eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for edgework-0.3.2-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