An all-inclusive Python framework for the Riot Games League of Legends API. Cass focuses on making the data easy and fun to work with, while providing all the tools necessary to create a website or do data analysis.
MIT License
552
stars
135
forks
source link
HTTPError when getting champion_masteries from Summoner #175
See title. h.id (or something else that forces the object to get fully loaded) seems to be needed, otherwise a different error occurs.
Steps to reproduce:
>>> import cassiopeia
>>> cassiopeia.set_riot_api_key("SCRUBBED")
>>> cassiopeia.set_default_region("NA")
>>> h = cassiopeia.get_summoner(name="ekkremental")
>>> h.id
Making call: https://na1.api.riotgames.com/lol/summoner/v3/summoners/by-name/ekkremental
88100039
>>> h.champion_masteries
Making call: https://na1.api.riotgames.com/lol/champion-mastery/v3/champion-masteries/by-summoner/88100039
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/cassiopeia/datastores/riotapi/common.py", line 243, in __call__
connection=self.connection)
File "/usr/local/lib/python3.6/site-packages/cassiopeia/datastores/common.py", line 133, in get
raise HTTPError(message, status_code, response_headers)
cassiopeia.datastores.common.HTTPError: Bad request - Invalid routing value na1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.6/site-packages/cassiopeia/core/summoner.py", line 192, in champion_masteries
return ChampionMasteries(summoner=self, region=self.region)
File "/usr/local/lib/python3.6/site-packages/cassiopeia/core/common.py", line 44, in default_region_wrapper
return method(self, *args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/cassiopeia/core/common.py", line 192, in __call__
return pipeline.get(cls, query=query)
File "/usr/local/lib/python3.6/site-packages/datapipelines/pipelines.py", line 460, in get
return handler.get(query, context)
File "/usr/local/lib/python3.6/site-packages/datapipelines/pipelines.py", line 186, in get
result = self._source.get(self._source_type, deepcopy(query), context)
File "/usr/local/lib/python3.6/site-packages/datapipelines/sources.py", line 120, in get
return source.get(type, deepcopy(query), context)
File "/usr/local/lib/python3.6/site-packages/datapipelines/sources.py", line 69, in wrapper
return call(self, query, context=context)
File "/usr/local/lib/python3.6/site-packages/datapipelines/queries.py", line 323, in wrapped
return method(self, query, context)
File "/usr/local/lib/python3.6/site-packages/cassiopeia/datastores/riotapi/championmastery.py", line 79, in get_champion_mastery_list
data = self._get(url, {}, self._get_rate_limiter(query["platform"], "champion-masteries/by-summoner/summonerId"))
File "/usr/local/lib/python3.6/site-packages/cassiopeia/datastores/riotapi/common.py", line 200, in _get
return request()
File "/usr/local/lib/python3.6/site-packages/cassiopeia/datastores/riotapi/common.py", line 247, in __call__
return self._retry_request_by_handling_error(error)
File "/usr/local/lib/python3.6/site-packages/cassiopeia/datastores/riotapi/common.py", line 269, in _retry_request_by_handling_error
new_handler = self.service._handlers[error.code]()
KeyError: 400
See title. h.id (or something else that forces the object to get fully loaded) seems to be needed, otherwise a different error occurs.
Steps to reproduce: