Python client for NBA statistics located at nba.com
Project description
nbapy - stats.nba.com API for python
Summary
A python facing API for stats.nba.com
Warning stats.nba.com
is notorious for being extremely unreliable. Please report any issues you find.
Usage
All data is returned as a pandas dataframe (check out the starter docs if you're new to pandas). For example:
from nbapy import game
import pandas as pd
game_id = '0021900017' # taken from 'https://stats.nba.com/game/0021900017/'
stats = pd.DataFrame(game.BoxScore(game_id).players_stats())
If you want to cache results so you don't have to reach the api every time, you can use requests-cache
from nbapy import game
import pandas as pd
import requests_cache
requests_cache.install_cache('nbapy_cache')
game_id = '0021900017'
stats = pd.DataFrame(game.BoxScore(game_id).players_stats())
Documentation
An ongoing process, but check out the jupyter notebook docs, or feel free to poke around the codebase.
Installation
To install from pypi:
$ python -m pip install nbapy
Else:
- Download from source (git clone, zipped package)
- Run from the root directory:
$ python -m pip install .
Contributing
1. Fork the repository and create a feature/bug fix branch
2. Install development requirements
$ python -m pip install -e . ".[dev]"
3. Hack away
Coding conventions
- black for formatting
- google docstrings
- flake8 for linting
- mypy for static typing analysis
- conventional commits for commit style.
Optional (but recommended)
nbapy
has a pre-commit file that you can install to automatically enforce these conventions prior to committing via a git hook.
To install: $ pre-commit install
You can also use $ pre-commit run -a
to run the checks manually.
For commit messages, I recommend using commtizen. It is automatically installed in the dev dependencies, so to commit, you just run cz c
and follow the prompts.
4. Create some tests
5. Make sure everything looks good
$ pytest --cov
*
$ pre-commit run -a
(if you didn't install the pre-commit git hook)
* note the first time you run this, it may take a few minutes. However, the requests will cache, and subsequent runs should be much faster.
6. Submit a pull request
Other ways to contribute involve submitting any issues or adding some documentation!
To-Do
- Finish Jupyter Notebook documentation
Authors
This is orginally based off of https://github.com/seemethere/nba_py so a lot of the work was done by those guys. My goal with this project is to clean up the code, add some proper documentation, and keep it up to date.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file nbapy-1.1.8.tar.gz
.
File metadata
- Download URL: nbapy-1.1.8.tar.gz
- Upload date:
- Size: 19.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb8efb303707e5b8673ceb386b7098c0f5ca2271f3fb39049d1a116bdfcf6b7b |
|
MD5 | 90e802404e6e6bdf3f78a907bcbdfcd5 |
|
BLAKE2b-256 | b7392c8699f4aeb3ba4bc3cf72eff3115539e510d49b4ecb6ce26630d4f4ecee |
File details
Details for the file nbapy-1.1.8-py3-none-any.whl
.
File metadata
- Download URL: nbapy-1.1.8-py3-none-any.whl
- Upload date:
- Size: 22.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ecad7ea035f519b3e65e7fb59ac6da58507cec939d908059e0e0185c5f2dc67e |
|
MD5 | d0dee1c084abb3a084ed00d2e75e5adc |
|
BLAKE2b-256 | d26a61d10dabc13fa319a2c5c37f786a21387de35c351c35254da2523272f57c |