arpakitlib 1.8.207__py3-none-any.whl → 1.8.208__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.
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "arpakitlib_project_template_version": "5",
3
- "arpakitlib_project_template_subversion": "50"
3
+ "arpakitlib_project_template_subversion": "51"
4
4
  }
@@ -24,12 +24,15 @@ class OperationExecutorWorker(BaseWorker):
24
24
  *,
25
25
  sqlalchemy_db: SQLAlchemyDb,
26
26
  filter_operation_types: str | list[str] | None = None,
27
- startup_funcs: list[Any] | None = None
27
+ filter_operation_markers: str | list[str] | None = None,
28
+ startup_funcs: list[Any] | None = None,
29
+ data: dict[str, Any] | None = None,
28
30
  ):
29
31
  super().__init__(
30
32
  timeout_after_run=timedelta(seconds=0.01),
31
33
  timeout_after_error_in_run=timedelta(seconds=0.1),
32
34
  startup_funcs=startup_funcs,
35
+ data=data
33
36
  )
34
37
 
35
38
  raise_for_type(sqlalchemy_db, SQLAlchemyDb)
@@ -39,6 +42,10 @@ class OperationExecutorWorker(BaseWorker):
39
42
  filter_operation_types = [filter_operation_types]
40
43
  self.filter_operation_types = filter_operation_types
41
44
 
45
+ if isinstance(filter_operation_markers, str):
46
+ filter_operation_markers = [filter_operation_markers]
47
+ self.filter_operation_markers = filter_operation_markers
48
+
42
49
  def sync_execute_operation(self, operation_dbm: OperationDBM):
43
50
  if operation_dbm.type == OperationDBM.Types.healthcheck_:
44
51
  self._logger.info(f"healthcheck {now_utc_dt()}")
@@ -88,6 +95,8 @@ class OperationExecutorWorker(BaseWorker):
88
95
  )
89
96
  if self.filter_operation_types is not None:
90
97
  query = query.filter(OperationDBM.type.in_(self.filter_operation_types))
98
+ if self.filter_operation_markers is not None:
99
+ query = query.filter(OperationDBM.marker.in_(self.filter_operation_markers))
91
100
  query = query.with_for_update()
92
101
  query = query.order_by(asc(OperationDBM.creation_dt))
93
102
  operation_dbm: OperationDBM | None = query.first()
@@ -181,6 +190,8 @@ class OperationExecutorWorker(BaseWorker):
181
190
  )
182
191
  if self.filter_operation_types is not None:
183
192
  query = query.filter(OperationDBM.type.in_(self.filter_operation_types))
193
+ if self.filter_operation_markers is not None:
194
+ query = query.filter(OperationDBM.marker.in_(self.filter_operation_markers))
184
195
  query = query.order_by(asc(OperationDBM.creation_dt)).with_for_update()
185
196
 
186
197
  result = await async_session.execute(query)
@@ -271,9 +282,13 @@ class OperationExecutorWorker(BaseWorker):
271
282
 
272
283
  def create_operation_executor_worker(
273
284
  *,
274
- filter_operation_types: str | list[str] | None = None
285
+ filter_operation_types: str | list[str] | None = None,
286
+ filter_operation_markers: str | list[str] | None = None,
287
+ startup_funcs: list[Any] | None = None
275
288
  ) -> OperationExecutorWorker:
276
289
  return OperationExecutorWorker(
277
290
  sqlalchemy_db=get_cached_sqlalchemy_db(),
278
- filter_operation_types=filter_operation_types
291
+ filter_operation_types=filter_operation_types,
292
+ filter_operation_markers=filter_operation_markers,
293
+ startup_funcs=startup_funcs
279
294
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: arpakitlib
3
- Version: 1.8.207
3
+ Version: 1.8.208
4
4
  Summary: arpakitlib
5
5
  License: Apache-2.0
6
6
  Keywords: arpakitlib,arpakit,arpakit-company,arpakitcompany,arpakit_company
@@ -8,7 +8,7 @@ arpakitlib/_arpakit_project_template_v_5/alembic/env.py,sha256=Qesmnj5A2kB-Doeuf
8
8
  arpakitlib/_arpakit_project_template_v_5/alembic/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635
9
9
  arpakitlib/_arpakit_project_template_v_5/alembic/versions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  arpakitlib/_arpakit_project_template_v_5/alembic.ini,sha256=8fuyeEvGBiPGbxEFy8ISBV3xX_fgVmuhEGpB10_B5Uo,3733
11
- arpakitlib/_arpakit_project_template_v_5/arpakitlib_project_template_info.json,sha256=MBIsej1Zz35LiImnteBxQ8VLPP6EOXw-YL0asSTrzTc,98
11
+ arpakitlib/_arpakit_project_template_v_5/arpakitlib_project_template_info.json,sha256=E78ase9v3t6Ljp5fkVnVXt9Qr8KSD5CzSDu8mzmLcLQ,98
12
12
  arpakitlib/_arpakit_project_template_v_5/command/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  arpakitlib/_arpakit_project_template_v_5/command/alembic_history.sh,sha256=OMnDNtHIksGh9iavWnzbtxcudZW4vjdcISsBXvzZSPw,22
14
14
  arpakitlib/_arpakit_project_template_v_5/command/alembic_revision_autogenerate.sh,sha256=yW2i-SBOtBx15Ya0poVQqKkJM5t2JZp06r9AEW-DmGE,46
@@ -195,7 +195,7 @@ arpakitlib/_arpakit_project_template_v_5/project/more/__init__.py,sha256=47DEQpj
195
195
  arpakitlib/_arpakit_project_template_v_5/project/more/helloworld,sha256=eH7Hbcr9IMGQjrCTahL5Ht0QWrXNfswrGuIDJkg0Xf8,11
196
196
  arpakitlib/_arpakit_project_template_v_5/project/operation_execution/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
197
197
  arpakitlib/_arpakit_project_template_v_5/project/operation_execution/const.py,sha256=dcvj5C9E2F2KCsGZPBBncQf_EvVJAC1qQgnyD8P4ZEw,6
198
- arpakitlib/_arpakit_project_template_v_5/project/operation_execution/operation_executor_worker.py,sha256=GlJYHw63RONeTfQa6goLoFSlcLp0m7CcAYai-1RtSl0,12130
198
+ arpakitlib/_arpakit_project_template_v_5/project/operation_execution/operation_executor_worker.py,sha256=ygGavnIOrOqjtTsi1nhZXKGwwtjTaHbNT9KWZaTDLI4,12967
199
199
  arpakitlib/_arpakit_project_template_v_5/project/operation_execution/scheduled_operation_creator_worker.py,sha256=WzZC6r0GVSwOpphsxqpRZIdeewK_wzi3YshjLOutYGA,4524
200
200
  arpakitlib/_arpakit_project_template_v_5/project/operation_execution/scheduled_operations.py,sha256=4Wo-tuC2AbeCYTa5_snMJ2EkXwASCe08vXNnM5feJos,1607
201
201
  arpakitlib/_arpakit_project_template_v_5/project/operation_execution/util.py,sha256=sqHF2AU5Y5IurYHcIH2bu3-JbS1amLO3GD13Zvy8epM,923
@@ -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.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,,
419
+ arpakitlib-1.8.208.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
420
+ arpakitlib-1.8.208.dist-info/METADATA,sha256=VwrhgOvWg1m3VCM50nEFNi0OQEY_t_Tj72Av5CBAiDY,3741
421
+ arpakitlib-1.8.208.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
422
+ arpakitlib-1.8.208.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
423
+ arpakitlib-1.8.208.dist-info/RECORD,,