arpakitlib 1.6.74__py3-none-any.whl → 1.6.77__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/_ar_arpakitlib_cli.py +11 -4
- arpakitlib/_arpakit_project_template/README.md +1 -1
- arpakitlib/_arpakit_project_template/manage/{git_push_dev_arpakit_company_github_1.sh → git_push_arpakit_company_github_1.sh} +1 -1
- arpakitlib/_arpakit_project_template/manage/{git_push_dev_arpakit_company_gitlab_1.sh → git_push_arpakit_company_gitlab_1.sh} +1 -1
- arpakitlib/_arpakit_project_template/{pyproject.toml → pyproject.toml.example} +1 -1
- arpakitlib/ar_aiogram_util.py +1 -1
- arpakitlib/ar_base_worker_util.py +28 -0
- arpakitlib/ar_fastapi_util.py +3 -24
- arpakitlib/ar_need_type_util.py +4 -1
- arpakitlib/ar_parse_command.py +3 -2
- arpakitlib/ar_project_template_util.py +24 -5
- {arpakitlib-1.6.74.dist-info → arpakitlib-1.6.77.dist-info}/METADATA +2 -2
- {arpakitlib-1.6.74.dist-info → arpakitlib-1.6.77.dist-info}/RECORD +18 -19
- arpakitlib/_arpakit_project_template/manage/src/__init__.py +0 -0
- /arpakitlib/_arpakit_project_template/manage/{poetry_config_virtualenvs.in-project_true.sh → poetry_config_virtualenvs_in_project_true.sh} +0 -0
- {arpakitlib-1.6.74.dist-info → arpakitlib-1.6.77.dist-info}/LICENSE +0 -0
- {arpakitlib-1.6.74.dist-info → arpakitlib-1.6.77.dist-info}/NOTICE +0 -0
- {arpakitlib-1.6.74.dist-info → arpakitlib-1.6.77.dist-info}/WHEEL +0 -0
- {arpakitlib-1.6.74.dist-info → arpakitlib-1.6.77.dist-info}/entry_points.txt +0 -0
arpakitlib/_ar_arpakitlib_cli.py
CHANGED
@@ -25,23 +25,30 @@ def _arpakitlib_cli(*, full_command: str | None = None):
|
|
25
25
|
print(
|
26
26
|
"Commands:"
|
27
27
|
"\n- init_arpakit_project_template"
|
28
|
-
" (project_dirpath,
|
28
|
+
" (project_dirpath, overwrite_if_exists, project_name, ignore_paths_startswith, only_paths_startswith)"
|
29
29
|
)
|
30
30
|
|
31
31
|
elif command == "init_arpakit_project_template":
|
32
32
|
project_dirpath = raise_if_blank(parsed_command.get_value_by_keys(keys=["pd", "project_dirpath"]))
|
33
33
|
overwrite_if_exists: bool = parse_need_type(
|
34
34
|
value=parsed_command.get_value_by_keys(keys=["oie", "overwrite_if_exists"]),
|
35
|
-
need_type=NeedTypes.bool_
|
35
|
+
need_type=NeedTypes.bool_,
|
36
|
+
allow_none=False
|
36
37
|
)
|
37
38
|
project_name: str = parsed_command.get_value_by_keys(keys=["pm", "project_name"])
|
38
39
|
ignore_paths_startswith: list[str] | None = parse_need_type(
|
39
40
|
value=parsed_command.get_value_by_keys(keys=["ipsw", "ignore_paths_startswith"]),
|
40
|
-
need_type=NeedTypes.list_of_str
|
41
|
+
need_type=NeedTypes.list_of_str,
|
42
|
+
allow_none=True
|
43
|
+
)
|
44
|
+
only_paths_startswith: list[str] | None = parse_need_type(
|
45
|
+
value=parsed_command.get_value_by_keys(keys=["ops", "only_paths_startswith"]),
|
46
|
+
need_type=NeedTypes.list_of_str,
|
47
|
+
allow_none=True
|
41
48
|
)
|
42
49
|
init_arpakit_project_template(
|
43
50
|
project_dirpath=project_dirpath, overwrite_if_exists=overwrite_if_exists, project_name=project_name,
|
44
|
-
ignore_paths_startswith=ignore_paths_startswith
|
51
|
+
ignore_paths_startswith=ignore_paths_startswith, only_paths_startswith=only_paths_startswith
|
45
52
|
)
|
46
53
|
|
47
54
|
else:
|
@@ -5,7 +5,7 @@ description = "{PROJECT_NAME}"
|
|
5
5
|
authors = ["arpakit <arpakit@gmail.com>", "arpakit_support <support@arpakit.com>"]
|
6
6
|
license = "Apache License 2.0"
|
7
7
|
readme = "README.md"
|
8
|
-
keywords = ["{PROJECT_NAME}", "arpakit", "arpakit-company", "arpakitcompany", "arpakit_company"]
|
8
|
+
keywords = ["{PROJECT_NAME}", "arpakitlib", "arpakit", "arpakit-company", "arpakitcompany", "arpakit_company"]
|
9
9
|
package-mode = false
|
10
10
|
|
11
11
|
|
arpakitlib/ar_aiogram_util.py
CHANGED
@@ -293,7 +293,7 @@ def as_tg_command(
|
|
293
293
|
f"Value (key={_param.key}, index={_param.index}) is required"
|
294
294
|
)
|
295
295
|
else:
|
296
|
-
value = parse_need_type(value=value, need_type=_param.need_type)
|
296
|
+
value = parse_need_type(value=value, need_type=_param.need_type, allow_none=False)
|
297
297
|
|
298
298
|
kwargs[_param.key] = value
|
299
299
|
|
@@ -2,15 +2,22 @@
|
|
2
2
|
|
3
3
|
import asyncio
|
4
4
|
import logging
|
5
|
+
import multiprocessing
|
6
|
+
import threading
|
5
7
|
from abc import ABC
|
6
8
|
from datetime import timedelta
|
7
9
|
|
10
|
+
from arpakitlib.ar_enumeration_util import Enumeration
|
8
11
|
from arpakitlib.ar_sleep_util import sync_safe_sleep, async_safe_sleep
|
9
12
|
|
10
13
|
_ARPAKIT_LIB_MODULE_VERSION = "3.0"
|
11
14
|
|
12
15
|
|
13
16
|
class BaseWorker(ABC):
|
17
|
+
class SafeRunInBackgroundModes(Enumeration):
|
18
|
+
async_task = "async_task"
|
19
|
+
thread = "thread"
|
20
|
+
process = "process"
|
14
21
|
|
15
22
|
def __init__(self):
|
16
23
|
self.worker_name = self.__class__.__name__
|
@@ -18,6 +25,27 @@ class BaseWorker(ABC):
|
|
18
25
|
self.timeout_after_run = timedelta(seconds=0.1).total_seconds()
|
19
26
|
self.timeout_after_err_in_run = timedelta(seconds=1).total_seconds()
|
20
27
|
|
28
|
+
def safe_run_in_background(self, *, safe_run_in_background_mode: str) -> (
|
29
|
+
asyncio.Task | threading.Thread | multiprocessing.Process
|
30
|
+
):
|
31
|
+
if safe_run_in_background_mode == self.SafeRunInBackgroundModes.async_task:
|
32
|
+
res: asyncio.Task = asyncio.create_task(self.async_safe_run())
|
33
|
+
elif safe_run_in_background_mode == self.SafeRunInBackgroundModes.thread:
|
34
|
+
res: threading.Thread = threading.Thread(
|
35
|
+
target=self.sync_safe_run,
|
36
|
+
daemon=True
|
37
|
+
)
|
38
|
+
res.start()
|
39
|
+
elif safe_run_in_background_mode == self.SafeRunInBackgroundModes.process:
|
40
|
+
res: multiprocessing.Process = multiprocessing.Process(
|
41
|
+
target=self.sync_safe_run,
|
42
|
+
daemon=True
|
43
|
+
)
|
44
|
+
res.start()
|
45
|
+
else:
|
46
|
+
raise ValueError(f"unrecognized safe_run_mode={safe_run_in_background_mode}")
|
47
|
+
return res
|
48
|
+
|
21
49
|
def sync_on_startup(self):
|
22
50
|
pass
|
23
51
|
|
arpakitlib/ar_fastapi_util.py
CHANGED
@@ -4,10 +4,8 @@ from __future__ import annotations
|
|
4
4
|
|
5
5
|
import asyncio
|
6
6
|
import logging
|
7
|
-
import multiprocessing
|
8
7
|
import os.path
|
9
8
|
import pathlib
|
10
|
-
import threading
|
11
9
|
import traceback
|
12
10
|
from datetime import datetime
|
13
11
|
from typing import Any, Callable
|
@@ -403,33 +401,14 @@ class InitSqlalchemyDBStartupAPIEvent(BaseStartupAPIEvent):
|
|
403
401
|
self.sqlalchemy_db.init()
|
404
402
|
|
405
403
|
|
406
|
-
class SafeRunWorkerModes(Enumeration):
|
407
|
-
async_task = "async_task"
|
408
|
-
thread = "thread"
|
409
|
-
process = "process"
|
410
|
-
|
411
|
-
|
412
404
|
class SafeRunWorkerStartupAPIEvent(BaseStartupAPIEvent):
|
413
|
-
def __init__(self, worker: BaseWorker,
|
405
|
+
def __init__(self, worker: BaseWorker, safe_run_in_background_mode: str):
|
414
406
|
super().__init__()
|
415
407
|
self.worker = worker
|
416
|
-
self.
|
408
|
+
self.safe_run_in_background_mode = safe_run_in_background_mode
|
417
409
|
|
418
410
|
def async_on_startup(self, *args, **kwargs):
|
419
|
-
|
420
|
-
_ = asyncio.create_task(self.worker.async_safe_run())
|
421
|
-
elif self.safe_run_mode == SafeRunWorkerModes.thread:
|
422
|
-
thread = threading.Thread(
|
423
|
-
target=self.worker.sync_safe_run,
|
424
|
-
daemon=True
|
425
|
-
)
|
426
|
-
thread.start()
|
427
|
-
elif self.safe_run_mode == SafeRunWorkerModes.process:
|
428
|
-
process = multiprocessing.Process(
|
429
|
-
target=self.worker.sync_safe_run,
|
430
|
-
daemon=True
|
431
|
-
)
|
432
|
-
process.start()
|
411
|
+
self.worker.safe_run_in_background(safe_run_in_background_mode=self.safe_run_in_background_mode)
|
433
412
|
|
434
413
|
|
435
414
|
class BaseTransmittedAPIData(BaseModel):
|
arpakitlib/ar_need_type_util.py
CHANGED
@@ -19,7 +19,10 @@ class NeedTypes(Enumeration):
|
|
19
19
|
json = "json"
|
20
20
|
|
21
21
|
|
22
|
-
def parse_need_type(value: Any, need_type: str) -> Any:
|
22
|
+
def parse_need_type(value: Any, need_type: str, allow_none: bool = False) -> Any:
|
23
|
+
if allow_none and value is None:
|
24
|
+
return None
|
25
|
+
|
23
26
|
NeedTypes.parse_and_validate_values(need_type)
|
24
27
|
|
25
28
|
if need_type == NeedTypes.str_:
|
arpakitlib/ar_parse_command.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# arpakit
|
2
|
-
|
2
|
+
import os
|
3
3
|
import shlex
|
4
4
|
|
5
5
|
from pydantic import BaseModel
|
@@ -15,6 +15,7 @@ class BadCommandFormat(Exception):
|
|
15
15
|
|
16
16
|
class ParsedCommand(BaseModel):
|
17
17
|
command: str
|
18
|
+
full_command: str
|
18
19
|
key_to_value: dict[str, str | None] = {}
|
19
20
|
values_without_key: list[str] = []
|
20
21
|
|
@@ -76,7 +77,7 @@ def parse_command(text: str) -> ParsedCommand:
|
|
76
77
|
if len(parts[0]) == 1:
|
77
78
|
raise BadCommandFormat("len(parts[0]) == 1")
|
78
79
|
|
79
|
-
res = ParsedCommand(command=parts[0])
|
80
|
+
res = ParsedCommand(full_command=parts[0], command=os.path.basename(parts[0]).removeprefix("/"))
|
80
81
|
|
81
82
|
last_key: str | None = None
|
82
83
|
for part in parts[1:]:
|
@@ -15,7 +15,8 @@ def init_arpakit_project_template(
|
|
15
15
|
project_dirpath: str,
|
16
16
|
overwrite_if_exists: bool = False,
|
17
17
|
project_name: str | None = None,
|
18
|
-
ignore_paths_startswith: list[str] | str | None = None
|
18
|
+
ignore_paths_startswith: list[str] | str | None = None,
|
19
|
+
only_paths_startswith: list[str] | str | None = None
|
19
20
|
):
|
20
21
|
if project_name:
|
21
22
|
project_name = project_name.strip()
|
@@ -26,17 +27,35 @@ def init_arpakit_project_template(
|
|
26
27
|
if ignore_paths_startswith is None:
|
27
28
|
ignore_paths_startswith = []
|
28
29
|
|
30
|
+
if isinstance(only_paths_startswith, str):
|
31
|
+
only_paths_startswith = [only_paths_startswith]
|
32
|
+
if only_paths_startswith is None:
|
33
|
+
only_paths_startswith = []
|
34
|
+
|
29
35
|
def _generate_filepath_to_content() -> dict[str, str]:
|
30
|
-
arpakit_project_template_dirpath = os.path.
|
36
|
+
arpakit_project_template_dirpath = os.path.join(
|
37
|
+
os.path.dirname(os.path.abspath(__file__)), "_arpakit_project_template"
|
38
|
+
)
|
31
39
|
res = {}
|
32
40
|
for root, dirs, files in os.walk(arpakit_project_template_dirpath):
|
33
41
|
dirs[:] = [d for d in dirs if d != '__pycache__']
|
34
42
|
for file in files:
|
35
43
|
rel_path = os.path.relpath(os.path.join(root, file), arpakit_project_template_dirpath)
|
36
|
-
if
|
37
|
-
|
44
|
+
if (
|
45
|
+
ignore_paths_startswith
|
46
|
+
and
|
47
|
+
any(rel_path.startswith(ignore_path) for ignore_path in ignore_paths_startswith)
|
48
|
+
):
|
49
|
+
_logger.info(f"ignoring file: {rel_path}")
|
50
|
+
continue
|
51
|
+
if (
|
52
|
+
only_paths_startswith
|
53
|
+
and
|
54
|
+
not any(rel_path.startswith(only_path) for only_path in only_paths_startswith)
|
55
|
+
):
|
56
|
+
_logger.info(f"ignoring file: {rel_path}")
|
38
57
|
continue
|
39
|
-
with open(os.path.join(root, file), "r", encoding=
|
58
|
+
with open(os.path.join(root, file), "r", encoding="utf-8") as _file:
|
40
59
|
_content = _file.read()
|
41
60
|
if project_name:
|
42
61
|
_content = _content.replace("{PROJECT_NAME}", project_name)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: arpakitlib
|
3
|
-
Version: 1.6.
|
3
|
+
Version: 1.6.77
|
4
4
|
Summary: arpakitlib
|
5
5
|
Home-page: https://github.com/ARPAKIT-Company/arpakitlib
|
6
6
|
License: Apache-2.0
|
@@ -86,6 +86,6 @@ pip install arpakitlib
|
|
86
86
|
|
87
87
|
---
|
88
88
|
|
89
|
-
## ❤️ Made
|
89
|
+
## ❤️ Made by ARPAKIT Company ❤️
|
90
90
|
|
91
91
|
|
@@ -1,19 +1,19 @@
|
|
1
1
|
arpakitlib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
arpakitlib/_ar_arpakitlib_cli.py,sha256=
|
2
|
+
arpakitlib/_ar_arpakitlib_cli.py,sha256=82eFIraGWMj2Phs8wHKKjb6n5sGx_Pf6nabRRj9dnwc,2368
|
3
3
|
arpakitlib/_arpakit_project_template/.env_example,sha256=IMwmQFJZKztgc-uXQz6YzplVrdFyOs7xLiEfmlLDp8c,69
|
4
4
|
arpakitlib/_arpakit_project_template/.gitignore,sha256=LVqBflpdgeidDY52su41mFA6a9hClSjNG-O0itRyLFc,496
|
5
5
|
arpakitlib/_arpakit_project_template/.python-version,sha256=XMd40XBnlTFfBSmMldd-7VdqXNyFCy6wtxhw5e1mnhc,7
|
6
6
|
arpakitlib/_arpakit_project_template/AUTHOR.md,sha256=5s2zJB3cHS_hpNBOGXfQPAfS9vuJ8BqZ6c2kNGBtfhc,65
|
7
7
|
arpakitlib/_arpakit_project_template/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
|
8
8
|
arpakitlib/_arpakit_project_template/NOTICE,sha256=95aUzaPJjVpDsGAsNzVnq7tHTxAl0s5UFznCTkVCau4,763
|
9
|
-
arpakitlib/_arpakit_project_template/README.md,sha256=
|
9
|
+
arpakitlib/_arpakit_project_template/README.md,sha256=n7bVQwXStxdwN07oMF9ot5076qVjTk_H-rmUaSYfHK8,66
|
10
10
|
arpakitlib/_arpakit_project_template/manage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
11
|
arpakitlib/_arpakit_project_template/manage/beutify_json.py,sha256=mzmt-5piAHqgihLsqOpPx1JjDc1qA5F1XHBxDdR-BxY,215
|
12
12
|
arpakitlib/_arpakit_project_template/manage/docker_ps.sh,sha256=uwm8vHgeuNLCOn0o9hgP_uc-PUkS9FwLyzZh6ItZ3do,15
|
13
13
|
arpakitlib/_arpakit_project_template/manage/generate_env_example.py,sha256=gveKEz6zf5rwKNBXtHacPEjxxjPTbLy4n-Ztv0BqCWE,331
|
14
14
|
arpakitlib/_arpakit_project_template/manage/git_commit.sh,sha256=AW1NEel-ZHaYeVWFlRbgZSYPQdnVKsTkpR_07RQL1Mw,42
|
15
|
-
arpakitlib/_arpakit_project_template/manage/
|
16
|
-
arpakitlib/_arpakit_project_template/manage/
|
15
|
+
arpakitlib/_arpakit_project_template/manage/git_push_arpakit_company_github_1.sh,sha256=tFQm6FaJNGKYxaUyXJrbjTUtFazlG06Fm8hPRQDOMxw,77
|
16
|
+
arpakitlib/_arpakit_project_template/manage/git_push_arpakit_company_gitlab_1.sh,sha256=xcP560mLeTYyc-1EWcueaAui31D5OZ_Odd4MXti41r4,77
|
17
17
|
arpakitlib/_arpakit_project_template/manage/git_remote_v.sh,sha256=DIcyWmY_mve_CmM1SND2gYgAGO7HaLtso3zvJfMqTRI,19
|
18
18
|
arpakitlib/_arpakit_project_template/manage/git_set_arpakit_company_origin.sh,sha256=qTi-SxgC6CfCTEAje0_XFcQ9wpuiyAZEU4MANeJjdWA,274
|
19
19
|
arpakitlib/_arpakit_project_template/manage/git_status.sh,sha256=N9JGYX5_UfCdirw4EQYzu4sS7pMLGrF4-QrTSTcpUtA,16
|
@@ -21,7 +21,7 @@ arpakitlib/_arpakit_project_template/manage/hello_world.py,sha256=1b1YIedAgtvBtt
|
|
21
21
|
arpakitlib/_arpakit_project_template/manage/poetry_add_plugin_export.sh,sha256=efbIvqO076HG5W3GGc5Iut9luswswqYYJ6IzzFOUABk,43
|
22
22
|
arpakitlib/_arpakit_project_template/manage/poetry_check.sh,sha256=mxkbFqw-mVlAkP_klLoXDANbIoKEu6Uj98tZ3pLKlpU,19
|
23
23
|
arpakitlib/_arpakit_project_template/manage/poetry_clear_cache.sh,sha256=5NmoMsA377JCeTMLERzE2GZywgi8mXQDTQ_yhIJtR8k,139
|
24
|
-
arpakitlib/_arpakit_project_template/manage/
|
24
|
+
arpakitlib/_arpakit_project_template/manage/poetry_config_virtualenvs_in_project_true.sh,sha256=CHAGXfmyztxgimUQ4MC4IwnLzd2uZ7Da1Xvem_lw60w,47
|
25
25
|
arpakitlib/_arpakit_project_template/manage/poetry_generate_requirements.txt.sh,sha256=Df2ms0GlmAymMGqf9Bp2i3_DI61Ii1xYKf7S0By7tdw,76
|
26
26
|
arpakitlib/_arpakit_project_template/manage/poetry_install.sh,sha256=82N5l6Em507FPqY9OVJe1UN6YYvkO3mPMLbSQTUcUvY,20
|
27
27
|
arpakitlib/_arpakit_project_template/manage/poetry_lock.sh,sha256=9oiTdi8ynGQWctQjI3g4ThGkvpT07-g5ajLmG47iVh8,17
|
@@ -29,8 +29,7 @@ arpakitlib/_arpakit_project_template/manage/poetry_remove_and_add_arpakitlib.sh,
|
|
29
29
|
arpakitlib/_arpakit_project_template/manage/poetry_show.sh,sha256=pclR9efCNrrGyJR2HrdDM4PCUFGg0OSlRtjQ3Srv8W8,24
|
30
30
|
arpakitlib/_arpakit_project_template/manage/poetry_update.sh,sha256=49tIXIzfXanbN5IIM6mkYcHRZQOlu-uHHRqVg3EWosU,31
|
31
31
|
arpakitlib/_arpakit_project_template/manage/poetry_update_arpakitlib.sh,sha256=chVSeDzTeKzwKld6h2kBx_Gd0dU2DZf0lJGlgPQtBfs,164
|
32
|
-
arpakitlib/_arpakit_project_template/
|
33
|
-
arpakitlib/_arpakit_project_template/pyproject.toml,sha256=lg2XoLCzS-ytsWE7xSKS-mgT_S6nr3jEZjP0UG0KThQ,472
|
32
|
+
arpakitlib/_arpakit_project_template/pyproject.toml.example,sha256=Cg8VgGbSXsbvCb63cYwYQAb1bDA49IbuIMP5ShxTMK4,486
|
34
33
|
arpakitlib/_arpakit_project_template/resource/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
35
34
|
arpakitlib/_arpakit_project_template/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
36
35
|
arpakitlib/_arpakit_project_template/src/additional_model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -42,11 +41,11 @@ arpakitlib/_arpakit_project_template/src/core/settings.py,sha256=Kk0NqhWTdMqN3Ug
|
|
42
41
|
arpakitlib/_arpakit_project_template/src/core/util.py,sha256=94v3h_bKEasd1di_CkAVSdQy4I5FxA5qkUFvtHp3tsQ,724
|
43
42
|
arpakitlib/_arpakit_project_template/src/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
44
43
|
arpakitlib/ar_additional_model_util.py,sha256=tNzZhZtvtJ1qC6Cn4UnyoEL58HudfpCdQy5ftkCqyik,473
|
45
|
-
arpakitlib/ar_aiogram_util.py,sha256=
|
44
|
+
arpakitlib/ar_aiogram_util.py,sha256=uodUia6S_tLGVk88JltwRhoT9iMIekOwsrXUnCOzf3g,12526
|
46
45
|
arpakitlib/ar_arpakit_lib_module_util.py,sha256=V_mc3Ml73Tzz3arxmwEfIxruKMyrwbe8XZ9FfVDtUXY,5446
|
47
46
|
arpakitlib/ar_arpakit_schedule_uust_api_client_util.py,sha256=SYWWQDohPnw0qpBIu2hEvGZRVdaI4NUUQdEjnMnseo4,18237
|
48
47
|
arpakitlib/ar_base64_util.py,sha256=aZkg2cZTuAaP2IWeG_LXJ6RO7qhyskVwec-Lks0iM-k,676
|
49
|
-
arpakitlib/ar_base_worker_util.py,sha256=
|
48
|
+
arpakitlib/ar_base_worker_util.py,sha256=YGoSpkE52QGu_mQdrefThc-pCnhhLEhWchSM3HZL-2U,3972
|
50
49
|
arpakitlib/ar_cache_file_util.py,sha256=Fo2pH-Zqm966KWFBHG_pbiySGZvhIFCYqy7k1weRfJ0,3476
|
51
50
|
arpakitlib/ar_datetime_util.py,sha256=Xe1NiT9oPQzNSG7RVRkhukhbg4i-hhS5ImmV7sPUc8o,971
|
52
51
|
arpakitlib/ar_dict_util.py,sha256=cF5LQJ6tLqyGoEXfDljMDZrikeZoWPw7CgINHIFGvXM,419
|
@@ -72,7 +71,7 @@ arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css,sha256=jzPZlgJTFwSdSphk9C
|
|
72
71
|
arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css.map,sha256=5wq8eXMLU6Zxb45orZPL1zAsBFJReFw6GjYqGpUX3hg,262650
|
73
72
|
arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js,sha256=ffrLZHHEQ_g84A-ul3yWa10Kk09waOAxHcQXPuZuavg,339292
|
74
73
|
arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js.map,sha256=9UhIW7MqCOZPAz1Sl1IKfZUuhWU0p-LJqrnjjJD9Xhc,1159454
|
75
|
-
arpakitlib/ar_fastapi_util.py,sha256=
|
74
|
+
arpakitlib/ar_fastapi_util.py,sha256=NqX5SrLYY4LjaGA7PTpTePB2uzlDwpBFcE0DPGKQLvk,20868
|
76
75
|
arpakitlib/ar_file_storage_in_dir_util.py,sha256=D3e3rGuHoI6xqAA5mVvEpVVpOWY1jyjNsjj2UhyHRbE,3674
|
77
76
|
arpakitlib/ar_file_util.py,sha256=XiwmeycxoLqtYnGOu5q6IEaJJXilZvtLvsKDKtwqSLY,137
|
78
77
|
arpakitlib/ar_hash_util.py,sha256=Iqy6KBAOLBQMFLWv676boI5sV7atT2B-fb7aCdHOmIQ,340
|
@@ -86,12 +85,12 @@ arpakitlib/ar_list_of_dicts_to_xlsx.py,sha256=MyjEl4Jl4beLVZqLVQMMv0-XDtBD3Xh4Z_
|
|
86
85
|
arpakitlib/ar_list_util.py,sha256=2woOAHAU8oTIiVjZ8GLnx15odEaoQUq3Q0JPxlufFF0,457
|
87
86
|
arpakitlib/ar_logging_util.py,sha256=c5wX2FLqCzb4aLckLVhIJ7go52rJQ4GN9dIkJ6KMc3o,1500
|
88
87
|
arpakitlib/ar_mongodb_util.py,sha256=2ECkTnGAZ92qxioL-fmN6R4yZOSr3bXdXLWTzT1C3vk,4038
|
89
|
-
arpakitlib/ar_need_type_util.py,sha256=
|
88
|
+
arpakitlib/ar_need_type_util.py,sha256=xq5bbAXJG-93CRVZUcLW0ZdM22rj-ZUW17C5hX_5grg,1699
|
90
89
|
arpakitlib/ar_openai_util.py,sha256=dHUbfg1sVVCjsNl_fra3iCMEz1bR-Hk9fE-DdYbu7Wc,1215
|
91
90
|
arpakitlib/ar_operation_execution_util.py,sha256=w_dz4XYEM4WbTxpBoYVkknG3U3_391cJmitgljJJTO0,12373
|
92
|
-
arpakitlib/ar_parse_command.py,sha256
|
91
|
+
arpakitlib/ar_parse_command.py,sha256=-s61xcATIsfw1eV_iD3xi-grsitbGzSDoAFc5V0OFy4,3447
|
93
92
|
arpakitlib/ar_postgresql_util.py,sha256=1AuLjEaa1Lg4pzn-ukCVnDi35Eg1k91APRTqZhIJAdo,945
|
94
|
-
arpakitlib/ar_project_template_util.py,sha256=
|
93
|
+
arpakitlib/ar_project_template_util.py,sha256=Yh3tzNYq0rrKc1MY-qsW1Ljhi9ADz8nYXMiPDH-e6PQ,3097
|
95
94
|
arpakitlib/ar_run_cmd_util.py,sha256=D_rPavKMmWkQtwvZFz-Io5Ak8eSODHkcFeLPzNVC68g,1072
|
96
95
|
arpakitlib/ar_schedule_uust_api_client_util.py,sha256=0X4yACjt8cxMvuoZUq4S0HuVhVUQW5fGmiPcG7vwM8Y,6027
|
97
96
|
arpakitlib/ar_settings_util.py,sha256=kJ5L2Ik-spgMjMjGZ6ZvPHv6T8dtip1sm-39HI6htvc,1214
|
@@ -103,9 +102,9 @@ arpakitlib/ar_str_util.py,sha256=AhcdrEm-pXRilCaDWCdTfVkQSy0SnbE52ur43Ltr6cI,212
|
|
103
102
|
arpakitlib/ar_type_util.py,sha256=5nDnXL5Oyozlg8XvxMrogsoYiG8_atItg46A0mtv-pk,2025
|
104
103
|
arpakitlib/ar_yookassa_api_client_util.py,sha256=5GMvu8paByni8buhc1vpHB7n6oXe0gPfj1LSvnyZCrQ,5307
|
105
104
|
arpakitlib/ar_zabbix_util.py,sha256=Q-VR4MvoZ9aHwZeYZr9G3LwN-ANx1T5KFmF6pvPM-9M,6402
|
106
|
-
arpakitlib-1.6.
|
107
|
-
arpakitlib-1.6.
|
108
|
-
arpakitlib-1.6.
|
109
|
-
arpakitlib-1.6.
|
110
|
-
arpakitlib-1.6.
|
111
|
-
arpakitlib-1.6.
|
105
|
+
arpakitlib-1.6.77.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
|
106
|
+
arpakitlib-1.6.77.dist-info/METADATA,sha256=qKH_18adIuYDN1d9h8GuzfJVG5FQIqCgc2fXGNgDVi0,2655
|
107
|
+
arpakitlib-1.6.77.dist-info/NOTICE,sha256=95aUzaPJjVpDsGAsNzVnq7tHTxAl0s5UFznCTkVCau4,763
|
108
|
+
arpakitlib-1.6.77.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
109
|
+
arpakitlib-1.6.77.dist-info/entry_points.txt,sha256=RybYAcp2JEzQ3o5n9uFS4Ul3IKDx4Iojp63Wp6nbj04,76
|
110
|
+
arpakitlib-1.6.77.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|