MouseTools 4.0.0b0__tar.gz → 4.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. {mousetools-4.0.0b0 → mousetools-4.0.1}/LICENSE +1 -1
  2. mousetools-4.0.1/PKG-INFO +116 -0
  3. mousetools-4.0.1/README.md +92 -0
  4. mousetools-4.0.1/mousetools/__init__.py +4 -0
  5. mousetools-4.0.1/mousetools/channels/facilities/__init__.py +858 -0
  6. mousetools-4.0.1/mousetools/channels/facilitystatus/__init__.py +263 -0
  7. mousetools-4.0.1/mousetools.egg-info/PKG-INFO +116 -0
  8. {mousetools-4.0.0b0/MouseTools.egg-info → mousetools-4.0.1/mousetools.egg-info}/SOURCES.txt +5 -5
  9. {mousetools-4.0.0b0 → mousetools-4.0.1}/pyproject.toml +10 -11
  10. mousetools-4.0.0b0/MouseTools.egg-info/PKG-INFO +0 -80
  11. mousetools-4.0.0b0/PKG-INFO +0 -80
  12. mousetools-4.0.0b0/README.md +0 -62
  13. mousetools-4.0.0b0/mousetools/__init__.py +0 -7
  14. mousetools-4.0.0b0/mousetools/channels/facilities/__init__.py +0 -520
  15. mousetools-4.0.0b0/mousetools/channels/facilitystatus/__init__.py +0 -153
  16. {mousetools-4.0.0b0 → mousetools-4.0.1}/mousetools/api/__init__.py +0 -0
  17. {mousetools-4.0.0b0 → mousetools-4.0.1}/mousetools/api/menu.py +0 -0
  18. {mousetools-4.0.0b0 → mousetools-4.0.1}/mousetools/auth.py +0 -0
  19. {mousetools-4.0.0b0 → mousetools-4.0.1}/mousetools/channels/__init__.py +0 -0
  20. {mousetools-4.0.0b0 → mousetools-4.0.1}/mousetools/channels/enums.py +0 -0
  21. {mousetools-4.0.0b0 → mousetools-4.0.1}/mousetools/channels/facilities/enums.py +0 -0
  22. {mousetools-4.0.0b0 → mousetools-4.0.1}/mousetools/mixins/__init__.py +0 -0
  23. {mousetools-4.0.0b0 → mousetools-4.0.1}/mousetools/mixins/couchbase.py +0 -0
  24. {mousetools-4.0.0b0 → mousetools-4.0.1}/mousetools/mixins/disney.py +0 -0
  25. {mousetools-4.0.0b0 → mousetools-4.0.1}/mousetools/resources/environments.bin +0 -0
  26. {mousetools-4.0.0b0/MouseTools.egg-info → mousetools-4.0.1/mousetools.egg-info}/dependency_links.txt +0 -0
  27. {mousetools-4.0.0b0/MouseTools.egg-info → mousetools-4.0.1/mousetools.egg-info}/requires.txt +0 -0
  28. {mousetools-4.0.0b0/MouseTools.egg-info → mousetools-4.0.1/mousetools.egg-info}/top_level.txt +0 -0
  29. {mousetools-4.0.0b0 → mousetools-4.0.1}/setup.cfg +0 -0
  30. {mousetools-4.0.0b0 → mousetools-4.0.1}/tests/test_mixins.py +0 -0
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 Scott Caratozzolo
3
+ Copyright (c) 2018-2025 Scott Caratozzolo
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -0,0 +1,116 @@
1
+ Metadata-Version: 2.4
2
+ Name: mousetools
3
+ Version: 4.0.1
4
+ Summary: An unofficial Python wrapper for Disney's API
5
+ Author: Scott Caratozzolo
6
+ License-Expression: MIT
7
+ Project-URL: repository, https://gitlab.com/caratozzoloxyz/public/MouseTools
8
+ Project-URL: documentation, https://caratozzoloxyz.gitlab.io/public/MouseTools/
9
+ Project-URL: issues, https://gitlab.com/caratozzoloxyz/public/MouseTools/-/issues
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.9
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Operating System :: OS Independent
17
+ Requires-Python: <4.0,>=3.9
18
+ Description-Content-Type: text/markdown
19
+ License-File: LICENSE
20
+ Requires-Dist: httpx>=0.27.2
21
+ Requires-Dist: pycryptodome>=3.22.0
22
+ Requires-Dist: tzdata>=2024.1
23
+ Dynamic: license-file
24
+
25
+ # MouseTools
26
+
27
+ [![PyPI version](https://badge.fury.io/py/MouseTools.svg)](https://badge.fury.io/py/MouseTools) [![Downloads](https://pepy.tech/badge/mousetools)](https://pepy.tech/project/mousetools)
28
+
29
+
30
+ An unofficial Python wrapper for the Disney API. Data is pulled directly from Disney. This package supports Walt Disney World and Disneyland Resort.
31
+
32
+ This package makes no attempt to access data that would require individual user authentication. All data is pulled using public channels.
33
+
34
+ ## Installation
35
+ You can install using pip:
36
+ ```bash
37
+ pip install mousetools
38
+ ```
39
+ You can also install directly from this repo in case of any changes not uploaded to Pypi.
40
+ ```bash
41
+ pip install git+https://gitlab.com/caratozzoloxyz/public/MouseTools
42
+ ```
43
+
44
+ # Usage
45
+
46
+ The Disney API considers everything an entity. Attractions, resorts, restaurants, etc, are all entities. Entities belong to channels, or a group of entities.
47
+
48
+ ## Getting Started
49
+
50
+ You'll want to create a facility channel object.
51
+
52
+ ```python
53
+ from mousetools.channels.facilities import AttractionFacilityChild
54
+
55
+ pirates = AttractionFacilityChild("wdw.facilities.1_0.en_us.attraction.80010177;entityType=Attraction")
56
+ ```
57
+
58
+
59
+ All Facility Entities inherit from FacilityChildChannel.
60
+
61
+ ```python
62
+ print(pirates.name)
63
+ # 'Pirates of the Caribbean'
64
+
65
+ print(pirates.ancestor_theme_park_id)
66
+ # '80007944;entityType=theme-park'
67
+ ```
68
+
69
+ In order to access a facility's live data, you'll need a FacilityStatusChildChannel. Fortunately for you, this can be quickly done from the facility object.
70
+ ```python
71
+ fs = pirates.get_facility_status_channel()
72
+ print(fs.get_wait_time())
73
+ # 15
74
+
75
+ print(fs.get_status())
76
+ # 'Operating'
77
+ ```
78
+
79
+ Alternatively, you can create the object yourself.
80
+ ```python
81
+ from mousetools.channels.facilitystatus import FacilityStatusChannel
82
+
83
+ fsc = FacilityStatusChannel("wdw.facilitystatus.1_0.80010177;entityType=Attraction", lazy_load=False)
84
+ print(fs.last_update)
85
+ # 2025-05-15 22:52:52.176069-04:00
86
+ ```
87
+
88
+ ***NOTE: All channels are lazy loaded, meaning there is no request sent to load the data until an object's attributes are accessed. This allows objects to be created faster, and reduce requests to Disney's servers until the data is actually needed.***
89
+
90
+
91
+ For ease of use, you can use the available channel enums or facility enums to get access to a destination facility's children channels.
92
+
93
+ ```python
94
+ from mousetools.channels.facilities import FacilityChannel, ThemeParkFacilityChild
95
+ from mousetools.channel.facilities.enums import WaltDisneyWorldParkChannelIds
96
+ from mousetools.channels.facilitystatus import FacilityStatusChannel
97
+ from mousetools.channels.enums import WDWCouchbaseChannels, DLRCouchbaseChannels
98
+
99
+ wdw = FacilityChannel(WDWCouchbaseChannels.FACILITIES)
100
+ print(list(wdw.get_children_attractions()))
101
+ # [Attraction(wdw.facilities.1_0.en_us.123), Attraction(wdw.facilities.1_0.en_us.456), ...]
102
+
103
+ dlr = FacilityStatusChannel(DLRCouchbaseChannels.FACILITY_STATUS)
104
+ print(dlr.get_children_channel_ids())
105
+ # ["dlr.facilitystatus.1_0.123", "dlr.facilitystatus.1_0.456", ...]
106
+
107
+ mk = ThemeParkFacilityChild(WaltDisneyWorldParkChannelIds.MAGIC_KINGDOM, lazy_load=False)
108
+ print(mk.description)
109
+ # "Enter a Land Where Fantasy Reigns"
110
+ ```
111
+
112
+ ### License
113
+ 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)
114
+
115
+ ### Disclaimer
116
+ 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/).
@@ -0,0 +1,92 @@
1
+ # MouseTools
2
+
3
+ [![PyPI version](https://badge.fury.io/py/MouseTools.svg)](https://badge.fury.io/py/MouseTools) [![Downloads](https://pepy.tech/badge/mousetools)](https://pepy.tech/project/mousetools)
4
+
5
+
6
+ An unofficial Python wrapper for the Disney API. Data is pulled directly from Disney. This package supports Walt Disney World and Disneyland Resort.
7
+
8
+ This package makes no attempt to access data that would require individual user authentication. All data is pulled using public channels.
9
+
10
+ ## Installation
11
+ You can install using pip:
12
+ ```bash
13
+ pip install mousetools
14
+ ```
15
+ You can also install directly from this repo in case of any changes not uploaded to Pypi.
16
+ ```bash
17
+ pip install git+https://gitlab.com/caratozzoloxyz/public/MouseTools
18
+ ```
19
+
20
+ # Usage
21
+
22
+ The Disney API considers everything an entity. Attractions, resorts, restaurants, etc, are all entities. Entities belong to channels, or a group of entities.
23
+
24
+ ## Getting Started
25
+
26
+ You'll want to create a facility channel object.
27
+
28
+ ```python
29
+ from mousetools.channels.facilities import AttractionFacilityChild
30
+
31
+ pirates = AttractionFacilityChild("wdw.facilities.1_0.en_us.attraction.80010177;entityType=Attraction")
32
+ ```
33
+
34
+
35
+ All Facility Entities inherit from FacilityChildChannel.
36
+
37
+ ```python
38
+ print(pirates.name)
39
+ # 'Pirates of the Caribbean'
40
+
41
+ print(pirates.ancestor_theme_park_id)
42
+ # '80007944;entityType=theme-park'
43
+ ```
44
+
45
+ In order to access a facility's live data, you'll need a FacilityStatusChildChannel. Fortunately for you, this can be quickly done from the facility object.
46
+ ```python
47
+ fs = pirates.get_facility_status_channel()
48
+ print(fs.get_wait_time())
49
+ # 15
50
+
51
+ print(fs.get_status())
52
+ # 'Operating'
53
+ ```
54
+
55
+ Alternatively, you can create the object yourself.
56
+ ```python
57
+ from mousetools.channels.facilitystatus import FacilityStatusChannel
58
+
59
+ fsc = FacilityStatusChannel("wdw.facilitystatus.1_0.80010177;entityType=Attraction", lazy_load=False)
60
+ print(fs.last_update)
61
+ # 2025-05-15 22:52:52.176069-04:00
62
+ ```
63
+
64
+ ***NOTE: All channels are lazy loaded, meaning there is no request sent to load the data until an object's attributes are accessed. This allows objects to be created faster, and reduce requests to Disney's servers until the data is actually needed.***
65
+
66
+
67
+ For ease of use, you can use the available channel enums or facility enums to get access to a destination facility's children channels.
68
+
69
+ ```python
70
+ from mousetools.channels.facilities import FacilityChannel, ThemeParkFacilityChild
71
+ from mousetools.channel.facilities.enums import WaltDisneyWorldParkChannelIds
72
+ from mousetools.channels.facilitystatus import FacilityStatusChannel
73
+ from mousetools.channels.enums import WDWCouchbaseChannels, DLRCouchbaseChannels
74
+
75
+ wdw = FacilityChannel(WDWCouchbaseChannels.FACILITIES)
76
+ print(list(wdw.get_children_attractions()))
77
+ # [Attraction(wdw.facilities.1_0.en_us.123), Attraction(wdw.facilities.1_0.en_us.456), ...]
78
+
79
+ dlr = FacilityStatusChannel(DLRCouchbaseChannels.FACILITY_STATUS)
80
+ print(dlr.get_children_channel_ids())
81
+ # ["dlr.facilitystatus.1_0.123", "dlr.facilitystatus.1_0.456", ...]
82
+
83
+ mk = ThemeParkFacilityChild(WaltDisneyWorldParkChannelIds.MAGIC_KINGDOM, lazy_load=False)
84
+ print(mk.description)
85
+ # "Enter a Land Where Fantasy Reigns"
86
+ ```
87
+
88
+ ### License
89
+ 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)
90
+
91
+ ### Disclaimer
92
+ 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/).
@@ -0,0 +1,4 @@
1
+ import logging
2
+
3
+ logger = logging.getLogger(__name__)
4
+ logger.addHandler(logging.NullHandler())