xcpcio 0.64.5__py3-none-any.whl → 0.65.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/__version__.py +1 -1
- xcpcio/types.py +60 -26
- {xcpcio-0.64.5.dist-info → xcpcio-0.65.0.dist-info}/METADATA +1 -1
- {xcpcio-0.64.5.dist-info → xcpcio-0.65.0.dist-info}/RECORD +6 -6
- {xcpcio-0.64.5.dist-info → xcpcio-0.65.0.dist-info}/WHEEL +0 -0
- {xcpcio-0.64.5.dist-info → xcpcio-0.65.0.dist-info}/entry_points.txt +0 -0
xcpcio/__version__.py
CHANGED
xcpcio/types.py
CHANGED
|
@@ -61,9 +61,28 @@ 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
|
+
|
|
77
|
+
class Person(BaseModel):
|
|
78
|
+
name: Text
|
|
79
|
+
cf_id: Optional[str] = None
|
|
80
|
+
icpc_id: Optional[str] = None
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
Persons = List[Person]
|
|
84
|
+
|
|
85
|
+
|
|
67
86
|
class Image(BaseModel):
|
|
68
87
|
url: Optional[str] = None
|
|
69
88
|
base64: Optional[str] = None
|
|
@@ -71,20 +90,33 @@ class Image(BaseModel):
|
|
|
71
90
|
preset: Optional[ImagePreset] = None
|
|
72
91
|
|
|
73
92
|
|
|
74
|
-
class
|
|
93
|
+
class BalloonColor(BaseModel):
|
|
75
94
|
color: str
|
|
76
95
|
background_color: str
|
|
77
96
|
|
|
78
97
|
|
|
79
|
-
class
|
|
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):
|
|
80
111
|
url: Optional[str] = None
|
|
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,7 +125,7 @@ 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]]):
|
|
@@ -102,14 +134,14 @@ class Submissions(RootModel[List[Submission]]):
|
|
|
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
141
|
tag: List[str] = Field(default_factory=list)
|
|
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
|
|
@@ -149,15 +181,17 @@ class Contest(BaseModel):
|
|
|
149
181
|
frozen_time: int = 60 * 60 # unit: seconds
|
|
150
182
|
unfrozen_time: int = 0x3F3F3F3F3F3F3F3F
|
|
151
183
|
|
|
184
|
+
problems: Optional[Problems] = None
|
|
152
185
|
problem_quantity: int = 0
|
|
153
186
|
problem_id: List[str] = Field(default_factory=list)
|
|
187
|
+
balloon_color: Optional[List[BalloonColor]] = None
|
|
154
188
|
|
|
155
|
-
organization: str = "School"
|
|
156
189
|
status_time_display: Optional[Dict[str, bool]] = constants.FULL_STATUS_TIME_DISPLAY
|
|
157
190
|
|
|
158
191
|
badge: Optional[str] = None
|
|
192
|
+
organization: str = "School"
|
|
193
|
+
|
|
159
194
|
medal: Optional[Union[Dict[str, Dict[str, int]], MedalPreset]] = None
|
|
160
|
-
balloon_color: Optional[List[Color]] = None
|
|
161
195
|
|
|
162
196
|
group: Optional[Dict[str, str]] = None
|
|
163
197
|
tag: Optional[Dict[str, str]] = None
|
|
@@ -171,7 +205,7 @@ class Contest(BaseModel):
|
|
|
171
205
|
|
|
172
206
|
options: ContestOptions = Field(default_factory=ContestOptions)
|
|
173
207
|
|
|
174
|
-
def append_balloon_color(self, color:
|
|
208
|
+
def append_balloon_color(self, color: BalloonColor):
|
|
175
209
|
if self.balloon_color is None:
|
|
176
210
|
self.balloon_color = []
|
|
177
211
|
self.balloon_color.append(color)
|
|
@@ -183,20 +217,20 @@ class Contest(BaseModel):
|
|
|
183
217
|
|
|
184
218
|
def fill_balloon_color(self):
|
|
185
219
|
default_balloon_color_list = [
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
220
|
+
BalloonColor(background_color="rgba(189, 14, 14, 0.7)", color="#fff"),
|
|
221
|
+
BalloonColor(background_color="rgba(149, 31, 217, 0.7)", color="#fff"),
|
|
222
|
+
BalloonColor(background_color="rgba(16, 32, 96, 0.7)", color="#fff"),
|
|
223
|
+
BalloonColor(background_color="rgba(38, 185, 60, 0.7)", color="#000"),
|
|
224
|
+
BalloonColor(background_color="rgba(239, 217, 9, 0.7)", color="#000"),
|
|
225
|
+
BalloonColor(background_color="rgba(243, 88, 20, 0.7)", color="#fff"),
|
|
226
|
+
BalloonColor(background_color="rgba(12, 76, 138, 0.7)", color="#fff"),
|
|
227
|
+
BalloonColor(background_color="rgba(156, 155, 155, 0.7)", color="#000"),
|
|
228
|
+
BalloonColor(background_color="rgba(4, 154, 115, 0.7)", color="#000"),
|
|
229
|
+
BalloonColor(background_color="rgba(159, 19, 236, 0.7)", color="#fff"),
|
|
230
|
+
BalloonColor(background_color="rgba(42, 197, 202, 0.7)", color="#000"),
|
|
231
|
+
BalloonColor(background_color="rgba(142, 56, 54, 0.7)", color="#fff"),
|
|
232
|
+
BalloonColor(background_color="rgba(144, 238, 144, 0.7)", color="#000"),
|
|
233
|
+
BalloonColor(background_color="rgba(77, 57, 0, 0.7)", color="#fff"),
|
|
200
234
|
]
|
|
201
235
|
|
|
202
236
|
self.balloon_color = default_balloon_color_list[: self.problem_quantity]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
xcpcio/__init__.py,sha256=NB6wpVr5JUrOx2vLIQSVtYuCz0d7kNFE39TSQlvoENk,125
|
|
2
|
-
xcpcio/__version__.py,sha256=
|
|
2
|
+
xcpcio/__version__.py,sha256=uSD0tE8vcfG2kBfQmbthAcsvXUvzg1w2cXDA2Bunbco,172
|
|
3
3
|
xcpcio/constants.py,sha256=MjpAgNXiBlUsx1S09m7JNT-nekNDR-aE6ggvGL3fg0I,2297
|
|
4
|
-
xcpcio/types.py,sha256=
|
|
4
|
+
xcpcio/types.py,sha256=CJYZc3RIWKYFbXIpyqt8fZANqJUMR66vLPno6nFyegA,7466
|
|
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.0.dist-info/METADATA,sha256=8VaTk5-ea4wUe-gBv4j2GfrErvY-Yk8l5ey6ouzMHkI,2233
|
|
44
|
+
xcpcio-0.65.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
45
|
+
xcpcio-0.65.0.dist-info/entry_points.txt,sha256=JYkvmmxKFWv0EBU6Ys65XsjkOO02KGlzASau0GX9TQ8,110
|
|
46
|
+
xcpcio-0.65.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|