riotskillissue 0.1.0__py3-none-any.whl

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 (75) hide show
  1. riotskillissue/__init__.py +5 -0
  2. riotskillissue/api/__init__.py +0 -0
  3. riotskillissue/api/client_mixin.py +131 -0
  4. riotskillissue/api/endpoints/account.py +188 -0
  5. riotskillissue/api/endpoints/champion-mastery.py +143 -0
  6. riotskillissue/api/endpoints/champion.py +40 -0
  7. riotskillissue/api/endpoints/champion_mastery.py +154 -0
  8. riotskillissue/api/endpoints/clash.py +176 -0
  9. riotskillissue/api/endpoints/league-exp.py +54 -0
  10. riotskillissue/api/endpoints/league.py +226 -0
  11. riotskillissue/api/endpoints/league_exp.py +56 -0
  12. riotskillissue/api/endpoints/lol-challenges.py +197 -0
  13. riotskillissue/api/endpoints/lol-rso-match.py +124 -0
  14. riotskillissue/api/endpoints/lol-status.py +38 -0
  15. riotskillissue/api/endpoints/lol_challenges.py +214 -0
  16. riotskillissue/api/endpoints/lol_rso_match.py +132 -0
  17. riotskillissue/api/endpoints/lol_status.py +40 -0
  18. riotskillissue/api/endpoints/lor-deck.py +65 -0
  19. riotskillissue/api/endpoints/lor-inventory.py +38 -0
  20. riotskillissue/api/endpoints/lor-match.py +73 -0
  21. riotskillissue/api/endpoints/lor-ranked.py +38 -0
  22. riotskillissue/api/endpoints/lor-status.py +38 -0
  23. riotskillissue/api/endpoints/lor_deck.py +70 -0
  24. riotskillissue/api/endpoints/lor_inventory.py +40 -0
  25. riotskillissue/api/endpoints/lor_match.py +78 -0
  26. riotskillissue/api/endpoints/lor_ranked.py +40 -0
  27. riotskillissue/api/endpoints/lor_status.py +40 -0
  28. riotskillissue/api/endpoints/match.py +170 -0
  29. riotskillissue/api/endpoints/riftbound-content.py +42 -0
  30. riotskillissue/api/endpoints/riftbound_content.py +44 -0
  31. riotskillissue/api/endpoints/spectator-tft.py +42 -0
  32. riotskillissue/api/endpoints/spectator.py +44 -0
  33. riotskillissue/api/endpoints/spectator_tft.py +44 -0
  34. riotskillissue/api/endpoints/summoner.py +74 -0
  35. riotskillissue/api/endpoints/tft-league.py +240 -0
  36. riotskillissue/api/endpoints/tft-match.py +89 -0
  37. riotskillissue/api/endpoints/tft-status.py +38 -0
  38. riotskillissue/api/endpoints/tft-summoner.py +69 -0
  39. riotskillissue/api/endpoints/tft_league.py +260 -0
  40. riotskillissue/api/endpoints/tft_match.py +94 -0
  41. riotskillissue/api/endpoints/tft_status.py +40 -0
  42. riotskillissue/api/endpoints/tft_summoner.py +74 -0
  43. riotskillissue/api/endpoints/tournament-stub.py +162 -0
  44. riotskillissue/api/endpoints/tournament.py +243 -0
  45. riotskillissue/api/endpoints/tournament_stub.py +176 -0
  46. riotskillissue/api/endpoints/val-console-match.py +108 -0
  47. riotskillissue/api/endpoints/val-console-ranked.py +54 -0
  48. riotskillissue/api/endpoints/val-content.py +42 -0
  49. riotskillissue/api/endpoints/val-match.py +104 -0
  50. riotskillissue/api/endpoints/val-ranked.py +50 -0
  51. riotskillissue/api/endpoints/val-status.py +38 -0
  52. riotskillissue/api/endpoints/val_console_match.py +116 -0
  53. riotskillissue/api/endpoints/val_console_ranked.py +56 -0
  54. riotskillissue/api/endpoints/val_content.py +44 -0
  55. riotskillissue/api/endpoints/val_match.py +112 -0
  56. riotskillissue/api/endpoints/val_ranked.py +52 -0
  57. riotskillissue/api/endpoints/val_status.py +40 -0
  58. riotskillissue/api/models.py +4295 -0
  59. riotskillissue/auth.py +76 -0
  60. riotskillissue/cli.py +84 -0
  61. riotskillissue/core/cache.py +60 -0
  62. riotskillissue/core/client.py +47 -0
  63. riotskillissue/core/config.py +19 -0
  64. riotskillissue/core/http.py +144 -0
  65. riotskillissue/core/pagination.py +63 -0
  66. riotskillissue/core/ratelimit.py +185 -0
  67. riotskillissue/core/types.py +57 -0
  68. riotskillissue/core/utils.py +25 -0
  69. riotskillissue/static.py +71 -0
  70. riotskillissue/testing.py +46 -0
  71. riotskillissue-0.1.0.dist-info/METADATA +29 -0
  72. riotskillissue-0.1.0.dist-info/RECORD +75 -0
  73. riotskillissue-0.1.0.dist-info/WHEEL +4 -0
  74. riotskillissue-0.1.0.dist-info/entry_points.txt +2 -0
  75. riotskillissue-0.1.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,176 @@
