src.core.process.pipelines.matchv5 module

MatchV5 pipeline

class src.core.process.pipelines.matchv5.MatchV5Keys(*values)[source]

Bases: Enum

current paths to data, for pandas json_normalize

META

Since the metadata sits at the root, there is not path to pass

Type:

None

PLAYER_1

This keypath serves as the root of the playerdata, therefore this does not need aggregation.

Type:

list[str]

PLAYER_2

this keypath has the data of the use of legendary items

Type:

list[str]

PLAYER_3

this keypath has the data of the perks, selected by the player

Type:

list[str]

TEAM_1

this keypath serves as the root for teamdata, therefore this does not need further aggregation

Type:

list[str]

TEAM_2

this keypath is for the data of bans

Type:

list[str]

EVENTS: list[str] = ['info', 'frames', 'events']
FRAME: list[str] = ['info', 'frames']
META: None = None
PLAYER_1: list[str] = ['info', 'participants']
PLAYER_3: list[str] = ['info', 'participants', 'perks', 'styles', 'selections']
TEAM_1: list[str] = ['info', 'teams']
TEAM_2: list[str] = ['info', 'teams', 'bans']
src.core.process.pipelines.matchv5.needsAggMatchV5: dict[MatchV5Keys, list[str]] = {MatchV5Keys.FRAME: ['info', 'matchId'], MatchV5Keys.PLAYER_3: ['info', 'participants', 'participantId'], MatchV5Keys.TEAM_2: ['info', 'teams', 'teamId']}

The tables produced by this keys, need further aggregation into the right table format.

ClientKeys.TEAM2 -> [“teams”,”teamId”] MatchV5Keys.PLAYER_2: -> [“info”,”participants”,”participantId”], MatchV5Keys.PLAYER_3: -> [“info”,”participants”,”participantId”],

src.core.process.pipelines.matchv5.needsMetaDataMatchV5: dict[MatchV5Keys, list[str]] = {MatchV5Keys.EVENTS: ['info', 'matchId'], MatchV5Keys.PLAYER_1: ['info', 'gameId'], MatchV5Keys.TEAM_1: ['info', 'gameId']}

the tables produced by these keys, need metadata, to be assignable

Matchv5keys.PLAYER_1 -> “gameId” MatchV5Keys.TEAM_1 -> “gameId”

src.core.process.pipelines.matchv5.tableTypeForMatchV5: dict[MatchV5Keys, GameTable | TimeTable] = {MatchV5Keys.EVENTS: TimeTable.EVENT, MatchV5Keys.FRAME: TimeTable.FRAME, MatchV5Keys.META: GameTable.META, MatchV5Keys.PLAYER_1: GameTable.PLAYER, MatchV5Keys.PLAYER_3: GameTable.PLAYER, MatchV5Keys.TEAM_1: GameTable.TEAM, MatchV5Keys.TEAM_2: GameTable.TEAM}

classification of each resulting table

MatchV5Keys.META: -> GameTable.META, MatchV5Keys.PLAYER_1 -> GameTable.PLAYER, MatchV5Keys.PLAYER_2 -> GameTable.PLAYER, MatchV5Keys.PLAYER_3 -> GameTable.PLAYER, MatchV5Keys.TEAM_1 -> GameTable.TEAM, MatchV5Keys.TEAM_2 -> GameTable.TEAM,

Dependency Diagrams (without externals):

digraph imports {
  rankdir=LR;
  node [shape=box];
  "src.core.process.extract" -> "src.core.process.pipelines.matchv5";
}

Import dependencies (collapsed)

Dependency Diagrams:

digraph imports {
  rankdir=LR;
  node [shape=box];
  "src.core.process.extract" -> "src.core.process.pipelines.matchv5";
}

Import dependencies (collapsed)