How to use the cassiopeia.type.core function in cassiopeia

To help you get started, we’ve selected a few cassiopeia examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github meraki-analytics / cassiopeia / cassiopeia / core / staticdataapi.py View on Github external
if ids is not None:
        items = {item.id: item for item in get_items()}
        results = []
        for id_ in ids:
            try:
                item = items[id_]
            except KeyError:
                item = None
            results.append(item)
        return results
    else:
        if cassiopeia.core.requests.data_store.has_all(cassiopeia.type.core.staticdata.Item):
            return cassiopeia.core.requests.data_store.get_all(cassiopeia.type.core.staticdata.Item)

        items = cassiopeia.dto.staticdataapi.get_items()
        items = [cassiopeia.type.core.staticdata.Item(item[1]) for item in items.data.items()]

        cassiopeia.core.requests.data_store.store(items, [item.id for item in items], [cassiopeia.type.core.staticdata.Item])
        return items
github meraki-analytics / cassiopeia / cassiopeia / type / dto / featuredgames.py View on Github external
def _sa_bind_banned_champion():
    global BannedChampion

    @cassiopeia.type.core.common.inheritdocs
    class BannedChampion(BannedChampion, cassiopeia.type.dto.common.BaseDB):
        __tablename__ = "FeaturedGameBannedChampion"
        championId = sqlalchemy.Column(sqlalchemy.Integer)
        pickTurn = sqlalchemy.Column(sqlalchemy.Integer)
        teamId = sqlalchemy.Column(sqlalchemy.Integer)
        _id = sqlalchemy.Column(sqlalchemy.Integer, primary_key=True)
        _game_id = sqlalchemy.Column(sqlalchemy.Integer, sqlalchemy.ForeignKey("FeaturedGameInfo.gameId", ondelete="CASCADE"))
github meraki-analytics / cassiopeia / cassiopeia / type / dto / staticdata.py View on Github external
def _sa_bind_basic_data_stats():
    global BasicDataStats

    @cassiopeia.type.core.common.inheritdocs
    class BasicDataStats(BasicDataStats, cassiopeia.type.dto.common.BaseDB):
        __tablename__ = "ItemStats"
        FlatArmorMod = sqlalchemy.Column(sqlalchemy.Float)
        FlatAttackSpeedMod = sqlalchemy.Column(sqlalchemy.Float)
        FlatBlockMod = sqlalchemy.Column(sqlalchemy.Float)
        FlatCritChanceMod = sqlalchemy.Column(sqlalchemy.Float)
        FlatCritDamageMod = sqlalchemy.Column(sqlalchemy.Float)
        FlatEXPBonus = sqlalchemy.Column(sqlalchemy.Float)
        FlatEnergyPoolMod = sqlalchemy.Column(sqlalchemy.Float)
        FlatEnergyRegenMod = sqlalchemy.Column(sqlalchemy.Float)
        FlatHPPoolMod = sqlalchemy.Column(sqlalchemy.Float)
        FlatHPRegenMod = sqlalchemy.Column(sqlalchemy.Float)
        FlatMPPoolMod = sqlalchemy.Column(sqlalchemy.Float)
        FlatMPRegenMod = sqlalchemy.Column(sqlalchemy.Float)
        FlatMagicDamageMod = sqlalchemy.Column(sqlalchemy.Float)
        FlatMovementSpeedMod = sqlalchemy.Column(sqlalchemy.Float)
github meraki-analytics / cassiopeia / cassiopeia / riotapi.py View on Github external
def set_region(region):
    """
    Set the region to run API queries against

    Args:
        region (str | cassiopeia.type.core.common.Region): the region to query against
    """
    if not isinstance(region, cassiopeia.type.core.common.Region):
        region = cassiopeia.type.core.common.Region(region.lower())
    cassiopeia.dto.requests.region = region.value
