arpakitlib 1.8.333__py3-none-any.whl → 1.8.343__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,6 +1,6 @@
1
1
  from typing import Type
2
2
 
3
- from arpakitlib.ar_sqlalchemy_util import BaseDBM
3
+ from arpakitlib.ar_sqlalchemy_base_dbm_util import BaseDBM
4
4
  from pydantic import BaseModel
5
5
 
6
6
 
@@ -8,7 +8,7 @@ from pydantic_core.core_schema import ValidationInfo
8
8
 
9
9
  from arpakitlib.ar_json_util import transfer_data_to_json_str
10
10
  from arpakitlib.ar_settings_util import SimpleSettings
11
- from arpakitlib.ar_sqlalchemy_util import generate_sqlalchemy_url
11
+ from arpakitlib.ar_sqlalchemy_base_dbm_util import generate_sqlalchemy_url
12
12
  from arpakitlib.ar_type_util import raise_for_type
13
13
  from project.core.const import ProjectPaths
14
14
 
@@ -11,7 +11,7 @@ from arpakitlib.ar_base_worker_util import BaseWorker
11
11
  from arpakitlib.ar_datetime_util import now_utc_dt
12
12
  from arpakitlib.ar_dict_util import combine_dicts
13
13
  from arpakitlib.ar_exception_util import exception_to_traceback_str
14
- from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDb
14
+ from arpakitlib.ar_sqlalchemy_base_dbm_util import SQLAlchemyDb
15
15
  from arpakitlib.ar_type_util import raise_for_type
16
16
  from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
17
17
  from project.sqlalchemy_db_.sqlalchemy_model import OperationDBM, StoryLogDBM
@@ -4,7 +4,7 @@ from typing import Any
4
4
  from arpakitlib.ar_base_worker_util import BaseWorker
5
5
  from arpakitlib.ar_json_util import transfer_data_to_json_str_to_data
6
6
  from arpakitlib.ar_sleep_util import sync_safe_sleep, async_safe_sleep
7
- from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDb
7
+ from arpakitlib.ar_sqlalchemy_base_dbm_util import SQLAlchemyDb
8
8
  from arpakitlib.ar_type_util import raise_for_type
9
9
  from project.operation_execution.scheduled_operations import ScheduledOperation, get_scheduled_operations
10
10
  from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
@@ -1,6 +1,6 @@
1
1
  from functools import lru_cache
2
2
 
3
- from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDb
3
+ from arpakitlib.ar_sqlalchemy_base_dbm_util import SQLAlchemyDb
4
4
  from project.core.settings import get_cached_settings
5
5
  from project.sqlalchemy_db_.sqlalchemy_model import SimpleDBM
6
6
 
@@ -1,4 +1,4 @@
1
- from arpakitlib.ar_sqlalchemy_util import get_string_info_from_declarative_base_2
1
+ from arpakitlib.ar_sqlalchemy_base_dbm_util import get_string_info_from_declarative_base_2
2
2
 
3
3
  from project.sqlalchemy_db_.sqlalchemy_model.api_key import ApiKeyDBM
4
4
  from project.sqlalchemy_db_.sqlalchemy_model.common import SimpleDBM
@@ -8,7 +8,7 @@ from sqlalchemy import func
8
8
  from sqlalchemy.orm import mapped_column, Mapped, validates
9
9
 
10
10
  from arpakitlib.ar_datetime_util import now_utc_dt
11
- from arpakitlib.ar_sqlalchemy_util import get_string_info_from_declarative_base, BaseDBM
11
+ from arpakitlib.ar_sqlalchemy_base_dbm_util import get_string_info_from_declarative_base, BaseDBM
12
12
  from arpakitlib.ar_str_util import make_none_if_blank
13
13
 
14
14
 
