Metadata-Version: 2.1
Name: PyScoreSaber
Version: 1.0.4
Summary: Score Saber API wrapper
Home-page: https://github.com/Kiyomi-Parents/PyScoreSaber
Author: LuCkEr-
Author-email: lucker@lucker.xyz
License: UNKNOWN
Project-URL: Bug Tracker, https://github.com/Kiyomi-Parents/PyScoreSaber/issues
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: python-dateutil (~=2.8.2)
Requires-Dist: OutCache (~=0.0.4)
Requires-Dist: setuptools (==62.0.0)
Requires-Dist: marshmallow (==3.15.0)
Requires-Dist: dataclasses-json (==0.5.7)
Requires-Dist: aiohttp (~=3.8.1)
Requires-Dist: Faker (==13.3.4)
Requires-Dist: pytest (==7.1.1)
Requires-Dist: pytest-asyncio (~=0.18.3)

[![PyPI version](https://badge.fury.io/py/PyScoreSaber.svg)](https://pypi.org/project/PyScoreSaber)
# PyScoreSaber
Score Saber API wrapper

Comes with caching and rate limiting out of the box.

There is also a test mode which can be enabled like this ```scoresaber = ScoreSaber(test_mode=True)```.
This will return random data instead of making API requests to Score Saber.

### Usage:
```python
import asyncio
from pyscoresaber import ScoreSaberAPI


async def main():
    async with ScoreSaberAPI() as scoresaber:
        player = await scoresaber.player_full("76561198029447509")
        print(player)

# Get fake data instead
async def main_fake():
    async with ScoreSaberAPI(test_mode=True) as scoresaber:
        player = await scoresaber.player_basic("76561198029447509")
        print(player)

asyncio.run(main())
asyncio.run(main_fake())
```

### Faker provider:
```python
from faker import Faker
from pyscoresaber import ScoreSaberProvider

faker = Faker()
faker.add_provider(ScoreSaberProvider)

player = faker.player_basic("76561198029447509")
print(player)
```


