@@ -30,6 +30,37 @@ def __init__(self, data: dict):
30
30
self .round_count = data .get ("roundCount" , None )
31
31
32
32
33
+ class BracketSettings :
34
+ """
35
+ Bracket Settings
36
+
37
+ Attributes:
38
+
39
+ size (int): Bracket Size
40
+ seed_ordering (List[str]): Seed Ordering
41
+ consolation_final (Optional[bool]): Consolation Final
42
+ round_robin_mode (Optional[str]): Round Robin Mode
43
+ group_count (Optional[int]): Group Count
44
+ grand_final (Optional[str]): Grand Final
45
+ """
46
+ _raw : dict
47
+ size : int # Size of bracket?
48
+ seed_ordering : List [str ]
49
+ consolation_final : Optional [bool ]
50
+ round_robin_mode : Optional [str ]
51
+ group_count : Optional [int ]
52
+ grand_final : Optional [str ]
53
+
54
+ def __init__ (self , data : dict ):
55
+ self ._raw = data
56
+ self .size = data .get ("size" , 0 )
57
+ self .seed_ordering = data .get ("seedOrdering" , [])
58
+ self .consolation_final = data .get ("consolationFinal" , None )
59
+ self .round_robin_mode = data .get ("roundRobinMode" , None )
60
+ self .group_count = data .get ("groupCount" , None )
61
+ self .grand_final = data .get ("grandFinal" , None )
62
+
63
+
33
64
class BracketStage :
34
65
"""
35
66
Bracket Stage
@@ -46,7 +77,7 @@ class BracketStage:
46
77
id : int
47
78
name : str
48
79
number : int
49
- settings : Any
80
+ settings : BracketSettings
50
81
tournament_id : int
51
82
type : BracketType
52
83
created_at : datetime # Provided as unix timestamp
@@ -55,7 +86,7 @@ def __init__(self, data: dict):
55
86
self .id = data .get ("id" , 0 )
56
87
self .name = data .get ("name" , "" )
57
88
self .number = data .get ("number" , 0 )
58
- self .settings = data .get ("settings" , {})
89
+ self .settings = BracketSettings ( data .get ("settings" , {}) )
59
90
self .tournament_id = data .get ("tournament_id" , 0 )
60
91
self .type = BracketType (data .get ("type" , "" ))
61
92
self .created_at = datetime .fromtimestamp (data .get ("createdAt" , 0 ), tz = timezone .utc )
@@ -211,19 +242,20 @@ class BracketData(BaseModel):
211
242
Bracket Data
212
243
213
244
Attributes:
214
- stage (BracketStage): Bracket Stage
245
+ stage (Optional[ BracketStage] ): Bracket Stage
215
246
group (List[BracketGroup]): Bracket Groups
216
247
round (List[BracketRound]): Bracket Rounds
217
248
match (List[BracketMatch]): Bracket Matches
218
249
"""
219
- stage : List [BracketStage ]
250
+ stage : Optional [BracketStage ]
220
251
group : List [BracketGroup ]
221
252
round : List [BracketRound ]
222
253
match : List [BracketMatch ]
223
254
224
255
def __init__ (self , data : dict , request_client : RequestsClient ):
225
256
super ().__init__ (data , request_client )
226
- self .stage = [BracketStage (stage ) for stage in data .get ("stage" , [])]
257
+ stage = data .get ("stage" , [])
258
+ self .stage = BracketStage (stage [0 ]) if len (stage ) > 0 else None
227
259
self .group = [BracketGroup (group ) for group in data .get ("group" , [])]
228
260
self .round = [BracketRound (r ) for r in data .get ("round" , [])]
229
261
self .match = [BracketMatch (match , request_client ) for match in data .get ("match" , [])]
0 commit comments