1
+ # Generated Code. Do not edit.
2
+ from typing import Optional, List, Dict, Any
3
+ from riotskillissue.core.http import HttpClient
4
+ from riotskillissue.api.models import *
5
+
6
+ class ClashApi:
7
+ def __init__(self, http: HttpClient):
8
+ self.http = http
9
+
10
+
11
+ async def get_players_by_puuid(
12
+ self,
13
+ region: str,
14
+
15
+ puuid: str,
16
+
17
+ ) -> List[clash_v1_PlayerDto]:
18
+ """
19
+ Get players by puuid
20
+ """
21
+ path = "/lol/clash/v1/players/by-puuid/{puuid}"
22
+ # Replace path params
23
+
24
+ path = path.replace("{" + "puuid" + "}", str(puuid))
25
+
26
+
27
+ # Query params
28
+ params = {
29
+
30
+ }
31
+ # Filter None
32
+ params = {k: v for k, v in params.items() if v is not None}
33
+
34
+ response = await self.http.request(
35
+ method="GET",
36
+ url=path,
37
+ region_or_platform=region,
38
+ params=params
39
+ )
40
+
41
+ from pydantic import TypeAdapter
42
+ return TypeAdapter(List[clash_v1_PlayerDto]).validate_python(response.json())
43
+
44
+
45
+ async def get_team_by_id(
46
+ self,
47
+ region: str,
48
+
49
+ teamId: str,
50
+
51
+ ) -> clash_v1_TeamDto:
52
+ """
53
+ Get team by ID.
54
+ """
55
+ path = "/lol/clash/v1/teams/{teamId}"
56
+ # Replace path params
57
+
58
+ path = path.replace("{" + "teamId" + "}", str(teamId))
59
+
60
+
61
+ # Query params
62
+ params = {
63
+
64
+ }
65
+ # Filter None
66
+ params = {k: v for k, v in params.items() if v is not None}
67
+
68
+ response = await self.http.request(
69
+ method="GET",
70
+ url=path,
71
+ region_or_platform=region,
72
+ params=params
73
+ )
74
+
75
+ from pydantic import TypeAdapter
76
+ return TypeAdapter(clash_v1_TeamDto).validate_python(response.json())
77
+
78
+
79
+ async def get_tournaments(
80
+ self,
81
+ region: str,
82
+
83
+ ) -> List[clash_v1_TournamentDto]:
84
+ """
85
+ Get all active or upcoming tournaments.
86
+ """
87
+ path = "/lol/clash/v1/tournaments"
88
+ # Replace path params
89
+
90
+
91
+ # Query params
92
+ params = {
93
+
94
+ }
95
+ # Filter None
96
+ params = {k: v for k, v in params.items() if v is not None}
97
+
98
+ response = await self.http.request(
99
+ method="GET",
100
+ url=path,
101
+ region_or_platform=region,
102
+ params=params
103
+ )
104
+
105
+ from pydantic import TypeAdapter
106
+ return TypeAdapter(List[clash_v1_TournamentDto]).validate_python(response.json())
107
+
108
+
109
+ async def get_tournament_by_team(
110
+ self,
111
+ region: str,
112
+
113
+ teamId: str,
114
+
115
+ ) -> clash_v1_TournamentDto:
116
+ """
117
+ Get tournament by team ID.
118
+ """
119
+ path = "/lol/clash/v1/tournaments/by-team/{teamId}"
120
+ # Replace path params
121
+
122
+ path = path.replace("{" + "teamId" + "}", str(teamId))
123
+
124
+
125
+ # Query params
126
+ params = {
127
+
128
+ }
129
+ # Filter None
130
+ params = {k: v for k, v in params.items() if v is not None}
131
+
132
+ response = await self.http.request(
133
+ method="GET",
134
+ url=path,
135
+ region_or_platform=region,
136
+ params=params
137
+ )
138
+
139
+ from pydantic import TypeAdapter
140
+ return TypeAdapter(clash_v1_TournamentDto).validate_python(response.json())
141
+
142
+
143
+ async def get_tournament_by_id(
144
+ self,
145
+ region: str,
146
+
147
+ tournamentId: int,
148
+
149
+ ) -> clash_v1_TournamentDto:
150
+ """
151
+ Get tournament by ID.
152
+ """
153
+ path = "/lol/clash/v1/tournaments/{tournamentId}"
154
+ # Replace path params
155
+
156
+ path = path.replace("{" + "tournamentId" + "}", str(tournamentId))
157
+
158
+
159
+ # Query params
160
+ params = {
161
+
162
+ }
163
+ # Filter None
164
+ params = {k: v for k, v in params.items() if v is not None}
165
+
166
+ response = await self.http.request(
167
+ method="GET",
168
+ url=path,
169
+ region_or_platform=region,
170
+ params=params
171
+ )
172
+
173
+ from pydantic import TypeAdapter
174
+ return TypeAdapter(clash_v1_TournamentDto).validate_python(response.json())
175
+
176
+
@@ -0,0 +1,54 @@
1
+ # Generated Code. Do not edit.
2
+ from typing import Optional, List, Dict, Any
3
+ from riot.core.http import HttpClient
4
+ from riot.core.types import Region, Platform
5
+ from riot.api.models import *
6
+
7
+ class League-expApi:
8
+ def __init__(self, http: HttpClient):
9
+ self.http = http
10
+
11
+
12
+ async def get_league_entries(
13
+ self,
14
+ region: str,
15
+
16
+ queue: str,
17
+
18
+ tier: str,
19
+
20
+ division: str,
21
+
22
+ page: int = None,
23
+
24
+ ) -> List[league-exp-v4.LeagueEntryDTO]:
25
+ """
26
+ Get all the league entries.
27
+ """
28
+ path = "/lol/league-exp/v4/entries/{queue}/{tier}/{division}"
29
+ # Replace path params
30
+
31
+ path = path.replace("{" + "queue" + "}", str(queue))
32
+
33
+ path = path.replace("{" + "tier" + "}", str(tier))
34
+
35
+ path = path.replace("{" + "division" + "}", str(division))
36
+
37
+
38
+ # Query params
39
+ params = {
40
+
41
+ "page": page,
42
+
43
+ }
44
+ # Filter None
45
+ params = {k: v for k, v in params.items() if v is not None}
46
+
47
+ response = await self.http.request(
48
+ method="GET",
49
+ url=path,
50
+ region_or_platform=region,
51
+ params=params
52
+ )
53
+ return response.json()
54
+
@@ -0,0 +1,226 @@
1
+ # Generated Code. Do not edit.
2
+ from typing import Optional, List, Dict, Any
3
+ from riotskillissue.core.http import HttpClient
4
+ from riotskillissue.api.models import *
5
+
6
+ class LeagueApi:
7
+ def __init__(self, http: HttpClient):
8
+ self.http = http
9
+
10
+
11
+ async def get_challenger_league(
12
+ self,
13
+ region: str,
14
+
15
+ queue: str,
16
+
17
+ ) -> league_v4_LeagueListDTO:
18
+ """
19
+ Get the challenger league for given queue.
20
+ """
21
+ path = "/lol/league/v4/challengerleagues/by-queue/{queue}"
22
+ # Replace path params
23
+
24
+ path = path.replace("{" + "queue" + "}", str(queue))
25
+
26
+
27
+ # Query params
28
+ params = {
29
+
30
+ }
31
+ # Filter None
32
+ params = {k: v for k, v in params.items() if v is not None}
33
+
34
+ response = await self.http.request(
35
+ method="GET",
36
+ url=path,
37
+ region_or_platform=region,
38
+ params=params
39
+ )
40
+
41
+ from pydantic import TypeAdapter
42
+ return TypeAdapter(league_v4_LeagueListDTO).validate_python(response.json())
43
+
44
+
45
+ async def get_league_entries_by_puuid(
46
+ self,
47
+ region: str,
48
+
49
+ encryptedPUUID: str,
50
+
51
+ ) -> List[league_v4_LeagueEntryDTO]:
52
+ """
53
+ Get league entries in all queues for a given puuid
54
+ """
55
+ path = "/lol/league/v4/entries/by-puuid/{encryptedPUUID}"
56
+ # Replace path params
57
+
58
+ path = path.replace("{" + "encryptedPUUID" + "}", str(encryptedPUUID))
59
+
60
+
61
+ # Query params
62
+ params = {
63
+
64
+ }
65
+ # Filter None
66
+ params = {k: v for k, v in params.items() if v is not None}
67
+
68
+ response = await self.http.request(
69
+ method="GET",
70
+ url=path,
71
+ region_or_platform=region,
72
+ params=params
73
+ )
74
+
75
+ from pydantic import TypeAdapter
76
+ return TypeAdapter(List[league_v4_LeagueEntryDTO]).validate_python(response.json())
77
+
78
+
79
+ async def get_league_entries(
80
+ self,
81
+ region: str,
82
+
83
+ division: str,
84
+
85
+ queue: str,
86
+
87
+ tier: str,
88
+
89
+ page: int = None,
90
+
91
+ ) -> List[league_v4_LeagueEntryDTO]:
92
+ """
93
+ Get all the league entries.
94
+ """
95
+ path = "/lol/league/v4/entries/{queue}/{tier}/{division}"
96
+ # Replace path params
97
+
98
+ path = path.replace("{" + "division" + "}", str(division))
99
+
100
+ path = path.replace("{" + "queue" + "}", str(queue))
101
+
102
+ path = path.replace("{" + "tier" + "}", str(tier))
103
+
104
+
105
+ # Query params
106
+ params = {
107
+
108
+ "page": page,
109
+
110
+ }
111
+ # Filter None
112
+ params = {k: v for k, v in params.items() if v is not None}
113
+
114
+ response = await self.http.request(
115
+ method="GET",
116
+ url=path,
117
+ region_or_platform=region,
118
+ params=params
119
+ )
120
+
121
+ from pydantic import TypeAdapter
122
+ return TypeAdapter(List[league_v4_LeagueEntryDTO]).validate_python(response.json())
123
+
124
+
125
+ async def get_grandmaster_league(
126
+ self,
127
+ region: str,
128
+
129
+ queue: str,
130
+
131
+ ) -> league_v4_LeagueListDTO:
132
+ """
133
+ Get the grandmaster league of a specific queue.
134
+ """
135
+ path = "/lol/league/v4/grandmasterleagues/by-queue/{queue}"
136
+ # Replace path params
137
+
138
+ path = path.replace("{" + "queue" + "}", str(queue))
139
+
140
+
141
+ # Query params
142
+ params = {
143
+
144
+ }
145
+ # Filter None
146
+ params = {k: v for k, v in params.items() if v is not None}
147
+
148
+ response = await self.http.request(
149
+ method="GET",
150
+ url=path,
151
+ region_or_platform=region,
152
+ params=params
153
+ )
154
+
155
+ from pydantic import TypeAdapter
156
+ return TypeAdapter(league_v4_LeagueListDTO).validate_python(response.json())
157
+
158
+
159
+ async def get_league_by_id(
160
+ self,
161
+ region: str,
162
+
163
+ leagueId: str,
164
+
165
+ ) -> league_v4_LeagueListDTO:
166
+ """
167
+ Get league with given ID, including inactive entries.
168
+ """
169
+ path = "/lol/league/v4/leagues/{leagueId}"
170
+ # Replace path params
171
+
172
+ path = path.replace("{" + "leagueId" + "}", str(leagueId))
173
+
174
+
175
+ # Query params
176
+ params = {
177
+
178
+ }
179
+ # Filter None
180
+ params = {k: v for k, v in params.items() if v is not None}
181
+
182
+ response = await self.http.request(
183
+ method="GET",
184
+ url=path,
185
+ region_or_platform=region,
186
+ params=params
187
+ )
188
+
189
+ from pydantic import TypeAdapter
190
+ return TypeAdapter(league_v4_LeagueListDTO).validate_python(response.json())
191
+
192
+
193
+ async def get_master_league(
194
+ self,
195
+ region: str,
196
+
197
+ queue: str,
198
+
199
+ ) -> league_v4_LeagueListDTO:
200
+ """
201
+ Get the master league for given queue.
202
+ """
203
+ path = "/lol/league/v4/masterleagues/by-queue/{queue}"
204
+ # Replace path params
205
+
206
+ path = path.replace("{" + "queue" + "}", str(queue))
207
+
208
+
209
+ # Query params
210
+ params = {
211
+
212
+ }
213
+ # Filter None
214
+ params = {k: v for k, v in params.items() if v is not None}
215
+
216
+ response = await self.http.request(
217
+ method="GET",
218
+ url=path,
219
+ region_or_platform=region,
220
+ params=params
221
+ )
222
+
223
+ from pydantic import TypeAdapter
224
+ return TypeAdapter(league_v4_LeagueListDTO).validate_python(response.json())
225
+
226
+
@@ -0,0 +1,56 @@
1
+ # Generated Code. Do not edit.
2
+ from typing import Optional, List, Dict, Any
3
+ from riotskillissue.core.http import HttpClient
4
+ from riotskillissue.api.models import *
5
+
6
+ class League_expApi:
7
+ def __init__(self, http: HttpClient):
8
+ self.http = http
9
+
10
+
11
+ async def get_league_entries(
12
+ self,
13
+ region: str,
14
+
15
+ division: str,
16
+
17
+ queue: str,
18
+
19
+ tier: str,
20
+
21
+ page: int = None,
22
+
23
+ ) -> List[league_exp_v4_LeagueEntryDTO]:
24
+ """
25
+ Get all the league entries.
26
+ """
27
+ path = "/lol/league-exp/v4/entries/{queue}/{tier}/{division}"
28
+ # Replace path params
29
+
30
+ path = path.replace("{" + "division" + "}", str(division))
31
+
32
+ path = path.replace("{" + "queue" + "}", str(queue))
33
+
34
+ path = path.replace("{" + "tier" + "}", str(tier))
35
+
36
+
37
+ # Query params
38
+ params = {
39
+
40
+ "page": page,
41
+
42
+ }
43
+ # Filter None
44
+ params = {k: v for k, v in params.items() if v is not None}
45
+
46
+ response = await self.http.request(
47
+ method="GET",
48
+ url=path,
49
+ region_or_platform=region,
50
+ params=params
51
+ )
52
+
53
+ from pydantic import TypeAdapter
54
+ return TypeAdapter(List[league_exp_v4_LeagueEntryDTO]).validate_python(response.json())
55
+
56
+
@@ -0,0 +1,197 @@
1
+ # Generated Code. Do not edit.
2
+ from typing import Optional, List, Dict, Any
3
+ from riot.core.http import HttpClient
4
+ from riot.core.types import Region, Platform
5
+ from riot.api.models import *
6
+
7
+ class Lol-challengesApi:
8
+ def __init__(self, http: HttpClient):
9
+ self.http = http
10
+
11
+
12
+ async def get_all_challenge_configs(
13
+ self,
14
+ region: str,
15
+
16
+ ) -> List[lol-challenges-v1.ChallengeConfigInfoDto]:
17
+ """
18
+ List of all basic challenge configuration information (includes all translations for names and descriptions)
19
+ """
20
+ path = "/lol/challenges/v1/challenges/config"
21
+ # Replace path params
22
+
23
+
24
+ # Query params
25
+ params = {
26
+
27
+ }
28
+ # Filter None
29
+ params = {k: v for k, v in params.items() if v is not None}
30
+
31
+ response = await self.http.request(
32
+ method="GET",
33
+ url=path,
34
+ region_or_platform=region,
35
+ params=params
36
+ )
37
+ return response.json()
38
+
39
+ async def get_all_challenge_percentiles(
40
+ self,
41
+ region: str,
42
+
43
+ ) -> Dict[str, Dict[str, float]]:
44
+ """
45
+ Map of level to percentile of players who have achieved it - keys: ChallengeId -> Season -> Level -> percentile of players who achieved it
46
+ """
47
+ path = "/lol/challenges/v1/challenges/percentiles"
48
+ # Replace path params
49
+
50
+
51
+ # Query params
52
+ params = {
53
+
54
+ }
55
+ # Filter None
56
+ params = {k: v for k, v in params.items() if v is not None}
57
+
58
+ response = await self.http.request(
59
+ method="GET",
60
+ url=path,
61
+ region_or_platform=region,
62
+ params=params
63
+ )
64
+ return response.json()
65
+
66
+ async def get_challenge_configs(
67
+ self,
68
+ region: str,
69
+
70
+ challengeId: int,
71
+
72
+ ) -> lol-challenges-v1.ChallengeConfigInfoDto:
73
+ """
74
+ Get challenge configuration (REST)
75
+ """
76
+ path = "/lol/challenges/v1/challenges/{challengeId}/config"
77
+ # Replace path params
78
+
79
+ path = path.replace("{" + "challengeId" + "}", str(challengeId))
80
+
81
+
82
+ # Query params
83
+ params = {
84
+
85
+ }
86
+ # Filter None
87
+ params = {k: v for k, v in params.items() if v is not None}
88
+
89
+ response = await self.http.request(
90
+ method="GET",
91
+ url=path,
92
+ region_or_platform=region,
93
+ params=params
94
+ )
95
+ return response.json()
96
+
97
+ async def get_challenge_leaderboards(
98
+ self,
99
+ region: str,
100
+
101
+ level: str,
102
+
103
+ challengeId: int,
104
+
105
+ limit: int = None,
106
+
107
+ ) -> List[lol-challenges-v1.ApexPlayerInfoDto]:
108
+ """
109
+ Return top players for each level. Level must be MASTER, GRANDMASTER or CHALLENGER.
110
+ """
111
+ path = "/lol/challenges/v1/challenges/{challengeId}/leaderboards/by-level/{level}"
112
+ # Replace path params
113
+
114
+ path = path.replace("{" + "level" + "}", str(level))
115
+
116
+ path = path.replace("{" + "challengeId" + "}", str(challengeId))
117
+
118
+
119
+ # Query params
120
+ params = {
121
+
122
+ "limit": limit,
123
+
124
+ }
125
+ # Filter None
126
+ params = {k: v for k, v in params.items() if v is not None}
127
+
128
+ response = await self.http.request(
129
+ method="GET",
130
+ url=path,
131
+ region_or_platform=region,
132
+ params=params
133
+ )
134
+ return response.json()
135
+
136
+ async def get_challenge_percentiles(
137
+ self,
138
+ region: str,
139
+
140
+ challengeId: int,
141
+
142
+ ) -> Dict[str, float]:
143
+ """
144
+ Map of level to percentile of players who have achieved it
145
+ """
146
+ path = "/lol/challenges/v1/challenges/{challengeId}/percentiles"
147
+ # Replace path params
148
+
149
+ path = path.replace("{" + "challengeId" + "}", str(challengeId))
150
+
151
+
152
+ # Query params
153
+ params = {
154
+
155
+ }
156
+ # Filter None
157
+ params = {k: v for k, v in params.items() if v is not None}
158
+
159
+ response = await self.http.request(
160
+ method="GET",
161
+ url=path,
162
+ region_or_platform=region,
163
+ params=params
164
+ )
165
+ return response.json()
166
+
167
+ async def get_player_data(
168
+ self,
169
+ region: str,
170
+
171
+ puuid: str,
172
+
173
+ ) -> lol-challenges-v1.PlayerInfoDto:
174
+ """
175
+ Returns player information with list of all progressed challenges (REST)
176
+ """
177
+ path = "/lol/challenges/v1/player-data/{puuid}"
178
+ # Replace path params
179
+
180
+ path = path.replace("{" + "puuid" + "}", str(puuid))
181
+
182
+
183
+ # Query params
184
+ params = {
185
+
186
+ }
187
+ # Filter None
188
+ params = {k: v for k, v in params.items() if v is not None}
189
+
190
+ response = await self.http.request(
191
+ method="GET",
192
+ url=path,
193
+ region_or_platform=region,
194
+ params=params
195
+ )
196
+ return response.json()
197
+