xcpcio 0.62.0__py3-none-any.whl → 0.63.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.
Potentially problematic release.
This version of xcpcio might be problematic. Click here for more details.
- xcpcio/__init__.py +1 -1
- xcpcio/ccs/__init__.py +3 -0
- xcpcio/ccs/model/__init__.py +1 -0
- xcpcio/ccs/model/model_2023_06/__init__.py +7 -0
- xcpcio/ccs/model/model_2023_06/model.py +609 -0
- {xcpcio-0.62.0.dist-info → xcpcio-0.63.0.dist-info}/METADATA +1 -1
- xcpcio-0.63.0.dist-info/RECORD +11 -0
- xcpcio-0.62.0.dist-info/RECORD +0 -7
- {xcpcio-0.62.0.dist-info → xcpcio-0.63.0.dist-info}/WHEEL +0 -0
- {xcpcio-0.62.0.dist-info → xcpcio-0.63.0.dist-info}/top_level.txt +0 -0
xcpcio/__init__.py
CHANGED
xcpcio/ccs/__init__.py
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .model_2023_06 import * # noqa: F403
|
|
@@ -0,0 +1,609 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: event-feed-array.json
|
|
3
|
+
# timestamp: 2025-09-19T00:22:22+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from enum import Enum
|
|
8
|
+
from typing import List, Optional, Union
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, Field, RootModel, confloat, conint, constr
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Endpointssingularcontest(Enum):
|
|
14
|
+
contest = "contest"
|
|
15
|
+
judgement_types = "judgement-types"
|
|
16
|
+
languages = "languages"
|
|
17
|
+
problems = "problems"
|
|
18
|
+
groups = "groups"
|
|
19
|
+
organizations = "organizations"
|
|
20
|
+
persons = "persons"
|
|
21
|
+
accounts = "accounts"
|
|
22
|
+
teams = "teams"
|
|
23
|
+
state = "state"
|
|
24
|
+
submissions = "submissions"
|
|
25
|
+
judgements = "judgements"
|
|
26
|
+
runs = "runs"
|
|
27
|
+
clarifications = "clarifications"
|
|
28
|
+
awards = "awards"
|
|
29
|
+
commentary = "commentary"
|
|
30
|
+
scoreboard = "scoreboard"
|
|
31
|
+
event_feed = "event-feed"
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class Identifier(RootModel[constr(pattern=r"^[A-Za-z0-9_]([A-Za-z0-9_\.-]{0,34}[A-Za-z0-9_-]|)")]):
|
|
35
|
+
root: constr(pattern=r"^[A-Za-z0-9_]([A-Za-z0-9_\.-]{0,34}[A-Za-z0-9_-]|)")
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class ScoreboardType(Enum):
|
|
39
|
+
pass_fail = "pass-fail"
|
|
40
|
+
score = "score"
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class Abstime(
|
|
44
|
+
RootModel[
|
|
45
|
+
constr(
|
|
46
|
+
pattern=r"^[12][0-9]{3}-[01][0-9]-[0-3][0-9]T[0-2][0-9]:[0-6][0-9]:[0-6][0-9](\.[0-9]{3})?([+-][0-1][0-9](:[0-5][0-9])?|Z)$"
|
|
47
|
+
)
|
|
48
|
+
]
|
|
49
|
+
):
|
|
50
|
+
root: constr(
|
|
51
|
+
pattern=r"^[12][0-9]{3}-[01][0-9]-[0-3][0-9]T[0-2][0-9]:[0-6][0-9]:[0-6][0-9](\.[0-9]{3})?([+-][0-1][0-9](:[0-5][0-9])?|Z)$"
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class Posreltime(RootModel[constr(pattern=r"^([1-9][0-9]*)?[0-9]:[0-5][0-9]:[0-5][0-9](\.[0-9]{3})?$")]):
|
|
56
|
+
root: constr(pattern=r"^([1-9][0-9]*)?[0-9]:[0-5][0-9]:[0-5][0-9](\.[0-9]{3})?$")
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
class Mime(Enum):
|
|
60
|
+
image_png = "image/png"
|
|
61
|
+
image_jpeg = "image/jpeg"
|
|
62
|
+
image_svg_xml = "image/svg+xml"
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class Fileref(BaseModel):
|
|
66
|
+
href: str
|
|
67
|
+
filename: Optional[str] = None
|
|
68
|
+
hash: Optional[str] = None
|
|
69
|
+
mime: str
|
|
70
|
+
width: Optional[conint(ge=1)] = None
|
|
71
|
+
height: Optional[conint(ge=1)] = None
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
class Location(BaseModel):
|
|
75
|
+
latitude: confloat(ge=-90.0, le=90.0)
|
|
76
|
+
longitude: confloat(ge=-180.0, le=180.0)
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
class Judgementtypeid(Enum):
|
|
80
|
+
AC = "AC"
|
|
81
|
+
RE = "RE"
|
|
82
|
+
WA = "WA"
|
|
83
|
+
TLE = "TLE"
|
|
84
|
+
RTE = "RTE"
|
|
85
|
+
CE = "CE"
|
|
86
|
+
APE = "APE"
|
|
87
|
+
OLE = "OLE"
|
|
88
|
+
PE = "PE"
|
|
89
|
+
EO = "EO"
|
|
90
|
+
IO = "IO"
|
|
91
|
+
NO = "NO"
|
|
92
|
+
WTL = "WTL"
|
|
93
|
+
ILE = "ILE"
|
|
94
|
+
TCO = "TCO"
|
|
95
|
+
TWA = "TWA"
|
|
96
|
+
TPE = "TPE"
|
|
97
|
+
TEO = "TEO"
|
|
98
|
+
TIO = "TIO"
|
|
99
|
+
TNO = "TNO"
|
|
100
|
+
MLE = "MLE"
|
|
101
|
+
SV = "SV"
|
|
102
|
+
IF = "IF"
|
|
103
|
+
RCO = "RCO"
|
|
104
|
+
RWA = "RWA"
|
|
105
|
+
RPE = "RPE"
|
|
106
|
+
REO = "REO"
|
|
107
|
+
RIO = "RIO"
|
|
108
|
+
RNO = "RNO"
|
|
109
|
+
CTL = "CTL"
|
|
110
|
+
JE = "JE"
|
|
111
|
+
SE = "SE"
|
|
112
|
+
CS = "CS"
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
class Command(BaseModel):
|
|
116
|
+
command: str
|
|
117
|
+
args: Optional[str] = None
|
|
118
|
+
version: Optional[str] = None
|
|
119
|
+
version_command: Optional[str] = None
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
class Filerefsornull(RootModel[Optional[List[Fileref]]]):
|
|
123
|
+
root: Optional[List[Fileref]]
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
class Location1(BaseModel):
|
|
127
|
+
x: float
|
|
128
|
+
y: float
|
|
129
|
+
rotation: confloat(ge=0.0, le=360.0)
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
class Identifiers(RootModel[List[Identifier]]):
|
|
133
|
+
root: List[Identifier]
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
class Sex(Enum):
|
|
137
|
+
male = "male"
|
|
138
|
+
female = "female"
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
class Role(Enum):
|
|
142
|
+
contestant = "contestant"
|
|
143
|
+
coach = "coach"
|
|
144
|
+
staff = "staff"
|
|
145
|
+
other = "other"
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
class Type(Enum):
|
|
149
|
+
team = "team"
|
|
150
|
+
judge = "judge"
|
|
151
|
+
admin = "admin"
|
|
152
|
+
analyst = "analyst"
|
|
153
|
+
staff = "staff"
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
class Reltime(RootModel[constr(pattern=r"^-?([1-9][0-9]*)?[0-9]:[0-5][0-9]:[0-5][0-9](\.[0-9]{3})?$")]):
|
|
157
|
+
root: constr(pattern=r"^-?([1-9][0-9]*)?[0-9]:[0-5][0-9]:[0-5][0-9](\.[0-9]{3})?$")
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
class Filerefs(RootModel[List[Fileref]]):
|
|
161
|
+
root: List[Fileref]
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
class Judgementtypeidornull(RootModel[Optional[Judgementtypeid]]):
|
|
165
|
+
root: Optional[Judgementtypeid]
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
class Reltimeornull(RootModel[Optional[Reltime]]):
|
|
169
|
+
root: Optional[Reltime]
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
class Run(BaseModel):
|
|
173
|
+
id: Identifier
|
|
174
|
+
judgement_id: Identifier
|
|
175
|
+
ordinal: int
|
|
176
|
+
judgement_type_id: Judgementtypeid
|
|
177
|
+
time: Abstime
|
|
178
|
+
contest_time: Reltime
|
|
179
|
+
run_time: Optional[confloat(ge=0.0, multiple_of=0.001)] = None
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
class Runs(RootModel[List[Run]]):
|
|
183
|
+
root: List[Run] = Field(
|
|
184
|
+
...,
|
|
185
|
+
description="JSON response of this API call",
|
|
186
|
+
title="CLICS Contest API: runs",
|
|
187
|
+
)
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
class Identifierornull(RootModel[Optional[Identifier]]):
|
|
191
|
+
root: Optional[Identifier]
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
class Abstimeornull(RootModel[Optional[Abstime]]):
|
|
195
|
+
root: Optional[Abstime]
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
class Posreltimeornull(RootModel[Optional[Posreltime]]):
|
|
199
|
+
root: Optional[Posreltime]
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
class Imageref(Fileref):
|
|
203
|
+
mime: Optional[Mime] = None
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
class Locationornull(RootModel[Optional[Location]]):
|
|
207
|
+
root: Optional[Location]
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
class JudgementType(BaseModel):
|
|
211
|
+
id: Judgementtypeid
|
|
212
|
+
name: str
|
|
213
|
+
penalty: Optional[bool] = None
|
|
214
|
+
solved: bool
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
class JudgementTypes(RootModel[List[JudgementType]]):
|
|
218
|
+
root: List[JudgementType] = Field(
|
|
219
|
+
...,
|
|
220
|
+
description="JSON response of this API call",
|
|
221
|
+
title="CLICS Contest API: judgement_types",
|
|
222
|
+
)
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
class Commandornull(RootModel[Optional[Command]]):
|
|
226
|
+
root: Optional[Command]
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
class Problem(BaseModel):
|
|
230
|
+
id: Identifier
|
|
231
|
+
uuid: Optional[constr(pattern=r"^[A-Fa-f0-9]{8}-([A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}$")] = None
|
|
232
|
+
label: str
|
|
233
|
+
name: str
|
|
234
|
+
ordinal: int
|
|
235
|
+
rgb: Optional[constr(pattern=r"^#[A-Fa-f0-9]{3}([A-Fa-f0-9]{3})?$")] = None
|
|
236
|
+
color: Optional[str] = None
|
|
237
|
+
time_limit: Optional[confloat(ge=0.0, multiple_of=0.001)] = None
|
|
238
|
+
test_data_count: conint(ge=0)
|
|
239
|
+
max_score: Optional[float] = None
|
|
240
|
+
package: Optional[Filerefsornull] = None
|
|
241
|
+
statement: Optional[Filerefsornull] = None
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
class Problems(RootModel[List[Problem]]):
|
|
245
|
+
root: List[Problem] = Field(
|
|
246
|
+
...,
|
|
247
|
+
description="JSON response of this API call",
|
|
248
|
+
title="CLICS Contest API: problems",
|
|
249
|
+
)
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
class Group(BaseModel):
|
|
253
|
+
id: Identifier
|
|
254
|
+
icpc_id: Optional[str] = None
|
|
255
|
+
name: str
|
|
256
|
+
type: Optional[str] = None
|
|
257
|
+
location: Optional[Locationornull] = None
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
class Groups(RootModel[List[Group]]):
|
|
261
|
+
root: List[Group] = Field(
|
|
262
|
+
...,
|
|
263
|
+
description="JSON response of this API call",
|
|
264
|
+
title="CLICS Contest API: groups",
|
|
265
|
+
)
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
class Identifiersornull(RootModel[Optional[Identifiers]]):
|
|
269
|
+
root: Optional[Identifiers]
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
class Account(BaseModel):
|
|
273
|
+
id: Identifier
|
|
274
|
+
username: str
|
|
275
|
+
password: Optional[str] = None
|
|
276
|
+
name: Optional[str] = None
|
|
277
|
+
type: Optional[Type] = None
|
|
278
|
+
ip: Optional[str] = None
|
|
279
|
+
team_id: Optional[Identifierornull] = None
|
|
280
|
+
person_id: Optional[Identifierornull] = None
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
class Accounts(RootModel[List[Account]]):
|
|
284
|
+
root: List[Account] = Field(
|
|
285
|
+
...,
|
|
286
|
+
description="JSON response of this API call",
|
|
287
|
+
title="CLICS Contest API: accounts",
|
|
288
|
+
)
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
class State(BaseModel):
|
|
292
|
+
started: Abstimeornull
|
|
293
|
+
frozen: Optional[Abstimeornull] = None
|
|
294
|
+
ended: Abstimeornull
|
|
295
|
+
thawed: Optional[Abstimeornull] = None
|
|
296
|
+
finalized: Abstimeornull
|
|
297
|
+
end_of_updates: Abstimeornull
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
class Submission1(BaseModel):
|
|
301
|
+
id: Identifier
|
|
302
|
+
language_id: Identifier
|
|
303
|
+
problem_id: Identifier
|
|
304
|
+
team_id: Identifier
|
|
305
|
+
time: Abstime
|
|
306
|
+
contest_time: Reltime
|
|
307
|
+
entry_point: Optional[str] = None
|
|
308
|
+
files: Filerefs
|
|
309
|
+
reaction: Optional[Filerefsornull] = None
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
class Submission2(BaseModel):
|
|
313
|
+
id: Identifier
|
|
314
|
+
language_id: Identifier
|
|
315
|
+
problem_id: Identifier
|
|
316
|
+
team_id: Identifier
|
|
317
|
+
time: Abstime
|
|
318
|
+
contest_time: Reltime
|
|
319
|
+
entry_point: Optional[str] = None
|
|
320
|
+
files: Filerefs
|
|
321
|
+
reaction: Optional[Filerefsornull] = None
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
class Submission3(BaseModel):
|
|
325
|
+
id: Identifier
|
|
326
|
+
language_id: Identifier
|
|
327
|
+
problem_id: Identifier
|
|
328
|
+
team_id: Identifier
|
|
329
|
+
time: Abstime
|
|
330
|
+
contest_time: Reltime
|
|
331
|
+
entry_point: None = None
|
|
332
|
+
files: Filerefs
|
|
333
|
+
reaction: Optional[Filerefsornull] = None
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
class Submission4(BaseModel):
|
|
337
|
+
id: Identifier
|
|
338
|
+
language_id: Identifier
|
|
339
|
+
problem_id: Identifier
|
|
340
|
+
team_id: Identifier
|
|
341
|
+
time: Abstime
|
|
342
|
+
contest_time: Reltime
|
|
343
|
+
entry_point: Optional[str] = None
|
|
344
|
+
files: Filerefs
|
|
345
|
+
reaction: Optional[Filerefsornull] = None
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+
class Submission(RootModel[Union[Submission1, Union[Submission2, Submission3], Submission4]]):
|
|
349
|
+
root: Union[Submission1, Union[Submission2, Submission3], Submission4] = Field(
|
|
350
|
+
...,
|
|
351
|
+
description="Definition of a single submission object",
|
|
352
|
+
title="CLICS Contest API - submission",
|
|
353
|
+
)
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
class Submissions(RootModel[List[Submission]]):
|
|
357
|
+
root: List[Submission] = Field(
|
|
358
|
+
...,
|
|
359
|
+
description="JSON response of this API call",
|
|
360
|
+
title="CLICS Contest API: submissions",
|
|
361
|
+
)
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
class Judgement1(BaseModel):
|
|
365
|
+
id: Identifier
|
|
366
|
+
submission_id: Identifier
|
|
367
|
+
judgement_type_id: Judgementtypeidornull
|
|
368
|
+
score: Optional[confloat(ge=0.0)] = None
|
|
369
|
+
start_time: Abstime
|
|
370
|
+
start_contest_time: Reltime
|
|
371
|
+
end_time: Abstimeornull
|
|
372
|
+
end_contest_time: Reltimeornull
|
|
373
|
+
max_run_time: Optional[confloat(ge=0.0, multiple_of=0.001)] = None
|
|
374
|
+
|
|
375
|
+
|
|
376
|
+
class Judgement2(BaseModel):
|
|
377
|
+
id: Identifier
|
|
378
|
+
submission_id: Identifier
|
|
379
|
+
judgement_type_id: Optional[Judgementtypeidornull] = None
|
|
380
|
+
score: Optional[confloat(ge=0.0)] = None
|
|
381
|
+
start_time: Abstime
|
|
382
|
+
start_contest_time: Reltime
|
|
383
|
+
end_time: Optional[Abstimeornull] = None
|
|
384
|
+
end_contest_time: Optional[Reltimeornull] = None
|
|
385
|
+
max_run_time: Optional[confloat(ge=0.0, multiple_of=0.001)] = None
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
class Judgement(RootModel[Union[Judgement1, Judgement2]]):
|
|
389
|
+
root: Union[Judgement1, Judgement2] = Field(
|
|
390
|
+
...,
|
|
391
|
+
description="Definition of a single judgement object",
|
|
392
|
+
title="CLICS Contest API - judgement",
|
|
393
|
+
)
|
|
394
|
+
|
|
395
|
+
|
|
396
|
+
class Judgements(RootModel[List[Judgement]]):
|
|
397
|
+
root: List[Judgement] = Field(
|
|
398
|
+
...,
|
|
399
|
+
description="JSON response of this API call",
|
|
400
|
+
title="CLICS Contest API: judgements",
|
|
401
|
+
)
|
|
402
|
+
|
|
403
|
+
|
|
404
|
+
class Clarification(BaseModel):
|
|
405
|
+
id: Identifier
|
|
406
|
+
from_team_id: Optional[Identifierornull] = None
|
|
407
|
+
to_team_id: Optional[Identifierornull] = None
|
|
408
|
+
reply_to_id: Optional[Identifierornull] = None
|
|
409
|
+
problem_id: Optional[Identifierornull] = None
|
|
410
|
+
text: str
|
|
411
|
+
time: Abstime
|
|
412
|
+
contest_time: Reltime
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
class Clarifications(RootModel[List[Clarification]]):
|
|
416
|
+
root: List[Clarification] = Field(
|
|
417
|
+
...,
|
|
418
|
+
description="JSON response of this API call",
|
|
419
|
+
title="CLICS Contest API: clarifications",
|
|
420
|
+
)
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
class Award(BaseModel):
|
|
424
|
+
id: Identifier
|
|
425
|
+
citation: str
|
|
426
|
+
team_ids: Optional[Identifiersornull] = None
|
|
427
|
+
|
|
428
|
+
|
|
429
|
+
class Awards(RootModel[List[Award]]):
|
|
430
|
+
root: List[Award] = Field(
|
|
431
|
+
...,
|
|
432
|
+
description="JSON response of this API call",
|
|
433
|
+
title="CLICS Contest API: awards",
|
|
434
|
+
)
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
class Commentary(BaseModel):
|
|
438
|
+
id: Identifier
|
|
439
|
+
time: Abstime
|
|
440
|
+
contest_time: Reltime
|
|
441
|
+
message: str
|
|
442
|
+
tags: List[str]
|
|
443
|
+
source_id: Optional[Identifierornull] = None
|
|
444
|
+
team_ids: Optional[Identifiersornull] = None
|
|
445
|
+
problem_ids: Optional[Identifiersornull] = None
|
|
446
|
+
submission_ids: Optional[Identifiersornull] = None
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
class Commentaries(RootModel[List[Commentary]]):
|
|
450
|
+
root: List[Commentary] = Field(
|
|
451
|
+
...,
|
|
452
|
+
description="JSON response of this API call",
|
|
453
|
+
title="CLICS Contest API: commentary",
|
|
454
|
+
)
|
|
455
|
+
|
|
456
|
+
|
|
457
|
+
class Imagerefsornull(RootModel[Optional[List[Imageref]]]):
|
|
458
|
+
root: Optional[List[Imageref]]
|
|
459
|
+
|
|
460
|
+
|
|
461
|
+
class Language(BaseModel):
|
|
462
|
+
id: Identifier
|
|
463
|
+
name: str
|
|
464
|
+
entry_point_required: bool
|
|
465
|
+
entry_point_name: Optional[str] = None
|
|
466
|
+
extensions: List[str]
|
|
467
|
+
compiler: Optional[Commandornull] = None
|
|
468
|
+
runner: Optional[Commandornull] = None
|
|
469
|
+
|
|
470
|
+
|
|
471
|
+
class Languages(RootModel[List[Language]]):
|
|
472
|
+
root: List[Language] = Field(
|
|
473
|
+
...,
|
|
474
|
+
description="JSON response of this API call",
|
|
475
|
+
title="CLICS Contest API: languages",
|
|
476
|
+
)
|
|
477
|
+
|
|
478
|
+
|
|
479
|
+
class Organization(BaseModel):
|
|
480
|
+
id: Identifier
|
|
481
|
+
icpc_id: Optional[str] = None
|
|
482
|
+
name: str
|
|
483
|
+
formal_name: Optional[str] = None
|
|
484
|
+
country: Optional[constr(pattern=r"^[A-Z]{3}$")] = None
|
|
485
|
+
country_flag: Optional[Imagerefsornull] = None
|
|
486
|
+
url: Optional[str] = None
|
|
487
|
+
twitter_hashtag: Optional[str] = None
|
|
488
|
+
twitter_account: Optional[str] = None
|
|
489
|
+
location: Optional[Locationornull] = None
|
|
490
|
+
logo: Optional[Imagerefsornull] = None
|
|
491
|
+
|
|
492
|
+
|
|
493
|
+
class Organizations(RootModel[List[Organization]]):
|
|
494
|
+
root: List[Organization] = Field(
|
|
495
|
+
...,
|
|
496
|
+
description="JSON response of this API call",
|
|
497
|
+
title="CLICS Contest API: organizations",
|
|
498
|
+
)
|
|
499
|
+
|
|
500
|
+
|
|
501
|
+
class Team(BaseModel):
|
|
502
|
+
id: Identifier
|
|
503
|
+
icpc_id: Optional[str] = None
|
|
504
|
+
name: str
|
|
505
|
+
label: str
|
|
506
|
+
display_name: Optional[str] = None
|
|
507
|
+
organization_id: Optional[Identifierornull] = None
|
|
508
|
+
group_ids: Optional[Identifiersornull] = None
|
|
509
|
+
hidden: Optional[bool] = None
|
|
510
|
+
location: Optional[Location1] = None
|
|
511
|
+
photo: Optional[Imagerefsornull] = None
|
|
512
|
+
video: Optional[Filerefsornull] = None
|
|
513
|
+
backup: Optional[Filerefsornull] = None
|
|
514
|
+
key_log: Optional[Filerefsornull] = None
|
|
515
|
+
tool_data: Optional[Filerefsornull] = None
|
|
516
|
+
desktop: Optional[Filerefsornull] = None
|
|
517
|
+
webcam: Optional[Filerefsornull] = None
|
|
518
|
+
audio: Optional[Filerefsornull] = None
|
|
519
|
+
|
|
520
|
+
|
|
521
|
+
class Teams(RootModel[List[Team]]):
|
|
522
|
+
root: List[Team] = Field(
|
|
523
|
+
...,
|
|
524
|
+
description="JSON response of this API call",
|
|
525
|
+
title="CLICS Contest API: teams",
|
|
526
|
+
)
|
|
527
|
+
|
|
528
|
+
|
|
529
|
+
class Person(BaseModel):
|
|
530
|
+
id: Identifier
|
|
531
|
+
icpc_id: Optional[str] = None
|
|
532
|
+
team_ids: Optional[Identifiers] = None
|
|
533
|
+
name: str
|
|
534
|
+
title: Optional[str] = None
|
|
535
|
+
email: Optional[str] = None
|
|
536
|
+
sex: Optional[Sex] = None
|
|
537
|
+
role: Role
|
|
538
|
+
photo: Optional[Imagerefsornull] = None
|
|
539
|
+
|
|
540
|
+
|
|
541
|
+
class Persons(RootModel[List[Person]]):
|
|
542
|
+
root: List[Person] = Field(
|
|
543
|
+
...,
|
|
544
|
+
description="JSON response of this API call",
|
|
545
|
+
title="CLICS Contest API: persons",
|
|
546
|
+
)
|
|
547
|
+
|
|
548
|
+
|
|
549
|
+
class Contest(BaseModel):
|
|
550
|
+
id: Identifier
|
|
551
|
+
name: str
|
|
552
|
+
formal_name: Optional[str] = None
|
|
553
|
+
start_time: Optional[Abstimeornull] = None
|
|
554
|
+
countdown_pause_time: Optional[Posreltimeornull] = None
|
|
555
|
+
duration: Posreltime
|
|
556
|
+
scoreboard_freeze_duration: Optional[Posreltimeornull] = None
|
|
557
|
+
scoreboard_type: ScoreboardType
|
|
558
|
+
penalty_time: Optional[conint(ge=0)] = None
|
|
559
|
+
banner: Optional[Imagerefsornull] = None
|
|
560
|
+
logo: Optional[Imagerefsornull] = None
|
|
561
|
+
location: Optional[Locationornull] = None
|
|
562
|
+
|
|
563
|
+
|
|
564
|
+
class EventFeed(BaseModel):
|
|
565
|
+
type: Endpointssingularcontest
|
|
566
|
+
id: Identifierornull
|
|
567
|
+
data: Optional[
|
|
568
|
+
Union[
|
|
569
|
+
Contest,
|
|
570
|
+
JudgementType,
|
|
571
|
+
JudgementTypes,
|
|
572
|
+
Language,
|
|
573
|
+
Languages,
|
|
574
|
+
Problem,
|
|
575
|
+
Problems,
|
|
576
|
+
Group,
|
|
577
|
+
Groups,
|
|
578
|
+
Organization,
|
|
579
|
+
Organizations,
|
|
580
|
+
Team,
|
|
581
|
+
Teams,
|
|
582
|
+
Person,
|
|
583
|
+
Persons,
|
|
584
|
+
Account,
|
|
585
|
+
Accounts,
|
|
586
|
+
State,
|
|
587
|
+
Submission,
|
|
588
|
+
Submissions,
|
|
589
|
+
Judgement,
|
|
590
|
+
Judgements,
|
|
591
|
+
Run,
|
|
592
|
+
Runs,
|
|
593
|
+
Clarification,
|
|
594
|
+
Clarifications,
|
|
595
|
+
Award,
|
|
596
|
+
Awards,
|
|
597
|
+
Commentary,
|
|
598
|
+
Commentaries,
|
|
599
|
+
]
|
|
600
|
+
] = None
|
|
601
|
+
token: Optional[str] = None
|
|
602
|
+
|
|
603
|
+
|
|
604
|
+
class ClicsContestApiEventFeedArray(RootModel[List[EventFeed]]):
|
|
605
|
+
root: List[EventFeed] = Field(
|
|
606
|
+
...,
|
|
607
|
+
description="JSON array of responses of this NDJSON API call",
|
|
608
|
+
title="CLICS Contest API: event-feed array",
|
|
609
|
+
)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
xcpcio/__init__.py,sha256=xaS2UDwonjhsq9fTq-KPgoMUZg4E3MPKllRoG7eENxc,85
|
|
2
|
+
xcpcio/constants.py,sha256=MjpAgNXiBlUsx1S09m7JNT-nekNDR-aE6ggvGL3fg0I,2297
|
|
3
|
+
xcpcio/types.py,sha256=AkYby2haJgxwtozlgaPMG2ryAZdvsSc3sH-p6qXcM4g,6575
|
|
4
|
+
xcpcio/ccs/__init__.py,sha256=QUkMIexjQPFLsns0hQLkrItsIdCTcjnqjK1Ne4kdrKQ,49
|
|
5
|
+
xcpcio/ccs/model/__init__.py,sha256=cZE1q5JY-iHDEKZpsx0UZaMhH-23H4oAHaYOkW7dZ5s,43
|
|
6
|
+
xcpcio/ccs/model/model_2023_06/__init__.py,sha256=OmDQZqmigBpL64LXk5lIOGoQ3Uqis8-2z6qQpOO5aJc,167
|
|
7
|
+
xcpcio/ccs/model/model_2023_06/model.py,sha256=bVMDWpJTwPSpz1fHPxWrWerxCBIboH3LKVZpIZGQ2pY,15287
|
|
8
|
+
xcpcio-0.63.0.dist-info/METADATA,sha256=OoHlELrGiJiHSbBWYYDpO_uUs6vwllQN9aQ1mFZmdJg,771
|
|
9
|
+
xcpcio-0.63.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
10
|
+
xcpcio-0.63.0.dist-info/top_level.txt,sha256=c0sKVaiJdzJma17sS0dqHsYvDtGav5iIbd3wyLWuDEA,7
|
|
11
|
+
xcpcio-0.63.0.dist-info/RECORD,,
|
xcpcio-0.62.0.dist-info/RECORD
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
xcpcio/__init__.py,sha256=jTjLppMsGJhpofl2gkupN0iJiJPzI6oEp3vKXcTtdaM,85
|
|
2
|
-
xcpcio/constants.py,sha256=MjpAgNXiBlUsx1S09m7JNT-nekNDR-aE6ggvGL3fg0I,2297
|
|
3
|
-
xcpcio/types.py,sha256=AkYby2haJgxwtozlgaPMG2ryAZdvsSc3sH-p6qXcM4g,6575
|
|
4
|
-
xcpcio-0.62.0.dist-info/METADATA,sha256=h3LEv7NNBmY1nuJ5-KoLcR93u3Dg2zw3_ou_6Xy_5kc,771
|
|
5
|
-
xcpcio-0.62.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
6
|
-
xcpcio-0.62.0.dist-info/top_level.txt,sha256=c0sKVaiJdzJma17sS0dqHsYvDtGav5iIbd3wyLWuDEA,7
|
|
7
|
-
xcpcio-0.62.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|