Skip to main content

Pantheon

PyPi Build Status codecov Language grade: Python Downloads

Simple library to use the Riot API with Python Asyncio.

Supports all endpoints.

It has an efficient rate limiting system as well as an error handler that automatically resend request when needed.

There is no cache implemented

The rate limit count is only kept while the script is alive

Currently supported requests :

  • champion masteries by summonerId -> getChampionMasteries(summonerId)
  • champion masteries by summonerId and championId -> getChampionMasteriesByChampionId(summonerId,championId)
  • champion masteries score by summonerId -> getChampionMasteriesScore(summonerId)
  • champion rotations -> getChampionRotations()
  • league by leagueId -> getLeagueById(leagueId)
  • league pages by queue, rank and tier -> getLeaguePage(queue, tier, division, page=1)
  • league position by summonerId -> getLeaguePosition(summonerId)
  • challenger league by queue (optional) -> getChallengerLeague(queue)
  • lol status -> getStatus()
  • master league by queue (optional) -> getMasterLeague(queue)
  • match by matchId -> getMatch(matchId)
  • match timeline by matchId -> getTimeline(matchId)
  • matchlist by accountId (with parameters) -> getMatchlist(self, accountId, params) / params={"queue":420,"season":11}
  • current game by summonerId -> getCurrentGame(summonerId)
  • summoner by summonerId -> getSummoner(summonerId)
  • summoner by accountId -> getSummonerByAccountId(accountId)
  • summoner by name -> getSummonerByName(name)
  • third party code by summonerId -> getThirdPartyCode(summonerId)
  • register provider -> registerProvider(region, callback_url, stub=False)
  • register tournament -> registerTournament(providerId, name, stub=False)
  • create tournament code -> createTournamentCode(tournamentId, data, nb_codes=1, stub=False)
  • get lobby events by tournament code -> getLobbyEvents(tournamentCode, stub=False)

Further requests supported and documentation (hopefully) incoming

To install, run

pip install pantheon
or
pip3 install pantheon

or you can download it and run

python setup.py install
or
python3 setup.py install

An example of usage to get details on the last 10 games :

from pantheon import pantheon
import asyncio

server = "euw1"
api_key = "RGAPI-XXXX"

def requestsLog(url, status, headers):
    print(url)
    print(status)
    print(headers)

panth = pantheon.Pantheon(server, api_key, errorHandling=True, requestsLoggingFunction=requestsLog, debug=True)

async def getSummonerId(name):
    try:
        data = await panth.getSummonerByName(name)
        return (data['id'],data['accountId'])
    except Exception as e:
        print(e)


async def getRecentMatchlist(accountId):
    try:
        data = await panth.getMatchlist(accountId, params={"endIndex":10})
        return data
    except Exception as e:
        print(e)

async def getRecentMatches(accountId):
    try:
        matchlist = await getRecentMatchlist(accountId)
        tasks = [panth.getMatch(match['gameId']) for match in matchlist['matches']]
        return await asyncio.gather(*tasks)
    except Exception as e:
        print(e)


name = "Canisback"

loop = asyncio.get_event_loop()  

(summonerId, accountId) = loop.run_until_complete(getSummonerId(name))
print(summonerId)
print(accountId)
print(loop.run_until_complete(getRecentMatches(accountId)))

Changelog :

  • 1.3.1 :

    • Add a locked function to check if at least one limiter is locked
  • 1.3.0 :

    • Add custom str function for pantheon that returns the rate limits details
    • Fixed a rate limit bug not counting a request when creating a new limit
  • 1.2.1 :

    • Add Tournament matches endpoints
  • 1.2.0 :

    • Add LoR match and matchlist
    • Update deprecated lock handling
  • 1.1.0 :

    • Add support for LoR and Valorant
    • Deleting auto-handling server to region for TFT matches and LoL tournaments endpoints, will break apps using these endpoint without creating another instance of Pantheon with the correct server
  • 1.0.12 :

    • Add support for Clash API
  • 1.0.9 :

    • Clean up some code
  • 1.0.8 :

    • Clean up some code and upgrading for CI
  • 1.0.7 :

    • Added TFT API endpoints
    • Added unit tests covering almost all endpoints, rate limiter not unit tested yet
  • 1.0.6 :

    • Fixed 415 errors
  • 1.0.5 :

    • Updated League endpoints to match with current version
    • Added tournament endpoints (stub ones)
  • 1.0.4 :

    • Added 408 error code
  • 1.0.3 :

    • Updated for v4 endpoints
  • 1.0.2 :

    • Added new getChampionRotations endpoint support
    • Deleted getChampions and getChampionsById due to deprecation of corresponding endpoints
    • Fixed the getTimestamp function for the case when the Date header is missing
  • 1.0.1 :

    • Added a debug flag, while set at True, some messages will be printed, when the rate limiter make a request waiting because limit is reached, or when retrying after an error.
    • Added callback function for logging purpose.
    • Changed error 429 handling (rate limit) so it retries after the value sent in header
    • Added support for list in matchlist params (you can pass {"queue":[420,440]}

Metadata

Release files for pantheon 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pantheon 2.0.0
File Size Uploaded Provenance Actions
pantheon-2.0.0.tar.gz 18.3 kB Without provenance Details for pantheon-2.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pantheon 2.0.0
File Interpreter ABI Platform Actions
pantheon-2.0.0-py3-none-any.whl Python 3 none any Details for pantheon-2.0.0-py3-none-any.whl

Total release size: 41.1 kB

Release files / pantheon-2.0.0.tar.gz

Download URL pantheon-2.0.0.tar.gz
Size 18.3 kB
Tags Source
SHA-256 checksum
How to use checksums
09e2ccb3cc54d968685a871f3ce5bb78e8b0d10e740238f3aaafa1e39c431715
BLAKE2b-256 checksum
How to use checksums
1dbb846a1b636ac45d5b5a6a94f810e89a169b8559ec79deed12c12d02396671
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.7.12

Release files / pantheon-2.0.0-py3-none-any.whl

Download URL pantheon-2.0.0-py3-none-any.whl
Size 22.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
173bed8431c705879845825d406872d5162bb825f31af1042a403a25660e91ed
BLAKE2b-256 checksum
How to use checksums
2e5e67b60a57a7ad223e3970f88cc0cab31fc9f00ce531884b76a125a68812b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.7.12

Security for pantheon 2.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page