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/__init__.py +7 -0
- ballchasing/api.py +207 -119
- ballchasing/constants.py +68 -47
- ballchasing/typed/__init__.py +5 -0
- ballchasing/typed/deep_group.py +440 -0
- ballchasing/typed/deep_replay.py +286 -0
- ballchasing/typed/shallow_group.py +18 -0
- ballchasing/typed/shallow_replay.py +67 -0
- ballchasing/typed/shared.py +218 -0
- ballchasing/util.py +16 -4
- python_ballchasing-0.4.0.dist-info/METADATA +108 -0
- python_ballchasing-0.4.0.dist-info/RECORD +19 -0
- {python_ballchasing-0.2.0.dist-info → python_ballchasing-0.4.0.dist-info}/top_level.txt +1 -0
- scripts/make_types.py +194 -0
- scripts/test.py +52 -0
- scripts/test_typed.py +35 -0
- python_ballchasing-0.2.0.dist-info/METADATA +0 -36
- python_ballchasing-0.2.0.dist-info/RECORD +0 -10
- {python_ballchasing-0.2.0.dist-info → python_ballchasing-0.4.0.dist-info}/WHEEL +0 -0
- {python_ballchasing-0.2.0.dist-info → python_ballchasing-0.4.0.dist-info}/licenses/LICENSE +0 -0
ballchasing/constants.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import Literal, get_args, AnyStr, Union
|
|
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 = (
|
|
52
|
-
|
|
53
|
-
|
|
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 = (
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
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", "
|
|
138
|
-
"
|
|
139
|
-
"
|
|
140
|
-
"
|
|
141
|
-
"
|
|
142
|
-
"
|
|
143
|
-
"
|
|
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
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
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)", "
|
|
174
|
-
"
|
|
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",
|
|
178
|
-
"DFH Stadium (
|
|
179
|
-
"
|
|
180
|
-
"
|
|
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
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
PARK_SNOWY_P, STADIUM_DAY_P, STADIUM_FOGGY_P, STADIUM_P, STADIUM_RACE_DAY_P,
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
WASTELAND_NIGHT_S_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,
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
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)
|