arpakitlib 1.8.204__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.
- arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/operation.py +3 -0
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/operation.py +43 -0
- arpakitlib/ar_base_worker_util.py +5 -0
- {arpakitlib-1.8.204.dist-info → arpakitlib-1.8.206.dist-info}/METADATA +1 -1
- {arpakitlib-1.8.204.dist-info → arpakitlib-1.8.206.dist-info}/RECORD +8 -8
- {arpakitlib-1.8.204.dist-info → arpakitlib-1.8.206.dist-info}/LICENSE +0 -0
- {arpakitlib-1.8.204.dist-info → arpakitlib-1.8.206.dist-info}/WHEEL +0 -0
- {arpakitlib-1.8.204.dist-info → arpakitlib-1.8.206.dist-info}/entry_points.txt +0 -0
@@ -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,
|
arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/operation.py
CHANGED
@@ -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
|
"""
|
@@ -25,6 +25,7 @@ class BaseWorker(ABC):
|
|
25
25
|
timeout_after_error_in_run: timedelta = timedelta(seconds=1),
|
26
26
|
startup_funcs: list[Any] | None = None,
|
27
27
|
worker_name: str | None = None,
|
28
|
+
data: dict[str, Any] | None = None,
|
28
29
|
**kwargs
|
29
30
|
):
|
30
31
|
self.timeout_after_run = timeout_after_run
|
@@ -39,6 +40,10 @@ class BaseWorker(ABC):
|
|
39
40
|
self.worker_name = worker_name
|
40
41
|
self.worker_id = f"{str(uuid4()).replace('-', '')}_{randint(1000, 99999)}"
|
41
42
|
|
43
|
+
if data is None:
|
44
|
+
data = {}
|
45
|
+
self.data = data
|
46
|
+
|
42
47
|
self._logger = logging.getLogger(self.worker_fullname)
|
43
48
|
|
44
49
|
@property
|
@@ -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=
|
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=
|
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
|
@@ -376,7 +376,7 @@ arpakitlib/ar_arpakit_schedule_uust_api_client_util.py,sha256=MRPaF31CRhYA45ldPn
|
|
376
376
|
arpakitlib/ar_arpakit_schedule_uust_site_util.py,sha256=8wLct9Gd4MWkXzB6nSmETAwTPLw8lfpWgx0LoWSAOvg,1643
|
377
377
|
arpakitlib/ar_arpakitlib_cli_util.py,sha256=RJGcfEZ_q74FJ4tqdXvt7xQpShTszOvKu1mbp3D8qzw,2599
|
378
378
|
arpakitlib/ar_base64_util.py,sha256=udSSpeXMZx0JgQknl4hQgZ8kr1Ps_aQOloIXu4T9dMQ,1286
|
379
|
-
arpakitlib/ar_base_worker_util.py,sha256=
|
379
|
+
arpakitlib/ar_base_worker_util.py,sha256=e-Vj9w1D-59KN3Zz7TQlOB2lW4fZphJlsPpFkmX-gtY,5982
|
380
380
|
arpakitlib/ar_blank_util.py,sha256=qFUdY8usL_pRYamz8Rw1fW3fzNIgrLmpdYP8q-_PQvw,2281
|
381
381
|
arpakitlib/ar_cache_file_util.py,sha256=Fo2pH-Zqm966KWFBHG_pbiySGZvhIFCYqy7k1weRfJ0,3476
|
382
382
|
arpakitlib/ar_class_util.py,sha256=i76pQW_7k_S2m_DlQh6xNjtggv9Col3WSx9W_bwk98E,722
|
@@ -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.
|
420
|
-
arpakitlib-1.8.
|
421
|
-
arpakitlib-1.8.
|
422
|
-
arpakitlib-1.8.
|
423
|
-
arpakitlib-1.8.
|
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,,
|
File without changes
|
File without changes
|
File without changes
|