python-ballchasing 0.2.0__py3-none-any.whl → 0.4.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.
ballchasing/constants.py CHANGED
@@ -1,4 +1,4 @@
1
- from typing import Literal, get_args, AnyStr, Union, Sequence, Optional
1
+ from typing import Literal, get_args, AnyStr, Union
2
2
 
3
3
  AnyPlaylist = Union[
4
4
  AnyStr,
@@ -41,6 +41,7 @@ AnyRank = Union[
41
41
  "platinum-1", "platinum-2", "platinum-3",
42
42
  "diamond-1", "diamond-2", "diamond-3",
43
43
  "champion-1", "champion-2", "champion-3",
44
+ "grand-champion", # Legacy. Seems to be interchangeable with "grand-champion-1"
44
45
  "grand-champion-1", "grand-champion-2", "grand-champion-3",
45
46
  "supersonic-legend"
46
47
  ],
@@ -48,9 +49,18 @@ AnyRank = Union[
48
49
 
49
50
 
50
51
  class Rank:
51
- ALL = (UNRANKED, BRONZE_1, BRONZE_2, BRONZE_3, SILVER_1, SILVER_2, SILVER_3, GOLD_1, GOLD_2, GOLD_3, PLATINUM_1,
52
- PLATINUM_2, PLATINUM_3, DIAMOND_1, DIAMOND_2, DIAMOND_3, CHAMPION_1, CHAMPION_2, CHAMPION_3,
53
- GRAND_CHAMPION_1, GRAND_CHAMPION_2, GRAND_CHAMPION_3, SUPERSONIC_LEGEND) = _get_literals(AnyRank)
52
+ ALL = (
53
+ UNRANKED,
54
+ BRONZE_1, BRONZE_2, BRONZE_3,
55
+ SILVER_1, SILVER_2, SILVER_3,
56
+ GOLD_1, GOLD_2, GOLD_3,
57
+ PLATINUM_1, PLATINUM_2, PLATINUM_3,
58
+ DIAMOND_1, DIAMOND_2, DIAMOND_3,
59
+ CHAMPION_1, CHAMPION_2, CHAMPION_3,
60
+ GRAND_CHAMPION_LEGACY,
61
+ GRAND_CHAMPION_1, GRAND_CHAMPION_2, GRAND_CHAMPION_3,
62
+ SUPERSONIC_LEGEND
63
+ ) = _get_literals(AnyRank)
54
64
  BRONZE = (BRONZE_1, BRONZE_2, BRONZE_3)
55
65
  SILVER = (SILVER_1, SILVER_2, SILVER_3)
56
66
  GOLD = (GOLD_1, GOLD_2, GOLD_3)
@@ -65,18 +75,21 @@ AnySeason = Union[
65
75
  Literal[
66
76
  "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14",
67
77
  "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "f9",
68
- "f10", "f11", "f12", "f13", "f14", "f15", "f16", "f17", "f18"
78
+ "f10", "f11", "f12", "f13", "f14", "f15", "f16", "f17", "f18", "f19"
69
79
  ]
70
80
  ]
71
81
 
72
82
 
73
83
  class Season:
74
- ALL = (SEASON_1, SEASON_2, SEASON_3, SEASON_4, SEASON_5, SEASON_6, SEASON_7, SEASON_8, SEASON_9, SEASON_10,
75
- SEASON_11, SEASON_12, SEASON_13, SEASON_14, SEASON_1_FTP, SEASON_2_FTP, SEASON_3_FTP, SEASON_4_FTP,
76
- SEASON_5_FTP, SEASON_6_FTP, SEASON_7_FTP, SEASON_8_FTP, SEASON_9_FTP, SEASON_10_FTP, SEASON_11_FTP,
77
- SEASON_12_FTP, SEASON_13_FTP, SEASON_14_FTP, SEASON_15_FTP, SEASON_16_FTP, SEASON_17_FTP, SEASON_18_FTP) \
78
- = _get_literals(AnySeason)
79
- PAY_TO_PLAY = ALL[:14]
84
+ ALL = (
85
+ SEASON_1_LEGACY, SEASON_2_LEGACY, SEASON_3_LEGACY, SEASON_4_LEGACY, SEASON_5_LEGACY, SEASON_6_LEGACY,
86
+ SEASON_7_LEGACY, SEASON_8_LEGACY, SEASON_9_LEGACY, SEASON_10_LEGACY, SEASON_11_LEGACY, SEASON_12_LEGACY,
87
+ SEASON_13_LEGACY, SEASON_14_LEGACY,
88
+ SEASON_1_FTP, SEASON_2_FTP, SEASON_3_FTP, SEASON_4_FTP, SEASON_5_FTP, SEASON_6_FTP, SEASON_7_FTP,
89
+ SEASON_8_FTP, SEASON_9_FTP, SEASON_10_FTP, SEASON_11_FTP, SEASON_12_FTP, SEASON_13_FTP, SEASON_14_FTP,
90
+ SEASON_15_FTP, SEASON_16_FTP, SEASON_17_FTP, SEASON_18_FTP, SEASON_19_FTP
91
+ ) = _get_literals(AnySeason)
92
+ LEGACY = ALL[:14]
80
93
  FREE_TO_PLAY = ALL[14:]
81
94
 
82
95
 
@@ -134,13 +147,15 @@ AnyMap = Union[AnyStr, Literal[
134
147
  "chn_stadium_day_p", "chn_stadium_p", "cs_day_p", "cs_hw_p", "cs_p", "eurostadium_dusk_p", "eurostadium_night_p",
135
148
  "eurostadium_p", "eurostadium_rainy_p", "eurostadium_snownight_p", "farm_grs_p", "farm_hw_p", "farm_night_p",
136
149
  "farm_p", "farm_upsidedown_p", "ff_dusk_p", "fni_stadium_p", "haunted_trainstation_p", "hoopsstadium_p",
137
- "hoopsstreet_p", "labs_circlepillars_p", "labs_corridor_p", "labs_cosmic_p", "labs_cosmic_v4_p",
138
- "labs_doublegoal_p", "labs_doublegoal_v2_p", "labs_octagon_02_p", "labs_octagon_p", "labs_pillarglass_p",
139
- "labs_pillarwings_p", "labs_underpass_p", "labs_underpass_v0_p", "labs_utopia_p", "music_p", "neotokyo_arcade_p",
140
- "neotokyo_hax_p", "neotokyo_p", "neotokyo_standard_p", "neotokyo_toon_p", "outlaw_oasis_p", "outlaw_p",
141
- "park_bman_p", "park_night_p", "park_p", "park_rainy_p", "park_snowy_p", "shattershot_p", "stadium_day_p",
142
- "stadium_foggy_p", "stadium_p", "stadium_race_day_p", "stadium_winter_p", "street_p", "throwbackhockey_p",
143
- "throwbackstadium_p", "trainstation_dawn_p", "trainstation_night_p", "trainstation_p", "trainstation_spooky_p",
150
+ "hoopsstreet_p", "ko_calavera_p", "ko_carbon_p", "ko_quadron_p", "labs_basin_p", "labs_circlepillars_p",
151
+ "labs_corridor_p", "labs_cosmic_p", "labs_cosmic_v4_p", "labs_doublegoal_p", "labs_doublegoal_v2_p",
152
+ "labs_galleon_mast_p", "labs_galleon_p", "labs_holyfield_p", "labs_holyfield_space_p", "labs_octagon_02_p",
153
+ "labs_octagon_p", "labs_pillarglass_p", "labs_pillarheat_p", "labs_pillarwings_p", "labs_underpass_p",
154
+ "labs_underpass_v0_p", "labs_utopia_p", "music_p", "neotokyo_arcade_p", "neotokyo_hax_p", "neotokyo_p",
155
+ "neotokyo_standard_p", "neotokyo_toon_p", "outlaw_oasis_p", "outlaw_p", "park_bman_p", "park_night_p", "park_p",
156
+ "park_rainy_p", "park_snowy_p", "shattershot_p", "stadium_10a_p", "stadium_day_p", "stadium_foggy_p", "stadium_p",
157
+ "stadium_race_day_p", "stadium_winter_p", "street_p", "swoosh_p", "throwbackhockey_p", "throwbackstadium_p",
158
+ "trainstation_dawn_p", "trainstation_night_p", "trainstation_p", "trainstation_spooky_p", "uf_day_p",
144
159
  "underwater_grs_p", "underwater_p", "utopiastadium_dusk_p", "utopiastadium_lux_p", "utopiastadium_p",
145
160
  "utopiastadium_snow_p", "wasteland_grs_p", "wasteland_night_p", "wasteland_night_s_p", "wasteland_p",
146
161
  "wasteland_s_p", "woods_night_p", "woods_p"
@@ -153,15 +168,17 @@ class Map:
153
168
  CHN_STADIUM_DAY_P, CHN_STADIUM_P, CS_DAY_P, CS_HW_P, CS_P, EUROSTADIUM_DUSK_P, EUROSTADIUM_NIGHT_P,
154
169
  EUROSTADIUM_P, EUROSTADIUM_RAINY_P, EUROSTADIUM_SNOWNIGHT_P, FARM_GRS_P, FARM_HW_P, FARM_NIGHT_P, FARM_P,
155
170
  FARM_UPSIDEDOWN_P, FF_DUSK_P, FNI_STADIUM_P, HAUNTED_TRAINSTATION_P, HOOPSSTADIUM_P, HOOPSSTREET_P,
156
- LABS_CIRCLEPILLARS_P, LABS_CORRIDOR_P, LABS_COSMIC_P, LABS_COSMIC_V4_P, LABS_DOUBLEGOAL_P, LABS_DOUBLEGOAL_V2_P,
157
- LABS_OCTAGON_02_P, LABS_OCTAGON_P, LABS_PILLARGLASS_P, LABS_PILLARWINGS_P, LABS_UNDERPASS_P,
158
- LABS_UNDERPASS_V0_P, LABS_UTOPIA_P, MUSIC_P, NEOTOKYO_ARCADE_P, NEOTOKYO_HAX_P, NEOTOKYO_P, NEOTOKYO_STANDARD_P,
159
- NEOTOKYO_TOON_P, OUTLAW_OASIS_P, OUTLAW_P, PARK_BMAN_P, PARK_NIGHT_P, PARK_P, PARK_RAINY_P, PARK_SNOWY_P,
160
- SHATTERSHOT_P, STADIUM_DAY_P, STADIUM_FOGGY_P, STADIUM_P, STADIUM_RACE_DAY_P, STADIUM_WINTER_P, STREET_P,
161
- THROWBACKHOCKEY_P, THROWBACKSTADIUM_P, TRAINSTATION_DAWN_P, TRAINSTATION_NIGHT_P, TRAINSTATION_P,
162
- TRAINSTATION_SPOOKY_P, UNDERWATER_GRS_P, UNDERWATER_P, UTOPIASTADIUM_DUSK_P, UTOPIASTADIUM_LUX_P,
163
- UTOPIASTADIUM_P, UTOPIASTADIUM_SNOW_P, WASTELAND_GRS_P, WASTELAND_NIGHT_P, WASTELAND_NIGHT_S_P, WASTELAND_P,
164
- WASTELAND_S_P, WOODS_NIGHT_P, WOODS_P
171
+ KO_CALAVERA_P, KO_CARBON_P, KO_QUADRON_P, LABS_BASIN_P, LABS_CIRCLEPILLARS_P, LABS_CORRIDOR_P, LABS_COSMIC_P,
172
+ LABS_COSMIC_V4_P, LABS_DOUBLEGOAL_P, LABS_DOUBLEGOAL_V2_P, LABS_GALLEON_MAST_P, LABS_GALLEON_P,
173
+ LABS_HOLYFIELD_P, LABS_HOLYFIELD_SPACE_P, LABS_OCTAGON_02_P, LABS_OCTAGON_P, LABS_PILLARGLASS_P,
174
+ LABS_PILLARHEAT_P, LABS_PILLARWINGS_P, LABS_UNDERPASS_P, LABS_UNDERPASS_V0_P, LABS_UTOPIA_P, MUSIC_P,
175
+ NEOTOKYO_ARCADE_P, NEOTOKYO_HAX_P, NEOTOKYO_P, NEOTOKYO_STANDARD_P, NEOTOKYO_TOON_P, OUTLAW_OASIS_P, OUTLAW_P,
176
+ PARK_BMAN_P, PARK_NIGHT_P, PARK_P, PARK_RAINY_P, PARK_SNOWY_P, SHATTERSHOT_P, STADIUM_10A_P, STADIUM_DAY_P,
177
+ STADIUM_FOGGY_P, STADIUM_P, STADIUM_RACE_DAY_P, STADIUM_WINTER_P, STREET_P, SWOOSH_P, THROWBACKHOCKEY_P,
178
+ THROWBACKSTADIUM_P, TRAINSTATION_DAWN_P, TRAINSTATION_NIGHT_P, TRAINSTATION_P, TRAINSTATION_SPOOKY_P, UF_DAY_P,
179
+ UNDERWATER_GRS_P, UNDERWATER_P, UTOPIASTADIUM_DUSK_P, UTOPIASTADIUM_LUX_P, UTOPIASTADIUM_P,
180
+ UTOPIASTADIUM_SNOW_P, WASTELAND_GRS_P, WASTELAND_NIGHT_P, WASTELAND_NIGHT_S_P, WASTELAND_P, WASTELAND_S_P,
181
+ WOODS_NIGHT_P, WOODS_P
165
182
  ) = _get_literals(AnyMap)
166
183
  NAMES = (
167
184
  "Starbase ARC (Aftermath)", "Starbase ARC", "Starbase ARC (Standard)", "Champions Field (NFL)",
@@ -170,33 +187,37 @@ class Map:
170
187
  "Mannfield (Dusk)", "Mannfield (Night)", "Mannfield", "Mannfield (Stormy)", "Mannfield (Snowy)",
171
188
  "Farmstead (Pitched)", "Farmstead (Spooky)", "Farmstead (Night)", "Farmstead", "Farmstead (The Upside Down)",
172
189
  "Estadio Vida (Dusk)", "Forbidden Temple (Fire & Ice)", "Urban Central (Haunted)", "Dunk House",
173
- "The Block (Dusk)", "Pillars", "Corridor", "Cosmic", "Cosmic", "Double Goal", "Double Goal", "Octagon",
174
- "Octagon", "Hourglass", "Colossus", "Underpass", "Underpass", "Utopia Retro", "Neon Fields",
190
+ "The Block (Dusk)", "Calavera", "Carbon", "Quadron", "Basin", "Pillars", "Corridor", "Cosmic", "Cosmic",
191
+ "Double Goal", "Double Goal", "Galleon Retro", "Galleon", "Loophole", "Holyfield", "Octagon", "Octagon",
192
+ "Hourglass", "Barricade", "Colossus", "Underpass", "Underpass", "Utopia Retro", "Neon Fields",
175
193
  "Neo Tokyo (Arcade)", "Neo Tokyo (Hacked)", "Neo Tokyo", "Neo Tokyo (Standard)", "Neo Tokyo (Comic)",
176
194
  "Deadeye Canyon (Oasis)", "Deadeye Canyon", "Beckwith Park (Night)", "Beckwith Park (Midnight)",
177
- "Beckwith Park", "Beckwith Park (Stormy)", "Beckwith Park (Snowy)", "Core 707", "DFH Stadium (Day)",
178
- "DFH Stadium (Stormy)", "DFH Stadium", "DFH Stadium (Circuit)", "DFH Stadium (Snowy)",
179
- "Sovereign Heights (Dusk)", "Throwback Stadium (Snowy)", "Throwback Stadium", "Urban Central (Dawn)",
180
- "Urban Central (Night)", "Urban Central", "Urban Central (Spooky)", "AquaDome (Salty Shallows)", "Aquadome",
195
+ "Beckwith Park", "Beckwith Park (Stormy)", "Beckwith Park (Snowy)", "Core 707",
196
+ "DFH Stadium (10th Anniversary)", "DFH Stadium (Day)", "DFH Stadium (Stormy)", "DFH Stadium",
197
+ "DFH Stadium (Circuit)", "DFH Stadium (Snowy)", "Sovereign Heights (Dusk)", "Champions Field (Nike FC)",
198
+ "Throwback Stadium (Snowy)", "Throwback Stadium", "Urban Central (Dawn)", "Urban Central (Night)",
199
+ "Urban Central", "Urban Central (Spooky)", "Futura Garden", "AquaDome (Salty Shallows)", "Aquadome",
181
200
  "Utopia Coliseum (Dusk)", "Utopia Coliseum (Gilded)", "Utopia Coliseum", "Utopia Coliseum (Snowy)",
182
201
  "Wasteland (Pitched)", "Wasteland (Night)", "Wasteland (Standard, Night)", "Wasteland", "Wasteland (Standard)",
183
- "Drift Woods (Night", "Drift Woods"
202
+ "Drift Woods (Night)", "Drift Woods"
184
203
  )
185
204
  CODE_TO_NAME = {code: name for code, name in zip(ALL, NAMES)}
186
205
  STANDARD_MAPS = (
187
- ARC_DARC_P, ARC_STANDARD_P, BEACH_NIGHT_GRS_P, BEACH_NIGHT_P, CHN_STADIUM_DAY_P, CHN_STADIUM_P,
188
- EUROSTADIUM_DUSK_P, EUROSTADIUM_NIGHT_P, EUROSTADIUM_RAINY_P, EUROSTADIUM_SNOWNIGHT_P, FARM_GRS_P, FARM_NIGHT_P,
189
- FARM_P, FF_DUSK_P, FNI_STADIUM_P, LABS_PILLARGLASS_P, MUSIC_P, NEOTOKYO_ARCADE_P, NEOTOKYO_HAX_P,
190
- NEOTOKYO_STANDARD_P, NEOTOKYO_TOON_P, OUTLAW_OASIS_P, OUTLAW_P, PARK_NIGHT_P, PARK_P, PARK_RAINY_P,
191
- PARK_SNOWY_P, STADIUM_DAY_P, STADIUM_FOGGY_P, STADIUM_P, STADIUM_RACE_DAY_P, STADIUM_WINTER_P, STREET_P,
192
- TRAINSTATION_DAWN_P, TRAINSTATION_NIGHT_P, TRAINSTATION_P, UNDERWATER_GRS_P, UNDERWATER_P, UTOPIASTADIUM_DUSK_P,
193
- UTOPIASTADIUM_LUX_P, UTOPIASTADIUM_SNOW_P, UTOPIASTADIUM_P, WASTELAND_GRS_P, WASTELAND_NIGHT_P,
194
- WASTELAND_NIGHT_S_P, WASTELAND_S_P, WOODS_NIGHT_P, WOODS_P
206
+ ARC_DARC_P, ARC_STANDARD_P, BEACH_NIGHT_GRS_P, BEACH_NIGHT_P, BEACH_P, CHN_STADIUM_DAY_P, CHN_STADIUM_P,
207
+ CS_DAY_P, CS_HW_P, CS_P, EUROSTADIUM_DUSK_P, EUROSTADIUM_NIGHT_P, EUROSTADIUM_P, EUROSTADIUM_RAINY_P,
208
+ EUROSTADIUM_SNOWNIGHT_P, FARM_GRS_P, FARM_NIGHT_P, FARM_P, FARM_UPSIDEDOWN_P, FF_DUSK_P, FNI_STADIUM_P, MUSIC_P,
209
+ NEOTOKYO_ARCADE_P, NEOTOKYO_HAX_P, NEOTOKYO_STANDARD_P, OUTLAW_OASIS_P, OUTLAW_P, PARK_NIGHT_P, PARK_P,
210
+ PARK_RAINY_P, PARK_SNOWY_P, STADIUM_10A_P, STADIUM_DAY_P, STADIUM_FOGGY_P, STADIUM_P, STADIUM_RACE_DAY_P,
211
+ STADIUM_WINTER_P, STREET_P, TRAINSTATION_DAWN_P, TRAINSTATION_NIGHT_P, TRAINSTATION_P, UF_DAY_P,
212
+ UNDERWATER_GRS_P, UNDERWATER_P, UTOPIASTADIUM_DUSK_P, UTOPIASTADIUM_LUX_P, UTOPIASTADIUM_P,
213
+ UTOPIASTADIUM_SNOW_P, WASTELAND_GRS_P, WASTELAND_NIGHT_P, WASTELAND_NIGHT_S_P, WASTELAND_P, WASTELAND_S_P,
214
+ WOODS_NIGHT_P, WOODS_P
195
215
  )
196
216
  NON_STANDARD_MAPS = (
197
- ARC_P, BB_P, BEACH_P, BEACHVOLLEY, CS_DAY_P, CS_HW_P, CS_P, EUROSTADIUM_P, FARM_HW_P,
198
- FARM_UPSIDEDOWN_P, HAUNTED_TRAINSTATION_P, HOOPSSTADIUM_P, HOOPSSTREET_P, LABS_CIRCLEPILLARS_P,
199
- LABS_COSMIC_P, LABS_COSMIC_V4_P, LABS_DOUBLEGOAL_P, LABS_DOUBLEGOAL_V2_P, LABS_OCTAGON_02_P,
200
- LABS_OCTAGON_P, LABS_UNDERPASS_P, LABS_UNDERPASS_V0_P, LABS_UTOPIA_P, NEOTOKYO_P, PARK_BMAN_P,
201
- SHATTERSHOT_P, THROWBACKHOCKEY_P, THROWBACKSTADIUM_P, TRAINSTATION_SPOOKY_P, WASTELAND_P
217
+ ARC_P, BB_P, BEACHVOLLEY, FARM_HW_P, HAUNTED_TRAINSTATION_P, HOOPSSTADIUM_P, HOOPSSTREET_P, KO_CALAVERA_P,
218
+ KO_CARBON_P, KO_QUADRON_P, LABS_BASIN_P, LABS_CIRCLEPILLARS_P, LABS_CORRIDOR_P, LABS_COSMIC_P, LABS_COSMIC_V4_P,
219
+ LABS_DOUBLEGOAL_P, LABS_DOUBLEGOAL_V2_P, LABS_GALLEON_MAST_P, LABS_GALLEON_P, LABS_HOLYFIELD_P,
220
+ LABS_HOLYFIELD_SPACE_P, LABS_OCTAGON_02_P, LABS_OCTAGON_P, LABS_PILLARGLASS_P, LABS_PILLARHEAT_P,
221
+ LABS_PILLARWINGS_P, LABS_UNDERPASS_P, LABS_UNDERPASS_V0_P, LABS_UTOPIA_P, NEOTOKYO_P, NEOTOKYO_TOON_P,
222
+ PARK_BMAN_P, SHATTERSHOT_P, SWOOSH_P, THROWBACKHOCKEY_P, THROWBACKSTADIUM_P, TRAINSTATION_SPOOKY_P
202
223
  )
@@ -0,0 +1,5 @@
1
+ # Imports for the objects meant to be initialized directly
2
+ from ballchasing.typed.deep_group import DeepGroup
3
+ from ballchasing.typed.deep_replay import DeepReplay
4
+ from ballchasing.typed.shallow_group import ShallowGroup
5
+ from ballchasing.typed.shallow_replay import ShallowReplay
@@ -0,0 +1,440 @@
1
+ from dataclasses import dataclass, field
2
+ from typing import List, Optional
3
+
4
+ from ballchasing.typed.shared import _DictToTypeMixin, User, BaseGroup
5
+
6
+
7
+ @dataclass
8
+ class CreatorDG(User):
9
+ # steam_id: str = ""
10
+ # name: str = ""
11
+ # profile_url: str = ""
12
+ # avatar: str = ""
13
+ avatar_full: str = ""
14
+ avatar_medium: str = ""
15
+
16
+
17
+ @dataclass
18
+ class PlayerCumulativeCoreStatsDG:
19
+ shots: int = 0
20
+ shots_against: int = 0
21
+ goals: int = 0
22
+ goals_against: int = 0
23
+ saves: int = 0
24
+ assists: int = 0
25
+ score: int = 0
26
+ mvp: int = 0
27
+ shooting_percentage: float = 0.0
28
+
29
+
30
+ @dataclass
31
+ class PlayerCumulativeBoostStatsDG:
32
+ bpm: float = 0.0
33
+ bcpm: float = 0.0
34
+ avg_amount: float = 0.0
35
+ amount_collected: int = 0
36
+ amount_stolen: int = 0
37
+ amount_collected_big: int = 0
38
+ amount_stolen_big: int = 0
39
+ amount_collected_small: int = 0
40
+ amount_stolen_small: int = 0
41
+ count_collected_big: int = 0
42
+ count_stolen_big: int = 0
43
+ count_collected_small: int = 0
44
+ count_stolen_small: int = 0
45
+ time_zero_boost: float = 0.0
46
+ percent_zero_boost: float = 0.0
47
+ time_full_boost: float = 0.0
48
+ percent_full_boost: float = 0.0
49
+ amount_overfill: int = 0
50
+ amount_overfill_stolen: int = 0
51
+ amount_used_while_supersonic: int = 0
52
+ time_boost_0_25: float = 0.0
53
+ time_boost_25_50: float = 0.0
54
+ time_boost_50_75: float = 0.0
55
+ time_boost_75_100: float = 0.0
56
+ percent_boost_0_25: float = 0.0
57
+ percent_boost_25_50: float = 0.0
58
+ percent_boost_50_75: float = 0.0
59
+ percent_boost_75_100: float = 0.0
60
+
61
+
62
+ @dataclass
63
+ class PlayerCumulativeMovementStatsDG:
64
+ avg_speed: float = 0.0
65
+ total_distance: int = 0
66
+ time_supersonic_speed: float = 0.0
67
+ time_boost_speed: float = 0.0
68
+ time_slow_speed: float = 0.0
69
+ time_ground: float = 0.0
70
+ time_low_air: float = 0.0
71
+ time_high_air: float = 0.0
72
+ time_powerslide: float = 0.0
73
+ count_powerslide: int = 0
74
+ avg_powerslide_duration: float = 0.0
75
+ avg_speed_percentage: float = 0.0
76
+ percent_slow_speed: float = 0.0
77
+ percent_boost_speed: float = 0.0
78
+ percent_supersonic_speed: float = 0.0
79
+ percent_ground: float = 0.0
80
+ percent_low_air: float = 0.0
81
+ percent_high_air: float = 0.0
82
+
83
+
84
+ @dataclass
85
+ class PlayerCumulativePositioningStatsDG:
86
+ avg_distance_to_ball: float = 0.0
87
+ avg_distance_to_ball_possession: float = 0.0
88
+ avg_distance_to_ball_no_possession: float = 0.0
89
+ time_defensive_third: float = 0.0
90
+ time_neutral_third: float = 0.0
91
+ time_offensive_third: float = 0.0
92
+ time_defensive_half: float = 0.0
93
+ time_offensive_half: float = 0.0
94
+ time_behind_ball: float = 0.0
95
+ time_infront_ball: float = 0.0
96
+ time_most_back: float = 0.0
97
+ time_most_forward: float = 0.0
98
+ goals_against_while_last_defender: int = 0
99
+ time_closest_to_ball: float = 0.0
100
+ time_farthest_from_ball: float = 0.0
101
+ percent_defensive_third: float = 0.0
102
+ percent_offensive_third: float = 0.0
103
+ percent_neutral_third: float = 0.0
104
+ percent_defensive_half: float = 0.0
105
+ percent_offensive_half: float = 0.0
106
+ percent_behind_ball: float = 0.0
107
+ percent_infront_ball: float = 0.0
108
+
109
+
110
+ @dataclass
111
+ class PlayerCumulativeDemoStatsDG:
112
+ inflicted: int = 0
113
+ taken: int = 0
114
+
115
+
116
+ @dataclass
117
+ class PlayerCumulativeStatsDG(_DictToTypeMixin):
118
+ games: int = 0
119
+ wins: int = 0
120
+ win_percentage: float = 0
121
+ play_duration: int = 0
122
+ core: Optional[PlayerCumulativeCoreStatsDG] = None
123
+ boost: Optional[PlayerCumulativeBoostStatsDG] = None
124
+ movement: Optional[PlayerCumulativeMovementStatsDG] = None
125
+ positioning: Optional[PlayerCumulativePositioningStatsDG] = None
126
+ demo: Optional[PlayerCumulativeDemoStatsDG] = None
127
+
128
+
129
+ @dataclass
130
+ class PlayerAverageCoreStatsDG:
131
+ shots: float = 0.0
132
+ shots_against: int = 0
133
+ goals: float = 0.0
134
+ goals_against: float = 0.0
135
+ saves: float = 0.0
136
+ assists: float = 0.0
137
+ score: float = 0.0
138
+ mvp: int = 0
139
+ shooting_percentage: float = 0.0
140
+
141
+
142
+ @dataclass
143
+ class PlayerAverageBoostStatsDG:
144
+ bpm: float = 0.0
145
+ bcpm: float = 0.0
146
+ avg_amount: float = 0.0
147
+ amount_collected: float = 0.0
148
+ amount_stolen: float = 0.0
149
+ amount_collected_big: int = 0
150
+ amount_stolen_big: float = 0.0
151
+ amount_collected_small: float = 0.0
152
+ amount_stolen_small: int = 0
153
+ count_collected_big: float = 0.0
154
+ count_stolen_big: float = 0.0
155
+ count_collected_small: float = 0.0
156
+ count_stolen_small: float = 0.0
157
+ time_zero_boost: float = 0.0
158
+ percent_zero_boost: float = 0.0
159
+ time_full_boost: float = 0.0
160
+ percent_full_boost: float = 0.0
161
+ amount_overfill: int = 0
162
+ amount_overfill_stolen: int = 0
163
+ amount_used_while_supersonic: float = 0.0
164
+ time_boost_0_25: float = 0.0
165
+ time_boost_25_50: float = 0.0
166
+ time_boost_50_75: float = 0.0
167
+ time_boost_75_100: float = 0.0
168
+ percent_boost_0_25: float = 0.0
169
+ percent_boost_25_50: float = 0.0
170
+ percent_boost_50_75: float = 0.0
171
+ percent_boost_75_100: float = 0.0
172
+
173
+
174
+ @dataclass
175
+ class PlayerAverageMovementStatsDG:
176
+ avg_speed: float = 0.0
177
+ total_distance: int = 0
178
+ time_supersonic_speed: float = 0.0
179
+ time_boost_speed: float = 0.0
180
+ time_slow_speed: float = 0.0
181
+ time_ground: float = 0.0
182
+ time_low_air: float = 0.0
183
+ time_high_air: float = 0.0
184
+ time_powerslide: float = 0.0
185
+ count_powerslide: float = 0.0
186
+ avg_powerslide_duration: float = 0.0
187
+ avg_speed_percentage: float = 0.0
188
+ percent_slow_speed: float = 0.0
189
+ percent_boost_speed: float = 0.0
190
+ percent_supersonic_speed: float = 0.0
191
+ percent_ground: float = 0.0
192
+ percent_low_air: float = 0.0
193
+ percent_high_air: float = 0.0
194
+
195
+
196
+ @dataclass
197
+ class PlayerAveragePositioningStatsDG:
198
+ avg_distance_to_ball: float = 0.0
199
+ avg_distance_to_ball_possession: float = 0.0
200
+ avg_distance_to_ball_no_possession: float = 0.0
201
+ time_defensive_third: float = 0.0
202
+ time_neutral_third: float = 0.0
203
+ time_offensive_third: float = 0.0
204
+ time_defensive_half: float = 0.0
205
+ time_offensive_half: float = 0.0
206
+ time_behind_ball: float = 0.0
207
+ time_infront_ball: float = 0.0
208
+ time_most_back: float = 0.0
209
+ time_most_forward: float = 0.0
210
+ goals_against_while_last_defender: float = 0.0
211
+ time_closest_to_ball: float = 0.0
212
+ time_farthest_from_ball: float = 0.0
213
+ percent_defensive_third: float = 0.0
214
+ percent_offensive_third: float = 0.0
215
+ percent_neutral_third: float = 0.0
216
+ percent_defensive_half: float = 0.0
217
+ percent_offensive_half: float = 0.0
218
+ percent_behind_ball: float = 0.0
219
+ percent_infront_ball: float = 0.0
220
+
221
+
222
+ @dataclass
223
+ class PlayerAverageDemoStatsDG:
224
+ inflicted: float = 0.0
225
+ taken: float = 0.0
226
+
227
+
228
+ @dataclass
229
+ class PlayerAverageStatsDG(_DictToTypeMixin):
230
+ core: Optional[PlayerAverageCoreStatsDG] = None
231
+ boost: Optional[PlayerAverageBoostStatsDG] = None
232
+ movement: Optional[PlayerAverageMovementStatsDG] = None
233
+ positioning: Optional[PlayerAveragePositioningStatsDG] = None
234
+ demo: Optional[PlayerAverageDemoStatsDG] = None
235
+
236
+
237
+ @dataclass
238
+ class TeamCumulativeCoreStatsDG:
239
+ shots: int = 0
240
+ shots_against: int = 0
241
+ goals: int = 0
242
+ goals_against: int = 0
243
+ saves: int = 0
244
+ assists: int = 0
245
+ score: int = 0
246
+ shooting_percentage: float = 0.0
247
+
248
+
249
+ @dataclass
250
+ class TeamCumulativeBoostStatsDG:
251
+ amount_collected: int = 0
252
+ amount_stolen: int = 0
253
+ amount_collected_big: int = 0
254
+ amount_stolen_big: int = 0
255
+ amount_collected_small: int = 0
256
+ amount_stolen_small: int = 0
257
+ count_collected_big: int = 0
258
+ count_stolen_big: int = 0
259
+ count_collected_small: int = 0
260
+ count_stolen_small: int = 0
261
+ time_zero_boost: float = 0.0
262
+ percent_zero_boost: float = 0.0
263
+ time_full_boost: float = 0.0
264
+ percent_full_boost: float = 0.0
265
+ amount_overfill: int = 0
266
+ amount_overfill_stolen: int = 0
267
+ amount_used_while_supersonic: int = 0
268
+ time_boost_0_25: float = 0.0
269
+ time_boost_25_50: float = 0.0
270
+ time_boost_50_75: float = 0.0
271
+ time_boost_75_100: float = 0.0
272
+
273
+
274
+ @dataclass
275
+ class TeamCumulativeMovementStatsDG:
276
+ total_distance: int = 0
277
+ time_supersonic_speed: float = 0.0
278
+ time_boost_speed: float = 0.0
279
+ time_slow_speed: float = 0.0
280
+ time_ground: float = 0.0
281
+ time_low_air: int = 0
282
+ time_high_air: float = 0.0
283
+ time_powerslide: float = 0.0
284
+ count_powerslide: int = 0
285
+
286
+
287
+ @dataclass
288
+ class TeamCumulativePositioningStatsDG:
289
+ time_defensive_third: float = 0.0
290
+ time_neutral_third: float = 0.0
291
+ time_offensive_third: float = 0.0
292
+ time_defensive_half: float = 0.0
293
+ time_offensive_half: float = 0.0
294
+ time_behind_ball: float = 0.0
295
+ time_infront_ball: float = 0.0
296
+ avg_distance_to_ball: int = 0
297
+ avg_distance_to_ball_possession: int = 0
298
+ avg_distance_to_ball_no_possession: int = 0
299
+
300
+
301
+ @dataclass
302
+ class TeamCumulativeDemoStatsDG:
303
+ inflicted: int = 0
304
+ taken: int = 0
305
+
306
+
307
+ @dataclass
308
+ class TeamCumulativeStatsDG(_DictToTypeMixin):
309
+ games: int = 0
310
+ wins: int = 0
311
+ win_percentage: float = 0
312
+ play_duration: int = 0
313
+ core: Optional[TeamCumulativeCoreStatsDG] = None
314
+ boost: Optional[TeamCumulativeBoostStatsDG] = None
315
+ movement: Optional[TeamCumulativeMovementStatsDG] = None
316
+ positioning: Optional[TeamCumulativePositioningStatsDG] = None
317
+ demo: Optional[TeamCumulativeDemoStatsDG] = None
318
+
319
+
320
+ @dataclass
321
+ class TeamAverageCoreStatsDG:
322
+ shots: float = 0.0
323
+ shots_against: int = 0
324
+ goals: int = 0
325
+ goals_against: float = 0.0
326
+ saves: float = 0.0
327
+ assists: float = 0.0
328
+ score: float = 0.0
329
+ shooting_percentage: float = 0.0
330
+
331
+
332
+ @dataclass
333
+ class TeamAverageBoostStatsDG:
334
+ bpm: int = 0
335
+ bcpm: float = 0.0
336
+ avg_amount: float = 0.0
337
+ amount_collected: float = 0.0
338
+ amount_stolen: float = 0.0
339
+ amount_collected_big: float = 0.0
340
+ amount_stolen_big: float = 0.0
341
+ amount_collected_small: float = 0.0
342
+ amount_stolen_small: float = 0.0
343
+ count_collected_big: float = 0.0
344
+ count_stolen_big: float = 0.0
345
+ count_collected_small: float = 0.0
346
+ count_stolen_small: float = 0.0
347
+ time_zero_boost: float = 0.0
348
+ percent_zero_boost: float = 0.0
349
+ time_full_boost: float = 0.0
350
+ percent_full_boost: float = 0.0
351
+ amount_overfill: int = 0
352
+ amount_overfill_stolen: int = 0
353
+ amount_used_while_supersonic: int = 0
354
+ time_boost_0_25: float = 0.0
355
+ time_boost_25_50: float = 0.0
356
+ time_boost_50_75: float = 0.0
357
+ time_boost_75_100: float = 0.0
358
+
359
+
360
+ @dataclass
361
+ class TeamAverageMovementStatsDG:
362
+ total_distance: float = 0.0
363
+ time_supersonic_speed: float = 0.0
364
+ time_boost_speed: float = 0.0
365
+ time_slow_speed: float = 0.0
366
+ time_ground: float = 0.0
367
+ time_low_air: float = 0.0
368
+ time_high_air: float = 0.0
369
+ time_powerslide: float = 0.0
370
+ count_powerslide: float = 0.0
371
+
372
+
373
+ @dataclass
374
+ class TeamAveragePositioningStatsDG:
375
+ time_defensive_third: float = 0.0
376
+ time_neutral_third: float = 0.0
377
+ time_offensive_third: float = 0.0
378
+ time_defensive_half: float = 0.0
379
+ time_offensive_half: float = 0.0
380
+ time_behind_ball: float = 0.0
381
+ time_infront_ball: float = 0.0
382
+ avg_distance_to_ball: float = 0.0
383
+ avg_distance_to_ball_possession: float = 0.0
384
+ avg_distance_to_ball_no_possession: int = 0
385
+
386
+
387
+ @dataclass
388
+ class TeamAverageDemoStatsDG:
389
+ inflicted: float = 0.0
390
+ taken: float = 0.0
391
+
392
+
393
+ @dataclass
394
+ class TeamAverageStatsDG(_DictToTypeMixin):
395
+ core: Optional[TeamAverageCoreStatsDG] = None
396
+ boost: Optional[TeamAverageBoostStatsDG] = None
397
+ movement: Optional[TeamAverageMovementStatsDG] = None
398
+ positioning: Optional[TeamAveragePositioningStatsDG] = None
399
+ demo: Optional[TeamAverageDemoStatsDG] = None
400
+
401
+
402
+ @dataclass
403
+ class PlayerDG:
404
+ platform: str = ""
405
+ id: str = ""
406
+ name: str = ""
407
+ team: str = ""
408
+
409
+
410
+ @dataclass
411
+ class PlayerWithStatsDG(PlayerDG, _DictToTypeMixin):
412
+ # platform: str = ""
413
+ # id: str = ""
414
+ # name: str = ""
415
+ # team: str = ""
416
+ cumulative: Optional[PlayerCumulativeStatsDG] = None
417
+ game_average: Optional[PlayerAverageStatsDG] = None
418
+
419
+
420
+ @dataclass
421
+ class TeamDG(_DictToTypeMixin):
422
+ name: str = ""
423
+ players: List[PlayerDG] = field(default_factory=list)
424
+ cumulative: Optional[TeamCumulativeStatsDG] = None
425
+ game_average: Optional[TeamAverageStatsDG] = None
426
+
427
+
428
+ @dataclass
429
+ class DeepGroup(BaseGroup):
430
+ # id: str = ""
431
+ # link: str = ""
432
+ # name: str = ""
433
+ # created: Optional[datetime] = ""
434
+ # player_identification: str = ""
435
+ # team_identification: str = ""
436
+ # shared: bool = False
437
+ status: str = ""
438
+ creator: Optional[CreatorDG] = None
439
+ players: List[PlayerWithStatsDG] = field(default_factory=list)
440
+ teams: List[TeamDG] = field(default_factory=list)