Metadata-Version: 2.4
Name: mousetools
Version: 6.0.0
Summary: An unofficial Python wrapper for Disney's API
Author: Scott Caratozzolo
License-Expression: MIT
Project-URL: repository, https://gitlab.com/caratozzoloxyz/public/MouseTools
Project-URL: documentation, https://caratozzoloxyz.gitlab.io/public/MouseTools/
Project-URL: issues, https://gitlab.com/caratozzoloxyz/public/MouseTools/-/issues
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Operating System :: OS Independent
Requires-Python: <4.0,>=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: more-itertools>=10.7.0
Requires-Dist: pycryptodome>=3.22.0
Requires-Dist: python-dateutil>=2.9.0.post0
Requires-Dist: niquests[http3,utls]>=3.20.0
Requires-Dist: tzdata>=2025.2
Requires-Dist: websockets>=13.0
Dynamic: license-file

# MouseTools

![PyPI - Version](https://img.shields.io/pypi/v/mousetools?style=flat-square&logo=python&color=00C106&link=https%3A%2F%2Fpypi.org%2Fproject%2Fmousetools%2F) ![PyPI - Downloads](https://img.shields.io/pypi/dm/mousetools?style=flat-square&color=blue&link=https%3A%2F%2Fpypi.org%2Fproject%2Fmousetools%2F)


An unofficial, **async** Python wrapper for Disney's undocumented API. Data is pulled directly from Disney, and this package makes no attempt to access data that would require individual user authentication — public data only. Supports Walt Disney World and Disneyland Resort.

## Install
You can install using pip:
```bash
pip install mousetools
```
You can also install directly from this repo in case of any changes not uploaded to Pypi.
```bash
pip install git+https://gitlab.com/caratozzoloxyz/public/MouseTools
```

## Quick example

```python
import asyncio
import mousetools
from mousetools import WALT_DISNEY_WORLD

async def main() -> None:
    # Build an unloaded handle via the destination front-door (no I/O yet).
    attraction = WALT_DISNEY_WORLD.get_attraction("80010177")  # Pirates of the Caribbean

    # Loading is EXPLICIT — attribute access does NOT auto-load.
    await attraction.load()

    print(attraction.name)                    # str
    wait = attraction.wait_time               # WaitTime | None
    if wait is not None:
        print("Standby (min):", wait.standby_minutes)
        print("Status:", wait.status)

    park = await attraction.theme_park()      # ThemePark | None
    if park is not None:
        print("In park:", park.name)

    await mousetools.aclose()                 # close the shared default client(s)

asyncio.run(main())
```

📖 **[Full documentation](https://caratozzoloxyz.gitlab.io/public/MouseTools/)**

### License
This project is distributed under the MIT license. For more information see [LICENSE](https://gitlab.com/caratozzoloxyz/public/MouseTools/-/blob/master/LICENSE?ref_type=heads)

### Disclaimer
This project is in no way affiliated with The Walt Disney Company and all use of Disney Services is subject to the [Disney Terms of Use](https://disneytermsofuse.com/).


### About Project

<a href='https://ko-fi.com/scaratozzolo' target='_blank'>
<img src='https://img.shields.io/badge/sponsor-30363D?style=for-the-badge&logo=kofi&logoColor=white&link=https%3A%2F%2Fko-fi.com%2Fscaratozzolo border='0' alt='Support my projects' />
</a>

MouseTools is a passion project I've been working on since 2018 when I was first learning Python. The package has evolved and been rewritten multiple times as I've become a better developer and as the Disney API has changed. There is a lot of time exploring Disney's API and figuring out how all the pieces work before any code is even written. I work on this project when I have time or when I have an idea for another project that could use this data.
