arpakitlib 1.8.205__py3-none-any.whl → 1.8.206__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.
@@ -17,6 +17,7 @@ class OperationMV(SimpleMV, model=OperationDBM):
17
17
  OperationDBM.creation_dt,
18
18
  OperationDBM.status,
19
19
  OperationDBM.type,
20
+ OperationDBM.marker,
20
21
  OperationDBM.title,
21
22
  OperationDBM.execution_start_dt,
22
23
  OperationDBM.execution_finish_dt,
@@ -35,6 +36,7 @@ class OperationMV(SimpleMV, model=OperationDBM):
35
36
  OperationDBM.creation_dt,
36
37
  OperationDBM.status,
37
38
  OperationDBM.type,
39
+ OperationDBM.marker,
38
40
  OperationDBM.title,
39
41
  OperationDBM.execution_start_dt,
40
42
  OperationDBM.execution_finish_dt,
@@ -50,6 +52,7 @@ class OperationMV(SimpleMV, model=OperationDBM):
50
52
  OperationDBM.slug,
51
53
  OperationDBM.status,
52
54
  OperationDBM.type,
55
+ OperationDBM.marker,
53
56
  OperationDBM.title,
54
57
  OperationDBM.execution_start_dt,
55
58
  OperationDBM.execution_finish_dt,
@@ -28,6 +28,9 @@ class OperationDBM(SimpleDBM):
28
28
  healthcheck_ = "healthcheck"
29
29
  raise_fake_error_ = "raise_fake_error"
30
30
 
31
+ class Markers(Enumeration):
32
+ nothing = "nothing"
33
+
31
34
  status: Mapped[str] = mapped_column(
32
35
  sqlalchemy.TEXT,
33
36
  nullable=False,
@@ -41,6 +44,11 @@ class OperationDBM(SimpleDBM):
41
44
  index=True,
42
45
  insert_default=Types.healthcheck_
43
46
  )
