xcpcio 0.64.5__py3-none-any.whl → 0.65.1__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/__version__.py +1 -1
- xcpcio/types.py +71 -37
- {xcpcio-0.64.5.dist-info → xcpcio-0.65.1.dist-info}/METADATA +1 -1
- {xcpcio-0.64.5.dist-info → xcpcio-0.65.1.dist-info}/RECORD +6 -6
- {xcpcio-0.64.5.dist-info → xcpcio-0.65.1.dist-info}/WHEEL +0 -0
- {xcpcio-0.64.5.dist-info → xcpcio-0.65.1.dist-info}/entry_points.txt +0 -0
xcpcio/__version__.py
CHANGED
xcpcio/types.py
CHANGED
|
@@ -61,9 +61,19 @@ SubmissionStatus = Literal[
|
|
|
61
61
|
ImagePreset = Literal["ICPC", "CCPC", "HUNAN_CPC"]
|
|
62
62
|
MedalPreset = Literal["ccpc", "icpc"]
|
|
63
63
|
BannerMode = Literal["ONLY_BANNER", "ALL"]
|
|
64
|
+
Lang = Literal["en", "zh-CN"]
|
|
64
65
|
DateTimeISO8601String = str
|
|
65
66
|
|
|
66
67
|
|
|
68
|
+
class I18NStringSet(BaseModel):
|
|
69
|
+
fallback: Optional[str] = None
|
|
70
|
+
fallback_lang: Optional[Lang] = None
|
|
71
|
+
texts: Optional[Dict[Lang, str]] = None
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
Text = Union[str, I18NStringSet]
|
|
75
|
+
|
|
76
|
+
|
|
67
77
|
class Image(BaseModel):
|
|
68
78
|
url: Optional[str] = None
|
|
69
79
|
base64: Optional[str] = None
|
|
@@ -71,20 +81,42 @@ class Image(BaseModel):
|
|
|
71
81
|
preset: Optional[ImagePreset] = None
|
|
72
82
|
|
|
73
83
|
|
|
74
|
-
class
|
|
84
|
+
class BalloonColor(BaseModel):
|
|
75
85
|
color: str
|
|
76
86
|
background_color: str
|
|
77
87
|
|
|
78
88
|
|
|
79
|
-
class
|
|
80
|
-
|
|
89
|
+
class Person(BaseModel):
|
|
90
|
+
name: Text
|
|
91
|
+
cf_id: Optional[str] = None
|
|
92
|
+
icpc_id: Optional[str] = None
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
Persons = List[Person]
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
class Problem(BaseModel):
|
|
99
|
+
id: str
|
|
100
|
+
label: str
|
|
101
|
+
name: Optional[Text] = None
|
|
102
|
+
time_limit: Optional[str] = None
|
|
103
|
+
memory_limit: Optional[str] = None
|
|
104
|
+
balloon_color: Optional[BalloonColor] = None
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
Problems = List[Problem]
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
class SubmissionReaction(BaseModel):
|
|
111
|
+
url: str
|
|
81
112
|
|
|
82
113
|
|
|
83
114
|
class Submission(BaseModel):
|
|
84
|
-
id: str =
|
|
115
|
+
id: Optional[str] = None
|
|
116
|
+
submission_id: Optional[str] = None
|
|
85
117
|
|
|
86
118
|
team_id: str = ""
|
|
87
|
-
problem_id: int = 0
|
|
119
|
+
problem_id: Union[int, str] = 0
|
|
88
120
|
timestamp: int = 0 # unit: seconds
|
|
89
121
|
status: SubmissionStatus = constants.SUBMISSION_STATUS_UNKNOWN
|
|
90
122
|
|
|
@@ -93,23 +125,23 @@ class Submission(BaseModel):
|
|
|
93
125
|
|
|
94
126
|
is_ignore: Optional[bool] = None
|
|
95
127
|
|
|
96
|
-
reaction: Optional[
|
|
128
|
+
reaction: Optional[SubmissionReaction] = None
|
|
97
129
|
|
|
98
130
|
|
|
99
131
|
class Submissions(RootModel[List[Submission]]):
|
|
100
|
-
|
|
132
|
+
pass
|
|
101
133
|
|
|
102
134
|
|
|
103
135
|
class Team(BaseModel):
|
|
104
136
|
id: str = ""
|
|
105
|
-
name:
|
|
137
|
+
name: Text = ""
|
|
106
138
|
|
|
107
139
|
organization: str = ""
|
|
108
140
|
group: List[str] = Field(default_factory=list)
|
|
109
|
-
tag: List[str] =
|
|
141
|
+
tag: Optional[List[str]] = None
|
|
110
142
|
|
|
111
|
-
|
|
112
|
-
members: Optional[List[
|
|
143
|
+
coaches: Optional[Union[Text, List[Text], Persons]] = None
|
|
144
|
+
members: Optional[Union[Text, List[Text], Persons]] = None
|
|
113
145
|
|
|
114
146
|
badge: Optional[Image] = None
|
|
115
147
|
|
|
@@ -139,7 +171,7 @@ class ContestOptions(BaseModel):
|
|
|
139
171
|
|
|
140
172
|
|
|
141
173
|
class Contest(BaseModel):
|
|
142
|
-
contest_name:
|
|
174
|
+
contest_name: Text = ""
|
|
143
175
|
|
|
144
176
|
start_time: Union[int, DateTimeISO8601String] = 0
|
|
145
177
|
end_time: Union[int, DateTimeISO8601String] = 0
|
|
@@ -147,17 +179,18 @@ class Contest(BaseModel):
|
|
|
147
179
|
|
|
148
180
|
freeze_time: Optional[Union[int, DateTimeISO8601String]] = None
|
|
149
181
|
frozen_time: int = 60 * 60 # unit: seconds
|
|
150
|
-
unfrozen_time: int = 0x3F3F3F3F3F3F3F3F
|
|
151
182
|
|
|
152
|
-
|
|
153
|
-
problem_id: List[str] = Field(default_factory=list)
|
|
183
|
+
problems: Optional[Problems] = None
|
|
154
184
|
|
|
155
|
-
|
|
156
|
-
|
|
185
|
+
problem_id: Optional[List[str]] = None
|
|
186
|
+
balloon_color: Optional[List[BalloonColor]] = None
|
|
187
|
+
|
|
188
|
+
status_time_display: Dict[str, bool] = constants.FULL_STATUS_TIME_DISPLAY
|
|
157
189
|
|
|
158
190
|
badge: Optional[str] = None
|
|
191
|
+
organization: str = "School"
|
|
192
|
+
|
|
159
193
|
medal: Optional[Union[Dict[str, Dict[str, int]], MedalPreset]] = None
|
|
160
|
-
balloon_color: Optional[List[Color]] = None
|
|
161
194
|
|
|
162
195
|
group: Optional[Dict[str, str]] = None
|
|
163
196
|
tag: Optional[Dict[str, str]] = None
|
|
@@ -171,34 +204,35 @@ class Contest(BaseModel):
|
|
|
171
204
|
|
|
172
205
|
options: ContestOptions = Field(default_factory=ContestOptions)
|
|
173
206
|
|
|
174
|
-
|
|
207
|
+
unfrozen_time: int = 0x3F3F3F3F3F3F3F3F
|
|
208
|
+
|
|
209
|
+
def append_balloon_color(self, color: BalloonColor):
|
|
175
210
|
if self.balloon_color is None:
|
|
176
211
|
self.balloon_color = []
|
|
177
212
|
self.balloon_color.append(color)
|
|
178
213
|
return self
|
|
179
214
|
|
|
180
|
-
def fill_problem_id(self):
|
|
181
|
-
self.problem_id = [chr(ord("A") + i) for i in range(
|
|
215
|
+
def fill_problem_id(self, problem_quantity: int):
|
|
216
|
+
self.problem_id = [chr(ord("A") + i) for i in range(problem_quantity)]
|
|
182
217
|
return self
|
|
183
218
|
|
|
184
219
|
def fill_balloon_color(self):
|
|
185
220
|
default_balloon_color_list = [
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
221
|
+
BalloonColor(background_color="rgba(189, 14, 14, 0.7)", color="#fff"),
|
|
222
|
+
BalloonColor(background_color="rgba(149, 31, 217, 0.7)", color="#fff"),
|
|
223
|
+
BalloonColor(background_color="rgba(16, 32, 96, 0.7)", color="#fff"),
|
|
224
|
+
BalloonColor(background_color="rgba(38, 185, 60, 0.7)", color="#000"),
|
|
225
|
+
BalloonColor(background_color="rgba(239, 217, 9, 0.7)", color="#000"),
|
|
226
|
+
BalloonColor(background_color="rgba(243, 88, 20, 0.7)", color="#fff"),
|
|
227
|
+
BalloonColor(background_color="rgba(12, 76, 138, 0.7)", color="#fff"),
|
|
228
|
+
BalloonColor(background_color="rgba(156, 155, 155, 0.7)", color="#000"),
|
|
229
|
+
BalloonColor(background_color="rgba(4, 154, 115, 0.7)", color="#000"),
|
|
230
|
+
BalloonColor(background_color="rgba(159, 19, 236, 0.7)", color="#fff"),
|
|
231
|
+
BalloonColor(background_color="rgba(42, 197, 202, 0.7)", color="#000"),
|
|
232
|
+
BalloonColor(background_color="rgba(142, 56, 54, 0.7)", color="#fff"),
|
|
233
|
+
BalloonColor(background_color="rgba(144, 238, 144, 0.7)", color="#000"),
|
|
234
|
+
BalloonColor(background_color="rgba(77, 57, 0, 0.7)", color="#fff"),
|
|
200
235
|
]
|
|
201
|
-
|
|
202
|
-
self.balloon_color = default_balloon_color_list[: self.problem_quantity]
|
|
236
|
+
self.balloon_color = default_balloon_color_list[: len(self.problem_id)]
|
|
203
237
|
|
|
204
238
|
return self
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
xcpcio/__init__.py,sha256=NB6wpVr5JUrOx2vLIQSVtYuCz0d7kNFE39TSQlvoENk,125
|
|
2
|
-
xcpcio/__version__.py,sha256=
|
|
2
|
+
xcpcio/__version__.py,sha256=VBPsXdwddysU3SJE-BBz0H6duBTyQFGRD6HQcyRwc84,172
|
|
3
3
|
xcpcio/constants.py,sha256=MjpAgNXiBlUsx1S09m7JNT-nekNDR-aE6ggvGL3fg0I,2297
|
|
4
|
-
xcpcio/types.py,sha256=
|
|
4
|
+
xcpcio/types.py,sha256=jO5ka10DD6ENd_6eOx1ddSwmYhPjZOaYHmU2qDtuN5s,7383
|
|
5
5
|
xcpcio/api/__init__.py,sha256=B9gLdAlR3FD7070cvAC5wAwMy3iV63I8hh4mUrnrKpk,274
|
|
6
6
|
xcpcio/api/client.py,sha256=BuzH8DbJYudJ-Kne-2XziLW__B_7iEqElJ4n2SGZCoY,2374
|
|
7
7
|
xcpcio/api/models.py,sha256=_dChApnIHVNN3hEL7mR5zonq8IUcxW_h7z1kUz6reSs,772
|
|
@@ -40,7 +40,7 @@ xcpcio/clics/model/model_2023_06/model.py,sha256=bVMDWpJTwPSpz1fHPxWrWerxCBIboH3
|
|
|
40
40
|
xcpcio/clics/reader/__init__.py,sha256=Nfi78X8J1tJPh7WeSRPLMRUprlS2JYelYJHW4DfyJ7U,162
|
|
41
41
|
xcpcio/clics/reader/contest_package_reader.py,sha256=0wIzQp4zzdaB10zMY4WALLIeoXcMuhMJ6nRrfKxWhgw,14179
|
|
42
42
|
xcpcio/clics/reader/interface.py,sha256=lK2JXU1n8GJ4PecXnfFBijMaCVLYk404e4QwV_Ti2Hk,3918
|
|
43
|
-
xcpcio-0.
|
|
44
|
-
xcpcio-0.
|
|
45
|
-
xcpcio-0.
|
|
46
|
-
xcpcio-0.
|
|
43
|
+
xcpcio-0.65.1.dist-info/METADATA,sha256=5IYHoE0RFCb6_d226D76AKaWRwvn764SyYeL5TJfTs4,2233
|
|
44
|
+
xcpcio-0.65.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
45
|
+
xcpcio-0.65.1.dist-info/entry_points.txt,sha256=JYkvmmxKFWv0EBU6Ys65XsjkOO02KGlzASau0GX9TQ8,110
|
|
46
|
+
xcpcio-0.65.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|