arpakitlib 1.8.205__py3-none-any.whl → 1.8.207__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,
@@ -23,11 +23,15 @@ class OperationDBM(SimpleDBM):
23
23
  executing = "executing"
24
24
  executed_without_error = "executed_without_error"
25
25
  executed_with_error = "executed_with_error"
26
+ cancelled = "cancelled"
26
27
 
27
28
  class Types(Enumeration):
28
29
  healthcheck_ = "healthcheck"
29
30
  raise_fake_error_ = "raise_fake_error"
30
31
 
32
+ class Markers(Enumeration):
33
+ nothing = "nothing"
34
+
31
35
  status: Mapped[str] = mapped_column(
32
36
  sqlalchemy.TEXT,
33
37
  nullable=False,
@@ -41,6 +45,11 @@ class OperationDBM(SimpleDBM):
41
45
  index=True,
42
46
  insert_default=Types.healthcheck_
43
47
  )
48
+ marker: Mapped[str | None] = mapped_column(
49
+ sqlalchemy.TEXT,
50
+ nullable=True,
51
+ index=True,
52
+ )
44
53
  title: Mapped[str | None] = mapped_column(
45
54
  sqlalchemy.TEXT,
46
55
  nullable=True,
@@ -86,6 +95,8 @@ class OperationDBM(SimpleDBM):
86
95
  parts.append(f"type={self.type}")
87
96
  return f"{self.entity_name} ({', '.join(parts)})"
88
97
 
98
+ # ---validators---
99
+
89
100
  @validates("status")
90
101
  def _validate_status(self, key, value, *args, **kwargs):
91
102
  if not isinstance(value, str):
@@ -105,6 +116,15 @@ class OperationDBM(SimpleDBM):
105
116
  raise ValueError(f"{key=}, {value=}, value is empty")
106
117
  return value
107
118
 
119
+ @validates("marker")
120
+ def _validate_marker(self, key, value, *args, **kwargs):
121
+ if value is None:
122
+ return None
123
+ if not isinstance(value, str):
124
+ raise ValueError(f"{key=}, {value=}, value is not str")
125
+ value = make_none_if_blank(value.strip())
126
+ return value
127
+
108
128
  @validates("title")
109
129
  def _validate_title(self, key, value, *args, **kwargs):
110
130
  if value is None:
@@ -138,6 +158,8 @@ class OperationDBM(SimpleDBM):
138
158
  raise ValueError(f"{key=}, {value=}, value is not dict")
139
159
  return value
140
160
 
161
+ # ---more---
162
+
141
163
  def raise_if_executed_with_error(self):
142
164
  if self.status == self.Statuses.executed_with_error:
143
165
  raise Exception(
@@ -158,6 +180,12 @@ class OperationDBM(SimpleDBM):
158
180
  return None
159
181
  return self.execution_finish_dt - self.execution_start_dt
160
182
 
183
+ @property
184
+ def duration_as_str(self) -> str | None:
185
+ if self.duration is None:
186
+ return None
187
+ return str(self.duration)
188
+
161
189
  @property
162
190
  def duration_total_seconds(self) -> float | None:
163
191
  if self.duration is None:
@@ -166,6 +194,22 @@ class OperationDBM(SimpleDBM):
166
194
 
167
195
  # ---SDP---
168
196
 
197
+ @property
198
+ def sdp_duration(self) -> timedelta | None:
199
+ """
200
+ При использовании у данной модели .simple_dict данное свойство будет представлено как поле.
201
+ То есть префикс sdp_ и даёт этот бонус.
202
+ """
203
+ return self.duration
204
+
205
+ @property
206
+ def sdp_duration_as_str(self) -> str | None:
207
+ """
208
+ При использовании у данной модели .simple_dict данное свойство будет представлено как поле.
209
+ То есть префикс sdp_ и даёт этот бонус.
210
+ """
211
+ return self.duration_as_str
212
+
169
213
  @property
170
214
  def sdp_duration_total_seconds(self) -> float | None:
171
215
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: arpakitlib
3
- Version: 1.8.205
3
+ Version: 1.8.207
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=-7uzlux8B7wtqhSd4b_06M40yTDySPIngm3Cwun2lSA,7378
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.207.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
420
+ arpakitlib-1.8.207.dist-info/METADATA,sha256=Uph40HCZ1aLi9BpYjuxlQgQLr5XU6dXQ4b_ZlhKDtLk,3741
421
+ arpakitlib-1.8.207.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
422
+ arpakitlib-1.8.207.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
423
+ arpakitlib-1.8.207.dist-info/RECORD,,