ossapi 5.1.3__tar.gz → 5.2.0__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.
- {ossapi-5.1.3 → ossapi-5.2.0}/PKG-INFO +4 -3
- {ossapi-5.1.3 → ossapi-5.2.0}/ossapi/__init__.py +1 -2
- {ossapi-5.1.3 → ossapi-5.2.0}/ossapi/models.py +10 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/ossapi/ossapiv2.py +18 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/ossapi/ossapiv2_async.py +18 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/ossapi.egg-info/PKG-INFO +4 -3
- {ossapi-5.1.3 → ossapi-5.2.0}/pyproject.toml +10 -2
- {ossapi-5.1.3 → ossapi-5.2.0}/tests/test_endpoints.py +5 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/.gitignore +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/.nojekyll +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/LICENSE +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/Makefile +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/README.md +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/_static/custom.css +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/advanced.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/api-reference.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/async.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/beatmap packs.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/beatmaps.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/beatmapsets.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/changelog.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/chat.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/comments.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/conf.py +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/creating-a-client.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/domains.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/endpoints.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/events.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/expandable-models.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/foreign-keys.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/forums.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/friends.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/generate_docs.py +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/generate_readme_list.py +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/grants.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/home.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/index.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/matches.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/me.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/news.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/oauth.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/pagination.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/quickstart.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/rankings.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/rooms.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/scores.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/seasonal backgrounds.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/serializing-models.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/spotlights.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/users.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/docs/wiki.rst +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/ossapi/encoder.py +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/ossapi/enums.py +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/ossapi/mod.py +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/ossapi/ossapi.py +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/ossapi/replay.py +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/ossapi/utils.py +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/ossapi.egg-info/SOURCES.txt +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/ossapi.egg-info/dependency_links.txt +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/ossapi.egg-info/requires.txt +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/ossapi.egg-info/top_level.txt +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/setup.cfg +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/tests/__init__.py +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/tests/test_cursor.py +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/tests/test_models.py +0 -0
- {ossapi-5.1.3 → ossapi-5.2.0}/tests/test_v1.py +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: ossapi
|
|
3
|
-
Version: 5.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 5.2.0
|
|
4
|
+
Summary: The definitive python wrapper for the osu! api
|
|
5
5
|
Author-email: Liam DeVoe <orionldevoe@gmail.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/tybug/ossapi
|
|
7
7
|
Keywords: osu!,wrapper,api,python
|
|
@@ -16,6 +16,7 @@ Requires-Dist: osrparse~=6.0
|
|
|
16
16
|
Requires-Dist: typing_utils
|
|
17
17
|
Provides-Extra: async
|
|
18
18
|
Requires-Dist: aiohttp; extra == "async"
|
|
19
|
+
Dynamic: license-file
|
|
19
20
|
|
|
20
21
|
# ossapi ([documentation](https://tybug.github.io/ossapi/)) [](https://pypi.org/project/ossapi/)
|
|
21
22
|
|
|
@@ -3,7 +3,6 @@ import logging
|
|
|
3
3
|
# we need to explicitly set a handler for the logging module to be happy
|
|
4
4
|
handler = logging.StreamHandler()
|
|
5
5
|
logging.getLogger("ossapi").addHandler(handler)
|
|
6
|
-
from importlib import metadata
|
|
7
6
|
|
|
8
7
|
from ossapi.ossapi import (
|
|
9
8
|
OssapiV1,
|
|
@@ -145,7 +144,7 @@ from ossapi.ossapiv2_async import OssapiAsync
|
|
|
145
144
|
from oauthlib.oauth2 import AccessDeniedError, TokenExpiredError
|
|
146
145
|
from oauthlib.oauth2.rfc6749.errors import InsufficientScopeError
|
|
147
146
|
|
|
148
|
-
__version__ =
|
|
147
|
+
__version__ = "5.2.0"
|
|
149
148
|
|
|
150
149
|
__all__ = [
|
|
151
150
|
# OssapiV1
|
|
@@ -1596,3 +1596,13 @@ class DailyChallengeUserStats(Model):
|
|
|
1596
1596
|
class NonLegacyMod(Model):
|
|
1597
1597
|
acronym: str
|
|
1598
1598
|
settings: Any
|
|
1599
|
+
|
|
1600
|
+
|
|
1601
|
+
class Tag(Model):
|
|
1602
|
+
id: int
|
|
1603
|
+
name: str
|
|
1604
|
+
description: str
|
|
1605
|
+
|
|
1606
|
+
|
|
1607
|
+
class Tags(Model):
|
|
1608
|
+
tags: List[Tag]
|
|
@@ -37,6 +37,8 @@ from ossapi.models import (
|
|
|
37
37
|
Score,
|
|
38
38
|
BeatmapsetSearchResult,
|
|
39
39
|
ModdingHistoryEventsBundle,
|
|
40
|
+
Tag,
|
|
41
|
+
Tags,
|
|
40
42
|
User,
|
|
41
43
|
Rankings,
|
|
42
44
|
BeatmapScores,
|
|
@@ -2730,6 +2732,22 @@ class Ossapi:
|
|
|
2730
2732
|
spotlights = self._get(Spotlights, "/spotlights")
|
|
2731
2733
|
return spotlights.spotlights
|
|
2732
2734
|
|
|
2735
|
+
# /tags
|
|
2736
|
+
# -----
|
|
2737
|
+
|
|
2738
|
+
@request(Scope.PUBLIC, category="tags")
|
|
2739
|
+
def tags(self) -> List[Tag]:
|
|
2740
|
+
"""
|
|
2741
|
+
Get beatmap tags.
|
|
2742
|
+
|
|
2743
|
+
Notes
|
|
2744
|
+
-----
|
|
2745
|
+
Implements the `Get Tags
|
|
2746
|
+
<https://osu.ppy.sh/docs/index.html#get-apiv2tags>`__ endpoint.
|
|
2747
|
+
"""
|
|
2748
|
+
tags = self._get(Tags, "/tags")
|
|
2749
|
+
return tags.tags
|
|
2750
|
+
|
|
2733
2751
|
# /users
|
|
2734
2752
|
# ------
|
|
2735
2753
|
|
|
@@ -50,6 +50,8 @@ from ossapi.models import (
|
|
|
50
50
|
Score,
|
|
51
51
|
BeatmapsetSearchResult,
|
|
52
52
|
ModdingHistoryEventsBundle,
|
|
53
|
+
Tag,
|
|
54
|
+
Tags,
|
|
53
55
|
User,
|
|
54
56
|
Rankings,
|
|
55
57
|
BeatmapScores,
|
|
@@ -2829,6 +2831,22 @@ class OssapiAsync:
|
|
|
2829
2831
|
spotlights = await self._get(Spotlights, "/spotlights")
|
|
2830
2832
|
return spotlights.spotlights
|
|
2831
2833
|
|
|
2834
|
+
# /tags
|
|
2835
|
+
# -----
|
|
2836
|
+
|
|
2837
|
+
@request(Scope.PUBLIC, category="tags")
|
|
2838
|
+
async def tags(self) -> List[Tag]:
|
|
2839
|
+
"""
|
|
2840
|
+
Get beatmap tags.
|
|
2841
|
+
|
|
2842
|
+
Notes
|
|
2843
|
+
-----
|
|
2844
|
+
Implements the `Get Tags
|
|
2845
|
+
<https://osu.ppy.sh/docs/index.html#get-apiv2tags>`__ endpoint.
|
|
2846
|
+
"""
|
|
2847
|
+
tags = await self._get(Tags, "/tags")
|
|
2848
|
+
return tags.tags
|
|
2849
|
+
|
|
2832
2850
|
# /users
|
|
2833
2851
|
# ------
|
|
2834
2852
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: ossapi
|
|
3
|
-
Version: 5.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 5.2.0
|
|
4
|
+
Summary: The definitive python wrapper for the osu! api
|
|
5
5
|
Author-email: Liam DeVoe <orionldevoe@gmail.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/tybug/ossapi
|
|
7
7
|
Keywords: osu!,wrapper,api,python
|
|
@@ -16,6 +16,7 @@ Requires-Dist: osrparse~=6.0
|
|
|
16
16
|
Requires-Dist: typing_utils
|
|
17
17
|
Provides-Extra: async
|
|
18
18
|
Requires-Dist: aiohttp; extra == "async"
|
|
19
|
+
Dynamic: license-file
|
|
19
20
|
|
|
20
21
|
# ossapi ([documentation](https://tybug.github.io/ossapi/)) [](https://pypi.org/project/ossapi/)
|
|
21
22
|
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
1
5
|
[project]
|
|
2
6
|
name = "ossapi"
|
|
3
|
-
|
|
4
|
-
|
|
7
|
+
# see [tool.setuptools.dynamic]
|
|
8
|
+
dynamic = ["version"]
|
|
9
|
+
description = "The definitive python wrapper for the osu! api"
|
|
5
10
|
readme = "README.md"
|
|
6
11
|
keywords = ["osu!", "wrapper", "api", "python"]
|
|
7
12
|
authors = [
|
|
@@ -24,3 +29,6 @@ async = ["aiohttp"]
|
|
|
24
29
|
|
|
25
30
|
[project.urls]
|
|
26
31
|
"Homepage" = "https://github.com/tybug/ossapi"
|
|
32
|
+
|
|
33
|
+
[tool.setuptools.dynamic]
|
|
34
|
+
version = {attr = "ossapi.__version__"}
|
|
@@ -331,6 +331,11 @@ class TestScores(TestCase):
|
|
|
331
331
|
api.scores("osu", cursor_string=scores.cursor_string)
|
|
332
332
|
|
|
333
333
|
|
|
334
|
+
class TestTags(TestCase):
|
|
335
|
+
def test_deserialize(self):
|
|
336
|
+
api.tags()
|
|
337
|
+
|
|
338
|
+
|
|
334
339
|
# ======================
|
|
335
340
|
# api_full test cases
|
|
336
341
|
# ======================
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|