github meraki-analytics / cassiopeia / cassiopeia / core / tournamentapi.py View on Github external
def create_tournament_provider(region, url):
    """
    Creates a tournament provider

    Args:
        region (str | TournamentRegion): the region in which the provider will be running tournaments
        url (str): the provider's callback URL to which tournament game results in this region should be posted. The URL must be well-formed, use the http or https protocol, and use the default port for the protocol (http URLs must use port 80, https URLs must use port 443).

    Returns:
        int: the tournament provider ID
    """
    if isinstance(region, cassiopeia.type.core.common.Region):
        region = cassiopeia.type.core.tournament.TournamentRegion(region.value.upper())
    elif not isinstance(region, cassiopeia.type.core.tournament.TournamentRegion):
        region = cassiopeia.type.core.tournament.TournamentRegion(region.upper())

    parameters = cassiopeia.type.dto.tournament.ProviderRegistrationParameters(region.value, url)
    return cassiopeia.dto.tournamentapi.create_tournament_provider(parameters)
github meraki-analytics / cassiopeia / cassiopeia / core / gameapi.py View on Github external
Args:
        summoner (Summoner): the summoner to get recent games for

    Returns:
        list: the summoner's recent games
    """
    games = cassiopeia.dto.gameapi.get_recent_games(summoner.id)

    # Load required data if loading policy is eager
    if cassiopeia.core.requests.load_policy is cassiopeia.type.core.common.LoadPolicy.eager:
        summoner_ids = games.summoner_ids
        cassiopeia.riotapi.get_summoners_by_id(list(summoner_ids)) if summoner_ids else None
        cassiopeia.riotapi.get_summoner_spells() if games.summoner_spell_ids else None

    return [cassiopeia.type.core.game.Game(game, games.summonerId) for game in games.games]
github meraki-analytics / cassiopeia / cassiopeia / dto / championmasteryapi.py View on Github external
def get_champion_mastery_score(summoner_id):
    """
    https://developer.riotgames.com/api/methods#!/1034/3546

    Args:
        summoner_id (int): the summoner ID to get champion masteries for

    Returns:
        int: the summoner's total champion mastery score
    """
    region = cassiopeia.type.core.common.Region(cassiopeia.dto.requests.region)
    platform = cassiopeia.type.core.common.Platform[region.name]

    # Get JSON response
    request = "https://{server}.api.pvp.net/championmastery/location/{platform}/player/{summonerId}/score".format(server=cassiopeia.dto.requests.region, platform=platform.value, summonerId=summoner_id)
    return cassiopeia.dto.requests.get(request, include_base=False)
github meraki-analytics / cassiopeia / cassiopeia / type / core / summoner.py View on Github external
import datetime

import cassiopeia.riotapi
import cassiopeia.type.core.common
import cassiopeia.type.dto.summoner


@cassiopeia.type.core.common.inheritdocs
class RunePage(cassiopeia.type.core.common.CassiopeiaObject):
    dto_type = cassiopeia.type.dto.summoner.RunePage

    def __str__(self):
        return "Rune Page ({name})".format(name=self.name)

    def __iter__(self):
        return iter(self.runes)

    def __len__(self):
        return len(self.runes)

    def __getitem__(self, index):
        return self.runes[index]

    def __eq__(self, other):
        return self.id == other.id
github meraki-analytics / cassiopeia / cassiopeia / core / summonerapi.py View on Github external
def __get_rune_pages_by_id(ids):
    pages = cassiopeia.core.requests.call_with_ensured_size(cassiopeia.dto.summonerapi.get_summoner_runes, 40, ids)

    # Load required data if loading policy is eager
    if cassiopeia.core.requests.load_policy is cassiopeia.type.core.common.LoadPolicy.eager:
        rune_ids = set()
        for page in pages.values():
            rune_ids |= page.rune_ids
        cassiopeia.riotapi.get_runes() if rune_ids else None

    if not isinstance(ids, list):
        return [cassiopeia.type.core.summoner.RunePage(page) for page in pages[str(ids)].pages]
    else:
        return [[cassiopeia.type.core.summoner.RunePage(page) for page in pages[str(id_)].pages] for id_ in ids]
github meraki-analytics / cassiopeia / cassiopeia / core / championmasteryapi.py View on Github external
def get_champion_mastery(summoner, champion):
    """
    Gets the ChampionMastery object for the specified summoner and champion

    Args:
        summoner (Summoner): the summoner to get champion mastery for
        champion (Champion): the desired champion

    Returns:
        ChampionMastery: the summoner's champion mastery value for the specified champion
    """
    champion_mastery = cassiopeia.dto.championmasteryapi.get_champion_mastery(summoner.id, champion.id)
    return cassiopeia.type.core.championmastery.ChampionMastery(champion_mastery)