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 CHANGED
@@ -1,4 +1,4 @@
1
1
  # This file is auto-generated by Hatchling. As such, do not:
2
2
  # - modify
3
3
  # - track in version control e.g. be sure to add to .gitignore
4
- __version__ = VERSION = '0.64.5'
4
+ __version__ = VERSION = '0.65.1'
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 Color(BaseModel):
84
+ class BalloonColor(BaseModel):
75
85
  color: str
76
86
  background_color: str
77
87
 
78
88
 
79
- class Reaction(BaseModel):
80
- url: Optional[str] = None
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[Reaction] = None
128
+ reaction: Optional[SubmissionReaction] = None
97
129
 
98
130
 
99
131
  class Submissions(RootModel[List[Submission]]):
100
- root: List[Submission]
132
+ pass
101
133
 
102
134
 
103
135
  class Team(BaseModel):
104
136
  id: str = ""
105
- name: str = ""
137
+ name: Text = ""
106
138
 
107
139
  organization: str = ""
108
140
  group: List[str] = Field(default_factory=list)
109
- tag: List[str] = Field(default_factory=list)
141
+ tag: Optional[List[str]] = None
110
142
 
111
- coach: Optional[str] = None
112
- members: Optional[List[str]] = None
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: str = ""
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
- problem_quantity: int = 0
153
- problem_id: List[str] = Field(default_factory=list)
183
+ problems: Optional[Problems] = None
154
184
 
155
- organization: str = "School"
156
- status_time_display: Optional[Dict[str, bool]] = constants.FULL_STATUS_TIME_DISPLAY
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
- def append_balloon_color(self, color: Color):
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(self.problem_quantity)]
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
- Color(background_color="rgba(189, 14, 14, 0.7)", color="#fff"),
187
- Color(background_color="rgba(149, 31, 217, 0.7)", color="#fff"),
188
- Color(background_color="rgba(16, 32, 96, 0.7)", color="#fff"),
189
- Color(background_color="rgba(38, 185, 60, 0.7)", color="#000"),
190
- Color(background_color="rgba(239, 217, 9, 0.7)", color="#000"),
191
- Color(background_color="rgba(243, 88, 20, 0.7)", color="#fff"),
192
- Color(background_color="rgba(12, 76, 138, 0.7)", color="#fff"),
193
- Color(background_color="rgba(156, 155, 155, 0.7)", color="#000"),
194
- Color(background_color="rgba(4, 154, 115, 0.7)", color="#000"),
195
- Color(background_color="rgba(159, 19, 236, 0.7)", color="#fff"),
196
- Color(background_color="rgba(42, 197, 202, 0.7)", color="#000"),
197
- Color(background_color="rgba(142, 56, 54, 0.7)", color="#fff"),
198
- Color(background_color="rgba(144, 238, 144, 0.7)", color="#000"),
199
- Color(background_color="rgba(77, 57, 0, 0.7)", color="#fff"),
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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xcpcio
3
- Version: 0.64.5
3
+ Version: 0.65.1
4
4
  Summary: xcpcio python lib
5
5
  Project-URL: homepage, https://github.com/xcpcio/xcpcio
6
6
  Project-URL: documentation, https://github.com/xcpcio/xcpcio
@@ -1,7 +1,7 @@
1
1
  xcpcio/__init__.py,sha256=NB6wpVr5JUrOx2vLIQSVtYuCz0d7kNFE39TSQlvoENk,125
2
- xcpcio/__version__.py,sha256=BYquUwEg9-V5NQhS7rpjqTa9mDXyR0Lo8MbEWDor-eI,172
2
+ xcpcio/__version__.py,sha256=VBPsXdwddysU3SJE-BBz0H6duBTyQFGRD6HQcyRwc84,172
3
3
  xcpcio/constants.py,sha256=MjpAgNXiBlUsx1S09m7JNT-nekNDR-aE6ggvGL3fg0I,2297
4
- xcpcio/types.py,sha256=AkYby2haJgxwtozlgaPMG2ryAZdvsSc3sH-p6qXcM4g,6575
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.64.5.dist-info/METADATA,sha256=cDO1ROuDxUmCp2p-g26F-cFsqXCJ-lmHRDZYAkPrDGA,2233
44
- xcpcio-0.64.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
45
- xcpcio-0.64.5.dist-info/entry_points.txt,sha256=JYkvmmxKFWv0EBU6Ys65XsjkOO02KGlzASau0GX9TQ8,110
46
- xcpcio-0.64.5.dist-info/RECORD,,
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,,