@@ -0,0 +1,47 @@
1
+ import logging
2
+ from typing import Any
3
+
4
+ import aiohttp
5
+ import requests
6
+
7
+ from arpakitlib.ar_dict_util import combine_dicts
8
+ from arpakitlib.ar_http_request_util import async_make_http_request, sync_make_http_request
9
+
10
+
11
+ class BaseHTTPAPIClient:
12
+ def __init__(self):
13
+ self.headers = {"Content-Type": "application/json"}
14
+ self._logger = logging.getLogger(f"{self.__class__.__name__}")
15
+
16
+ def _sync_make_http_request(
17
+ self,
18
+ *,
19
+ method: str,
20
+ url: str,
21
+ headers: dict[str, Any] | None = None,
22
+ **kwargs
23
+ ) -> requests.Response:
24
+ return sync_make_http_request(
25
+ method=method,
26
+ url=url,
27
+ headers=combine_dicts(self.headers, (headers if headers is not None else {})),
28
+ **kwargs
29
+ )
30
+
31
+ async def _async_make_http_request(
32
+ self,
33
+ *,
34
+ method: str = "GET",
35
+ url: str,
36
+ headers: dict[str, Any] | None = None,
37
+ **kwargs
38
+ ) -> aiohttp.ClientResponse:
39
+ return await async_make_http_request(
40
+ method=method,
41
+ url=url,
42
+ headers=combine_dicts(self.headers, (headers if headers is not None else {})),
43
+ **kwargs
44
+ )
45
+
46
+ def healthcheck(self) -> bool:
47
+ raise NotImplemented()
@@ -57,6 +57,28 @@ def remove_from_lists_if_left(
57
57
  return lists_
58
58
 
59
59
 
60
+ def int_to_list_(value: int | list | None) -> list[int] | None:
61
+ if isinstance(value, int):
62
+ return [value]
63
+ elif isinstance(value, list):
64
+ return value
65
+ elif value is None:
66
+ return None
67
+ else:
68
+ raise TypeError(f"{type(value)=}")
69
+
70
+
71
+ def str_to_list_(value: str | list | None) -> list[str] | None:
72
+ if isinstance(value, str):
73
+ return [value]
74
+ elif isinstance(value, list):
75
+ return value
76
+ elif value is None:
77
+ return None
78
+ else:
79
+ raise TypeError(f"{type(value)=}")
80
+
81
+
60
82
  def __example():
61
83
  a = remove_from_list_if_left(
62
84
  list_=[1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3],
@@ -13,11 +13,11 @@ from arpakitlib.ar_json_util import transfer_data_to_json_str
13
13
  from pydantic import BaseModel, ConfigDict
14
14
 
15
15
 
16
- class _BaseSSHException(Exception):
16
+ class BaseSSHException(Exception):
17
17
  pass
18
18
 
19
19
 
20
- class ConnectionSSHException(_BaseSSHException):
20
+ class ConnectionSSHException(BaseSSHException):
21
21
  def __init__(self, ssh_runner: SSHRunner, base_exception: Exception | None = None):
22
22
  self.ssh_runner = ssh_runner
23
23
  self.base_exception = base_exception
@@ -35,7 +35,7 @@ class ConnectionSSHException(_BaseSSHException):
35
35
  return str(self)
36
36
 
37
37
 
38
- class ErrorInRunSSHException(_BaseSSHException):
38
+ class ErrorInRunSSHException(BaseSSHException):
39
39
  def __init__(self, ssh_runner: SSHRunner, base_exception: Exception | None = None, message: str | None = None):
40
40
  self.ssh_runner = ssh_runner
41
41
  self.base_exception = base_exception
@@ -56,7 +56,7 @@ class ErrorInRunSSHException(_BaseSSHException):
56
56
  return str(self)
57
57
 
58
58
 
59
- class SSHRunResultHasErrorSSHException(_BaseSSHException):
59
+ class SSHRunResultHasErrorSSHException(BaseSSHException):
60
60
  def __init__(self, ssh_run_result: SSHRunResult, message: str | None = None):
61
61
  self.ssh_run_result = ssh_run_result
62
62
  self.message = message
@@ -9,6 +9,7 @@ from typing import Any
9
9
  import aiohttp
10
10
  import requests
11
11
 
12
+ from arpakitlib.ar_base_http_api_client_util import BaseHTTPAPIClient
12
13
  from arpakitlib.ar_dict_util import combine_dicts
13
14
  from arpakitlib.ar_enumeration_util import Enumeration
14
15
  from arpakitlib.ar_http_request_util import sync_make_http_request, async_make_http_request
@@ -19,7 +20,7 @@ https://yookassa.ru/developers/api
19
20
  """
20
21
 
21
22
 
22
- class YookassaAPIClient:
23
+ class EasyYookassaAPIClient(BaseHTTPAPIClient):
23
24
  class PaymentStatuses(Enumeration):
24
25
  pending = "pending"
25
26
  waiting_for_capture = "waiting_for_capture"
@@ -163,6 +164,9 @@ class YookassaAPIClient:
163
164
  return json_data
164
165
 
165
166
 
167
+ YookassaAPIClient = EasyYookassaAPIClient
168
+
169
+
166
170
  def __example():
167
171
  pass
168
172
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: arpakitlib
3
- Version: 1.8.333
3
+ Version: 1.8.343
4
4
  Summary: arpakitlib
5
5
  License-Expression: Apache-2.0
6
6
  License-File: LICENSE
@@ -24,6 +24,7 @@ Requires-Dist: aiosmtplib (>=4.0.0,<5.0.0)
24
24
  Requires-Dist: aiosqlite (>=0.21.0,<0.22.0)
25
25
  Requires-Dist: alembic (>=1.14.1,<2.0.0)
26
26
  Requires-Dist: asyncpg (>=0.30.0,<0.31.0)
27
+ Requires-Dist: asyncssh (>=2.21.1,<3.0.0)
27
28
  Requires-Dist: bs4 (>=0.0.2,<0.0.3)
28
29
  Requires-Dist: cachetools (>=5.5.1,<6.0.0)
29
30
  Requires-Dist: celery (>=5.4.0,<6.0.0)
@@ -33,9 +34,11 @@ Requires-Dist: fastapi (>=0.118.0,<0.119.0)
33
34
  Requires-Dist: gunicorn (>=23.0.0,<24.0.0)
34
35
  Requires-Dist: itsdangerous (>=2.2.0,<3.0.0)
35
36
  Requires-Dist: markdown (>=3.7,<4.0)
37
+ Requires-Dist: openai (>=2.6.1,<3.0.0)
36
38
  Requires-Dist: openpyxl (>=3.1.5,<4.0.0)
37
39
  Requires-Dist: orjson (>=3.10.15,<4.0.0)
38
40
  Requires-Dist: pandas (>=2.2.3,<3.0.0)
41
+ Requires-Dist: paramiko (>=4.0.0,<5.0.0)
39
42
  Requires-Dist: pika (>=1.3.2,<2.0.0)
40
43
  Requires-Dist: poetry (>=2.0.1,<3.0.0)
41
44
  Requires-Dist: poetry-plugin-export (>=1.9.0)
@@ -61,8 +64,9 @@ Requires-Dist: xlrd (>=2.0.1,<3.0.0)
61
64
  Requires-Dist: xlsxwriter (>=3.2.5,<4.0.0)
62
65
  Project-URL: Documentation, https://github.com/ARPAKIT-Company/arpakitlib
63
66
  Project-URL: Homepage, https://github.com/ARPAKIT-Company/arpakitlib
64
- Project-URL: Repository, https://github.com/ARPAKIT-Company/arpakitlib
65
67
  Project-URL: arpakit_company_site, https://arpakit.com
68
+ Project-URL: arpakit_company_support_tg, https://t.me/arpakit_company_support
69
+ Project-URL: git_repository, https://github.com/ARPAKIT-Company/arpakitlib
66
70
  Project-URL: telegram_channel, https://t.me/arpakitlib
67
71
  Description-Content-Type: text/markdown
68
72
 
@@ -87,6 +91,8 @@ workflow
87
91
 
88
92
  ```
89
93
  poetry add arpakitlib
94
+ # or
95
+ poetry add git+https://github.com/ARPAKIT-Company/arpakitlib.git@master
90
96
  ```
91
97
 
92
98
  ### Installation with pip
@@ -175,7 +175,7 @@ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/common.p
175
175
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/user.py,sha256=AvYwqaowd1V_6VQjrIGxt8SwqNEgmirLcHbtSHPwWmQ,1080
176
176
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/user_token.py,sha256=iiuZXu_zo3FJX0W5qyyMGasUx-_d32yjqc_2KY3xpUA,513
177
177
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
178
- arpakitlib/_arpakit_project_template_v_5/project/api/schema/util/create_obj_schema_from_dbm.py,sha256=7HizltD9MyK1nltQQHAjy69TCOuFDkkgtFJDr7DjLxU,331
178
+ arpakitlib/_arpakit_project_template_v_5/project/api/schema/util/create_obj_schema_from_dbm.py,sha256=Bdbbi7fWeUrS1krtFL8_FRqh8-ARbU0T4cYDvrfcpUQ,340
179
179
  arpakitlib/_arpakit_project_template_v_5/project/api/start_api.py,sha256=9VOBnqXsbh0zh96EilNO2gSaUlol04aJO7EbvT1iTko,752
180
180
  arpakitlib/_arpakit_project_template_v_5/project/api/util.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
181
181
  arpakitlib/_arpakit_project_template_v_5/project/business_service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -189,7 +189,7 @@ arpakitlib/_arpakit_project_template_v_5/project/core/const.py,sha256=hgiiPIYL95
189
189
  arpakitlib/_arpakit_project_template_v_5/project/core/dump_file_storage_in_dir.py,sha256=u3-vStMGaseMsRLuJmQK04UDhaez9vw6o5jyHb1fwNg,617
190
190
  arpakitlib/_arpakit_project_template_v_5/project/core/jinja2_templates.py,sha256=jCNLaBauGC7YNvZdTLNHuPp7hmRGt94O23Skg6ewo7o,352
191
191
  arpakitlib/_arpakit_project_template_v_5/project/core/media_file_storage_in_dir.py,sha256=fMofTsfJtA8pp5lEUhucEUu3PBsmj-elaRZzExDsdLI,623
192
- arpakitlib/_arpakit_project_template_v_5/project/core/settings.py,sha256=-1iKNOUQrHohahxoPl_V7e7Q53T_Sl1LTdu_EsBx9MU,7102
192
+ arpakitlib/_arpakit_project_template_v_5/project/core/settings.py,sha256=LM1NLMfEPTBYj-iQI17XD7f7yOpb1kJltLtNZ9ebyMo,7111
193
193
  arpakitlib/_arpakit_project_template_v_5/project/core/setup_logging.py,sha256=ICL3SoMWmZ-cWsmZ3Vb2lyMotlMi51l9GrzUCeLH0So,1521
194
194
  arpakitlib/_arpakit_project_template_v_5/project/core/util.py,sha256=iCwpuRqr6TfW0sKVH-3asQjhueJuad3ffq6sPI6ZUrs,347
195
195
  arpakitlib/_arpakit_project_template_v_5/project/emailer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -202,8 +202,8 @@ arpakitlib/_arpakit_project_template_v_5/project/more/api.nginx,sha256=o74LGt4yd
202
202
  arpakitlib/_arpakit_project_template_v_5/project/more/helloworld,sha256=eH7Hbcr9IMGQjrCTahL5Ht0QWrXNfswrGuIDJkg0Xf8,11
203
203
  arpakitlib/_arpakit_project_template_v_5/project/operation_execution/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
204
204
  arpakitlib/_arpakit_project_template_v_5/project/operation_execution/const.py,sha256=dcvj5C9E2F2KCsGZPBBncQf_EvVJAC1qQgnyD8P4ZEw,6
205
- arpakitlib/_arpakit_project_template_v_5/project/operation_execution/operation_executor_worker.py,sha256=ygGavnIOrOqjtTsi1nhZXKGwwtjTaHbNT9KWZaTDLI4,12967
206
- arpakitlib/_arpakit_project_template_v_5/project/operation_execution/scheduled_operation_creator_worker.py,sha256=WzZC6r0GVSwOpphsxqpRZIdeewK_wzi3YshjLOutYGA,4524
205
+ arpakitlib/_arpakit_project_template_v_5/project/operation_execution/operation_executor_worker.py,sha256=RluBFIMNIsgU9AVRRgWMQFvl8r2wRxA2m0e5Y9_lxCU,12976
206
+ arpakitlib/_arpakit_project_template_v_5/project/operation_execution/scheduled_operation_creator_worker.py,sha256=umhYoEnm9hi7mHO_US-nnr9E3Hp3hLbGlA7_DUk3bLQ,4533
207
207
  arpakitlib/_arpakit_project_template_v_5/project/operation_execution/scheduled_operations.py,sha256=zi1FOBBYV99hQHAF4mQZ4I93pN6Q8nm5RIhSjsEpXGc,1607
208
208
  arpakitlib/_arpakit_project_template_v_5/project/operation_execution/util.py,sha256=sqHF2AU5Y5IurYHcIH2bu3-JbS1amLO3GD13Zvy8epM,923
209
209
  arpakitlib/_arpakit_project_template_v_5/project/resource/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -268,10 +268,10 @@ arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/util/__init__.py,sha2
268
268
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/util/etc.py,sha256=jm65ZB0K8e6WpgcL2Y6pxcIuQjioIyMtBIOOFbbWfgk,1070
269
269
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
270
270
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/const.py,sha256=dcvj5C9E2F2KCsGZPBBncQf_EvVJAC1qQgnyD8P4ZEw,6
271
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_db.py,sha256=1y3FaMFzm_5UM2poqtBve_UP_mh1vjs--krq6yO8PsA,742
272
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/__init__.py,sha256=UkP3s2W_9Xk3ugOdgDXJFDDlJfuroBqrPusaDbwe4o8,692
271
+ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_db.py,sha256=UCMNLLBBwnvd_pnNfSB-bZ7kW6SuPSF9hUwrirBQlzA,751
272
+ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/__init__.py,sha256=faf90TffJyej_7GgsiJWUBR-TR9AZE8JpJypAUFLcJs,701
273
273
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/api_key.py,sha256=2X6VPkf1TKq-0319J0tL-rPMvgmkBCjim3Si1dZboMQ,1969
274
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/common.py,sha256=NsZbGGJvsn1IgfUQ9J4_6qBQyNBADDmt2Q8waRePD0c,5851
274
+ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/common.py,sha256=w-6VLj2NbOlOAmJFGgKeW6ft1H3D29C7gPv0EoH0jJY,5860
275
275
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/operation.py,sha256=6mDtD20H0bQEoSwReLPzaqNp6vLHgOQ7D1DD7KC7zIU,7111
276
276
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/story_log.py,sha256=Xou8XvEGQfLuEHH5RKdq6pXCZWMhmtyshQvvohT-Go8,2507
277
277
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user.py,sha256=rLR4uWTS-tCX2SMVy8YrkMI-01b5kXEhaBHDbrLmmFI,7867
@@ -380,6 +380,7 @@ arpakitlib/ar_arpakit_lib_module_util.py,sha256=g9uWwTK2eEzmErqwYeVgXDYVMREN8m5C
380
380
  arpakitlib/ar_arpakit_project_template_util.py,sha256=5-o6eTmh-2DqsIqmo63SXw7ttExhmuAehMNc4s0GdtU,3278
381
381
  arpakitlib/ar_arpakitlib_cli_util.py,sha256=ZQmbMlvie7cnqKa6nzgsWKmLxsiVe72XUhQ7Pjb8_4A,2604
382
382
  arpakitlib/ar_base64_util.py,sha256=udSSpeXMZx0JgQknl4hQgZ8kr1Ps_aQOloIXu4T9dMQ,1286
383
+ arpakitlib/ar_base_http_api_client_util.py,sha256=XBWe2lUuIoJAO_4sqL_B06yctsfMo_HHPFlPRo77yNg,1335
383
384
  arpakitlib/ar_base_worker_util.py,sha256=bzRq4oZISyH01J2uoyCabXvAyaTc6bfsyeZOras9cxI,6337
384
385
  arpakitlib/ar_blank_util.py,sha256=JT85-ZXsY-Qa8WwWKc0T3JniWojmBR574c9gIStagwA,2197
385
386
  arpakitlib/ar_cache_file_util.py,sha256=Fo2pH-Zqm966KWFBHG_pbiySGZvhIFCYqy7k1weRfJ0,3476
@@ -403,7 +404,7 @@ arpakitlib/ar_json_db_util.py,sha256=5nELpAY1_5_iTN4nMcutQtJQ5Nt52-xiKELxEH65RkY
403
404
  arpakitlib/ar_json_util.py,sha256=jnVfpQ6QSDq8NgIlh_6ZzXDveOiybr7QSQkXutE7d2s,2676
404
405
  arpakitlib/ar_jwt_util.py,sha256=Rhm4ywoTAn6yOV8NLjDASfAtAtheROxxDP40G3XjnuQ,761
405
406
  arpakitlib/ar_list_of_dicts_to_xlsx_util.py,sha256=MyjEl4Jl4beLVZqLVQMMv0-XDtBD3Xh4Z_ZPDJeFu04,745
406
- arpakitlib/ar_list_util.py,sha256=kPI8wiWgRkj6z0-YQG822pawN8zx_QrSmGj8tOMq6vc,1801
407
+ arpakitlib/ar_list_util.py,sha256=d6DisHqT37qh1Fd6VFOWcFNs5xPCQDFY4a4zF7DtM34,2345
407
408
  arpakitlib/ar_log_async_func_if_error_util.py,sha256=8qtcxRk6OqfwVsGE2wCpuIY7fjuQSQPl2eci4jZZ12I,727
408
409
  arpakitlib/ar_logging_util.py,sha256=8TdaCWeSk4_GAmuWFO49l8JAVfLJCqUxgSpTYvlWvsk,1308
409
410
  arpakitlib/ar_mongodb_util.py,sha256=orRb81o9CzD9kkWbbNQCbSMTl2xLcctUDdx_FxirKww,3411
@@ -422,16 +423,16 @@ arpakitlib/ar_safe_func_util.py,sha256=JQNaM3q4Z6nUE8bDfzXNBGkWSXm0PZ-GMMvu6UWUI
422
423
  arpakitlib/ar_settings_util.py,sha256=FeQQkuVrLVYkFAIg3Wy6ysyTt_sqLTX0REAe60gbM3k,2361
423
424
  arpakitlib/ar_sleep_util.py,sha256=ggaj7ML6QK_ADsHMcyu6GUmUpQ_9B9n-SKYH17h-9lM,1045
424
425
  arpakitlib/ar_sqladmin_util.py,sha256=SEoaowAPF3lhxPsNjwmOymNJ55Ty9rmzvsDm7gD5Ceo,861
426
+ arpakitlib/ar_sqlalchemy_base_dbm_util.py,sha256=hnwZW7v8FOjzYCkaoumkZYrtDkAv2gev9ZWH6it8H5k,16050
425
427
  arpakitlib/ar_sqlalchemy_drop_check_constraints_util.py,sha256=uVktYLjNHrMPWQAq8eBpapShPKbLb3LrRBnnss3gaYY,3624
426
428
  arpakitlib/ar_sqlalchemy_ensure_check_constraints_util.py,sha256=gqZTPSCAPUMRiXcmv9xls5S8YkUAg-gwFIEvqQsJ_JM,5437
427
- arpakitlib/ar_sqlalchemy_util.py,sha256=hnwZW7v8FOjzYCkaoumkZYrtDkAv2gev9ZWH6it8H5k,16050
428
- arpakitlib/ar_ssh_runner_util.py,sha256=3gKtLXf77AsYVZ7CSE4zhHJZPCoEUlQS5lwWytgN5e0,11844
429
+ arpakitlib/ar_ssh_runner_util.py,sha256=EViWYalKv3RlDuons3zFCM9cDTNGbbwFwA6mRwBNr78,11840
429
430
  arpakitlib/ar_str_util.py,sha256=6KlLL-SB8gzK-6gwQEd3zuYbRvtjd9HFpJ9-xHbkH6U,4355
430
431
  arpakitlib/ar_type_util.py,sha256=Cs_tef-Fc5xeyAF54KgISCsP11NHyzIsglm4S3Xx7iM,4049
431
432
  arpakitlib/ar_uppercase_env_keys_util.py,sha256=BsUCJhfchBIav0AE54_tVgYcE4p1JYoWdPGCHWZnROA,2790
432
- arpakitlib/ar_yookassa_api_client_util.py,sha256=7DL_0GyIOTuSNBHUO3qWxAXMKlBRHjKgcA6ttst8k1A,5265
433
- arpakitlib-1.8.333.dist-info/METADATA,sha256=ptp1W-410pxMx0hli2eUKJ-h6f_bYrsRWB45Vk9ALH8,3804
434
- arpakitlib-1.8.333.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
435
- arpakitlib-1.8.333.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
436
- arpakitlib-1.8.333.dist-info/licenses/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
437
- arpakitlib-1.8.333.dist-info/RECORD,,
433
+ arpakitlib/ar_yookassa_api_client_util.py,sha256=fDRhH2DXeQtwcGKreA6RJJ1nEem7SsRtRSR3GA2LXrE,5402
434
+ arpakitlib-1.8.343.dist-info/METADATA,sha256=B8Hf3tyVAFC-dLrnNy54mRxDX1aghjFDLzttsornfbc,4085
435
+ arpakitlib-1.8.343.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
436
+ arpakitlib-1.8.343.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
437
+ arpakitlib-1.8.343.dist-info/licenses/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
438
+ arpakitlib-1.8.343.dist-info/RECORD,,