47
+ marker: Mapped[str | None] = mapped_column(
48
+ sqlalchemy.TEXT,
49
+ nullable=True,
50
+ index=True,
51
+ )
44
52
  title: Mapped[str | None] = mapped_column(
45
53
  sqlalchemy.TEXT,
46
54
  nullable=True,
@@ -86,6 +94,8 @@ class OperationDBM(SimpleDBM):
86
94
  parts.append(f"type={self.type}")
87
95
  return f"{self.entity_name} ({', '.join(parts)})"
88
96
 
97
+ # ---validators---
98
+
89
99
  @validates("status")
90
100
  def _validate_status(self, key, value, *args, **kwargs):
91
101
  if not isinstance(value, str):
@@ -105,6 +115,15 @@ class OperationDBM(SimpleDBM):
105
115
  raise ValueError(f"{key=}, {value=}, value is empty")
106
116
  return value
107
117
 
118
+ @validates("marker")
119
+ def _validate_marker(self, key, value, *args, **kwargs):
120
+ if value is None:
121
+ return None
122
+ if not isinstance(value, str):
123
+ raise ValueError(f"{key=}, {value=}, value is not str")
124
+ value = make_none_if_blank(value.strip())
125
+ return value
126
+
108
127
  @validates("title")
109
128
  def _validate_title(self, key, value, *args, **kwargs):
110
129
  if value is None:
@@ -138,6 +157,8 @@ class OperationDBM(SimpleDBM):
138
157
  raise ValueError(f"{key=}, {value=}, value is not dict")
139
158
  return value
140
159
 
160
+ # ---more---
161
+
141
162
  def raise_if_executed_with_error(self):
142
163
  if self.status == self.Statuses.executed_with_error:
143
164
  raise Exception(
@@ -158,6 +179,12 @@ class OperationDBM(SimpleDBM):
158
179
  return None
159
180
  return self.execution_finish_dt - self.execution_start_dt
160
181
 
182
+ @property
183
+ def duration_as_str(self) -> str | None:
184
+ if self.duration is None:
185
+ return None
186
+ return str(self.duration)
187
+
161
188
  @property
162
189
  def duration_total_seconds(self) -> float | None:
163
190
  if self.duration is None:
@@ -166,6 +193,22 @@ class OperationDBM(SimpleDBM):
166
193
 
167
194
  # ---SDP---
168
195
 
196
+ @property
197
+ def sdp_duration(self) -> timedelta | None:
198
+ """
199
+ При использовании у данной модели .simple_dict данное свойство будет представлено как поле.
200
+ То есть префикс sdp_ и даёт этот бонус.
201
+ """
202
+ return self.duration
203
+
204
+ @property
205
+ def sdp_duration_as_str(self) -> str | None:
206
+ """
207
+ При использовании у данной модели .simple_dict данное свойство будет представлено как поле.
208
+ То есть префикс sdp_ и даёт этот бонус.
209
+ """
210
+ return self.duration_as_str
211
+
169
212
  @property
170
213
  def sdp_duration_total_seconds(self) -> float | None:
171
214
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: arpakitlib
3
- Version: 1.8.205
3
+ Version: 1.8.206
4
4
  Summary: arpakitlib
5
5
  License: Apache-2.0
6
6
  Keywords: arpakitlib,arpakit,arpakit-company,arpakitcompany,arpakit_company
@@ -251,7 +251,7 @@ arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/event.py,sha256=LjAUY
251
251
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/__init__.py,sha256=aKX6k2bEVvfXa9dATYts-sUoWgf4MV3H_PiiUceejr4,596
252
252
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/api_key.py,sha256=VTpepKLCKrPnftGD-8Ibp75S0dwUrLlUytRfcXDDcKg,1597
253
253
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/common.py,sha256=U4KbXPAoyvgUB2BoPYUOPKLpHQLOdvZp-JdeVnC1MPY,5573
254
- arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/operation.py,sha256=B3Y3VGM0-3pm1Ib5CWbW3gKYgpMixIPKb4S3GksS314,3659
254
+ arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/operation.py,sha256=IqW9eh0u3-WFkE1oA3yjEboUW2F2zF4cKsp4_FNy2RE,3746
255
255
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/story_log.py,sha256=KTyvMty9bozjnC0bSDoTtK1H4LTFfbX_MwqP72Ip5D0,2194
256
256
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user.py,sha256=AhK-2YocK1dM2wMxX_xF0qnsMiI5Pu0Arj5yfDe8Noo,2669
257
257
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user_token.py,sha256=pyeyDTg4rss8-67hIE3-SQlAvNfje6HazuaVnyFBpN8,2054
@@ -265,7 +265,7 @@ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_db.py
265
265
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/__init__.py,sha256=7PQqeYThEBXRrXwJZjuH7yAFu25DVr_IneuMwEF3kUE,731
266
266
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/api_key.py,sha256=2X6VPkf1TKq-0319J0tL-rPMvgmkBCjim3Si1dZboMQ,1969
267
267
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/common.py,sha256=OuHmYkFUPnSQ5QV8UiAjBax5GLNGGGh1zOYSjKp3nqw,4598
268
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/operation.py,sha256=emIo83GUEoywgh4fGv2xDGIkCtSUPq_2ujRlLEc5woM,5930
268
+ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/operation.py,sha256=natrrLI8xgm37FYQ1NiQLCGslpmBcyluHKxNGunWHiI,7346
269
269
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/story_log.py,sha256=CiNec-x5_z0Pr5Mt-RZXJ1tKJMRn_TAKIaOioG4NK7U,2489
270
270
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user.py,sha256=22TE8y2Vm9byLLkIE6RVAMa29d9ILCVg1e1QYi4ONIQ,7898
271
271
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user_token.py,sha256=dCCiRZcOiUpqd-DZZ-A6tVM0PzJwa030KFOzPXNyM7A,1929
@@ -416,8 +416,8 @@ arpakitlib/ar_str_util.py,sha256=2lGpnXDf2h1cBZpVf5i1tX_HCv5iBd6IGnrCw4QWWlY,435
416
416
  arpakitlib/ar_type_util.py,sha256=Cs_tef-Fc5xeyAF54KgISCsP11NHyzIsglm4S3Xx7iM,4049
417
417
  arpakitlib/ar_yookassa_api_client_util.py,sha256=VozuZeCJjmLd1zj2BdC9WfiAQ3XYOrIMsdpNK-AUlm0,5347
418
418
  arpakitlib/clone_pydantic_model_fields.py,sha256=Gn9_AIjKknN1eIYK_xH_cMyff3hjOpfwRqs583-rnJs,1167
419
- arpakitlib-1.8.205.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
420
- arpakitlib-1.8.205.dist-info/METADATA,sha256=dAQv8tIUCoOWRywSXIUlyr0jTCrRA7UQKn9f41fr7JA,3741
421
- arpakitlib-1.8.205.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
422
- arpakitlib-1.8.205.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
423
- arpakitlib-1.8.205.dist-info/RECORD,,
419
+ arpakitlib-1.8.206.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
420
+ arpakitlib-1.8.206.dist-info/METADATA,sha256=dvixja9ofHJA_gDzGI8c7G-9mRP6w8jYumeZo2X0-G0,3741
421
+ arpakitlib-1.8.206.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
422
+ arpakitlib-1.8.206.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
423
+ arpakitlib-1.8.206.dist-info/RECORD,,