arpakitlib 1.7.137__py3-none-any.whl → 1.7.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/manage/sandbox/sandbox_1.py +4 -4
- arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_2.py +4 -4
- arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_3.py +4 -4
- arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_4.py +4 -4
- arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_5.py +4 -4
- arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_6.py +4 -4
- arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_7.py +4 -4
- arpakitlib/_arpakit_project_template/src/additional_model/additional_model.py +2 -0
- arpakitlib/_arpakit_project_template/src/admin1/add_admin_in_app.py +8 -2
- arpakitlib/_arpakit_project_template/src/admin1/model_view.py +0 -18
- arpakitlib/_arpakit_project_template/src/api/{start_api_with_reload.py → _start_api_with_reload.py} +2 -2
- arpakitlib/_arpakit_project_template/src/api/{start_api_without_reload.py → _start_api_without_reload.py} +2 -2
- arpakitlib/_arpakit_project_template/src/api/router/v1/get_api_error_info.py +1 -0
- arpakitlib/_arpakit_project_template/src/api/router/v1/main_router.py +4 -0
- arpakitlib/_arpakit_project_template/src/api/schema/v1/in_.py +1 -0
- arpakitlib/_arpakit_project_template/src/api/schema/v1/out.py +2 -0
- arpakitlib/_arpakit_project_template/src/api/transmitted_api_data.py +2 -0
- arpakitlib/_arpakit_project_template/src/core/{check_logging.py → _check_logging.py} +2 -2
- arpakitlib/_arpakit_project_template/src/core/{check_settings.py → _check_settings.py} +2 -2
- arpakitlib/_arpakit_project_template/src/core/{generate_settings_env_example.py → _generate_settings_env_example.py} +2 -2
- arpakitlib/_arpakit_project_template/src/core/const.py +5 -11
- arpakitlib/_arpakit_project_template/src/core/util.py +3 -0
- arpakitlib/_arpakit_project_template/src/db/{check_conn_sqlalchemy_db.py → _check_conn_sqlalchemy_db.py} +2 -2
- arpakitlib/_arpakit_project_template/src/db/{init_sqlalchemy_db.py → _init_sqlalchemy_db.py} +2 -2
- arpakitlib/_arpakit_project_template/src/db/{reinit_sqlalchemy_db.py → _reinit_sqlalchemy_db.py} +3 -3
- arpakitlib/_arpakit_project_template/src/db/const.py +1 -0
- arpakitlib/_arpakit_project_template/src/db/util.py +2 -0
- arpakitlib/_arpakit_project_template/src/operation_execution/{start_operation_executor_worker.py → _start_operation_executor_worker.py} +2 -2
- arpakitlib/_arpakit_project_template/src/operation_execution/{start_scheduled_operation_creator_worker.py → _start_scheduled_operation_creator_worker.py} +2 -2
- arpakitlib/_arpakit_project_template/src/operation_execution/scheduled_operations.py +12 -8
- arpakitlib/_arpakit_project_template/src/operation_execution/util.py +1 -0
- arpakitlib/_arpakit_project_template/src/test_data/make_test_data_1.py +2 -0
- arpakitlib/_arpakit_project_template/src/test_data/make_test_data_2.py +2 -0
- arpakitlib/_arpakit_project_template/src/test_data/make_test_data_3.py +2 -0
- arpakitlib/_arpakit_project_template/src/test_data/make_test_data_4.py +2 -0
- arpakitlib/_arpakit_project_template/src/test_data/make_test_data_5.py +2 -0
- arpakitlib/ar_class_util.py +17 -0
- arpakitlib/ar_enumeration_util.py +19 -1
- arpakitlib/ar_operation_execution_util.py +1 -0
- arpakitlib/ar_settings_util.py +2 -2
- arpakitlib/ar_sqladmin_util.py +101 -0
- {arpakitlib-1.7.137.dist-info → arpakitlib-1.7.206.dist-info}/METADATA +1 -1
- {arpakitlib-1.7.137.dist-info → arpakitlib-1.7.206.dist-info}/RECORD +47 -45
- /arpakitlib/{api_key_util.py → ar_api_key_util.py} +0 -0
- {arpakitlib-1.7.137.dist-info → arpakitlib-1.7.206.dist-info}/LICENSE +0 -0
- {arpakitlib-1.7.137.dist-info → arpakitlib-1.7.206.dist-info}/WHEEL +0 -0
- {arpakitlib-1.7.137.dist-info → arpakitlib-1.7.206.dist-info}/entry_points.txt +0 -0
@@ -1,14 +1,14 @@
|
|
1
1
|
import asyncio
|
2
2
|
|
3
3
|
|
4
|
-
def
|
4
|
+
def _sandbox():
|
5
5
|
pass
|
6
6
|
|
7
7
|
|
8
|
-
async def
|
8
|
+
async def _async_sandbox():
|
9
9
|
pass
|
10
10
|
|
11
11
|
|
12
12
|
if __name__ == '__main__':
|
13
|
-
|
14
|
-
asyncio.run(
|
13
|
+
_sandbox()
|
14
|
+
asyncio.run(_async_sandbox())
|
@@ -1,14 +1,14 @@
|
|
1
1
|
import asyncio
|
2
2
|
|
3
3
|
|
4
|
-
def
|
4
|
+
def _sandbox():
|
5
5
|
pass
|
6
6
|
|
7
7
|
|
8
|
-
async def
|
8
|
+
async def _async_sandbox():
|
9
9
|
pass
|
10
10
|
|
11
11
|
|
12
12
|
if __name__ == '__main__':
|
13
|
-
|
14
|
-
asyncio.run(
|
13
|
+
_sandbox()
|
14
|
+
asyncio.run(_async_sandbox())
|
@@ -1,14 +1,14 @@
|
|
1
1
|
import asyncio
|
2
2
|
|
3
3
|
|
4
|
-
def
|
4
|
+
def _sandbox():
|
5
5
|
pass
|
6
6
|
|
7
7
|
|
8
|
-
async def
|
8
|
+
async def _async_sandbox():
|
9
9
|
pass
|
10
10
|
|
11
11
|
|
12
12
|
if __name__ == '__main__':
|
13
|
-
|
14
|
-
asyncio.run(
|
13
|
+
_sandbox()
|
14
|
+
asyncio.run(_async_sandbox())
|
@@ -1,14 +1,14 @@
|
|
1
1
|
import asyncio
|
2
2
|
|
3
3
|
|
4
|
-
def
|
4
|
+
def _sandbox():
|
5
5
|
pass
|
6
6
|
|
7
7
|
|
8
|
-
async def
|
8
|
+
async def _async_sandbox():
|
9
9
|
pass
|
10
10
|
|
11
11
|
|
12
12
|
if __name__ == '__main__':
|
13
|
-
|
14
|
-
asyncio.run(
|
13
|
+
_sandbox()
|
14
|
+
asyncio.run(_async_sandbox())
|
@@ -1,14 +1,14 @@
|
|
1
1
|
import asyncio
|
2
2
|
|
3
3
|
|
4
|
-
def
|
4
|
+
def _sandbox():
|
5
5
|
pass
|
6
6
|
|
7
7
|
|
8
|
-
async def
|
8
|
+
async def _async_sandbox():
|
9
9
|
pass
|
10
10
|
|
11
11
|
|
12
12
|
if __name__ == '__main__':
|
13
|
-
|
14
|
-
asyncio.run(
|
13
|
+
_sandbox()
|
14
|
+
asyncio.run(_async_sandbox())
|
@@ -1,14 +1,14 @@
|
|
1
1
|
import asyncio
|
2
2
|
|
3
3
|
|
4
|
-
def
|
4
|
+
def _sandbox():
|
5
5
|
pass
|
6
6
|
|
7
7
|
|
8
|
-
async def
|
8
|
+
async def _async_sandbox():
|
9
9
|
pass
|
10
10
|
|
11
11
|
|
12
12
|
if __name__ == '__main__':
|
13
|
-
|
14
|
-
asyncio.run(
|
13
|
+
_sandbox()
|
14
|
+
asyncio.run(_async_sandbox())
|
@@ -1,14 +1,14 @@
|
|
1
1
|
import asyncio
|
2
2
|
|
3
3
|
|
4
|
-
def
|
4
|
+
def _sandbox():
|
5
5
|
pass
|
6
6
|
|
7
7
|
|
8
|
-
async def
|
8
|
+
async def _async_sandbox():
|
9
9
|
pass
|
10
10
|
|
11
11
|
|
12
12
|
if __name__ == '__main__':
|
13
|
-
|
14
|
-
asyncio.run(
|
13
|
+
_sandbox()
|
14
|
+
asyncio.run(_async_sandbox())
|
@@ -1,8 +1,11 @@
|
|
1
|
+
import importlib
|
2
|
+
from contextlib import suppress
|
3
|
+
|
1
4
|
from fastapi import FastAPI
|
2
5
|
from sqladmin import Admin
|
3
6
|
|
7
|
+
from arpakitlib.ar_sqladmin_util import SimpleModelView
|
4
8
|
from src.admin1.admin_auth import AdminAuth
|
5
|
-
from src.admin1.model_view import MODEL_VIEWS
|
6
9
|
from src.api.transmitted_api_data import TransmittedAPIData
|
7
10
|
from src.core.settings import get_cached_settings
|
8
11
|
|
@@ -20,7 +23,10 @@ def add_admin1_in_app(*, app: FastAPI) -> FastAPI:
|
|
20
23
|
title=get_cached_settings().project_name
|
21
24
|
)
|
22
25
|
|
23
|
-
|
26
|
+
with suppress(Exception):
|
27
|
+
importlib.import_module("src.admin1.model_view")
|
28
|
+
|
29
|
+
for model_view in SimpleModelView.all_subclasses:
|
24
30
|
admin.add_model_view(model_view)
|
25
31
|
|
26
32
|
return app
|
@@ -1,19 +1 @@
|
|
1
|
-
from sqladmin import ModelView
|
2
|
-
|
3
|
-
|
4
|
-
class BaseModelView(ModelView):
|
5
|
-
can_create = True
|
6
|
-
can_edit = True
|
7
|
-
can_delete = True
|
8
|
-
can_view_details = True
|
9
|
-
can_export = True
|
10
|
-
page_size = 50
|
11
|
-
page_size_options = [25, 50, 100, 200]
|
12
|
-
save_as = True
|
13
|
-
save_as_continue = True
|
14
|
-
export_types = ["xlsx", "csv", "json"]
|
15
|
-
|
16
|
-
|
17
|
-
MODEL_VIEWS = []
|
18
|
-
|
19
1
|
# ...
|
arpakitlib/_arpakit_project_template/src/api/{start_api_with_reload.py → _start_api_with_reload.py}
RENAMED
@@ -3,7 +3,7 @@ import uvicorn
|
|
3
3
|
from src.core.settings import get_cached_settings
|
4
4
|
|
5
5
|
|
6
|
-
def
|
6
|
+
def _start_api_for_dev_with_reload():
|
7
7
|
uvicorn.run(
|
8
8
|
"src.api.asgi:app",
|
9
9
|
port=get_cached_settings().api_port,
|
@@ -14,4 +14,4 @@ def __start_api_for_dev_with_reload():
|
|
14
14
|
|
15
15
|
|
16
16
|
if __name__ == '__main__':
|
17
|
-
|
17
|
+
_start_api_for_dev_with_reload()
|
@@ -3,7 +3,7 @@ import uvicorn
|
|
3
3
|
from src.core.settings import get_cached_settings
|
4
4
|
|
5
5
|
|
6
|
-
def
|
6
|
+
def _start_api_for_dev_without_reload():
|
7
7
|
uvicorn.run(
|
8
8
|
"src.api.asgi:app",
|
9
9
|
port=get_cached_settings().api_port,
|
@@ -14,4 +14,4 @@ def __start_api_for_dev_without_reload():
|
|
14
14
|
|
15
15
|
|
16
16
|
if __name__ == '__main__':
|
17
|
-
|
17
|
+
_start_api_for_dev_without_reload()
|
@@ -4,8 +4,12 @@ from src.api.router.v1 import get_api_error_info
|
|
4
4
|
|
5
5
|
main_v1_api_router = APIRouter()
|
6
6
|
|
7
|
+
# API Error Info
|
8
|
+
|
7
9
|
main_v1_api_router.include_router(
|
8
10
|
router=get_api_error_info.api_router,
|
9
11
|
prefix="/get_api_error_info",
|
10
12
|
tags=["API Error Info"]
|
11
13
|
)
|
14
|
+
|
15
|
+
# ...
|
@@ -0,0 +1 @@
|
|
1
|
+
# ...
|
@@ -5,10 +5,10 @@ from src.core.util import setup_logging
|
|
5
5
|
_logger = logging.getLogger(__name__)
|
6
6
|
|
7
7
|
|
8
|
-
def
|
8
|
+
def _check_logging():
|
9
9
|
setup_logging()
|
10
10
|
_logger.info("logging is good")
|
11
11
|
|
12
12
|
|
13
13
|
if __name__ == '__main__':
|
14
|
-
|
14
|
+
_check_logging()
|
@@ -2,9 +2,9 @@ from arpakitlib.ar_json_util import safely_transfer_obj_to_json_str
|
|
2
2
|
from src.core.settings import get_cached_settings
|
3
3
|
|
4
4
|
|
5
|
-
def
|
5
|
+
def _check_settings():
|
6
6
|
print(safely_transfer_obj_to_json_str(get_cached_settings().model_dump(mode="json")))
|
7
7
|
|
8
8
|
|
9
9
|
if __name__ == '__main__':
|
10
|
-
|
10
|
+
_check_settings()
|
@@ -5,10 +5,10 @@ from src.core.const import ProjectPaths
|
|
5
5
|
from src.core.settings import Settings, get_cached_settings
|
6
6
|
|
7
7
|
|
8
|
-
def
|
8
|
+
def _generate_settings_env_example():
|
9
9
|
print(safely_transfer_obj_to_json_str(get_cached_settings().model_dump(mode="json")))
|
10
10
|
Settings.save_env_example_to_file(filepath=os.path.join(ProjectPaths.base_dirpath, "example.env"))
|
11
11
|
|
12
12
|
|
13
13
|
if __name__ == '__main__':
|
14
|
-
|
14
|
+
_generate_settings_env_example()
|
@@ -3,6 +3,7 @@ import os
|
|
3
3
|
import pathlib
|
4
4
|
|
5
5
|
from arpakitlib.ar_enumeration_util import Enumeration
|
6
|
+
from arpakitlib.ar_json_util import safely_transfer_obj_to_json_str
|
6
7
|
|
7
8
|
|
8
9
|
class ProjectPaths(Enumeration):
|
@@ -24,18 +25,11 @@ class ProjectPaths(Enumeration):
|
|
24
25
|
static_dirpath: str = os.path.join(resource_dirpath, static_dirname)
|
25
26
|
|
26
27
|
|
28
|
+
# ...
|
29
|
+
|
30
|
+
|
27
31
|
def __example():
|
28
|
-
print(
|
29
|
-
print(f"env_filename: {ProjectPaths.env_filename}")
|
30
|
-
print(f"env_filepath: {ProjectPaths.env_filepath}")
|
31
|
-
print(f"src_dirname: {ProjectPaths.src_dirname}")
|
32
|
-
print(f"src_dirpath: {ProjectPaths.src_dirpath}")
|
33
|
-
print(f"manage_dirname: {ProjectPaths.manage_dirname}")
|
34
|
-
print(f"manage_dirpath: {ProjectPaths.manage_dirpath}")
|
35
|
-
print(f"resource_dirname: {ProjectPaths.resource_dirname}")
|
36
|
-
print(f"resource_dirpath: {ProjectPaths.resource_dirpath}")
|
37
|
-
print(f"static_dirname: {ProjectPaths.static_dirname}")
|
38
|
-
print(f"static_dirpath: {ProjectPaths.static_dirpath}")
|
32
|
+
print(safely_transfer_obj_to_json_str(ProjectPaths.key_to_value()))
|
39
33
|
|
40
34
|
|
41
35
|
async def __async_example():
|
@@ -2,10 +2,10 @@ from src.core.util import setup_logging
|
|
2
2
|
from src.db.util import get_cached_sqlalchemy_db
|
3
3
|
|
4
4
|
|
5
|
-
def
|
5
|
+
def _check_conn_sqlalchemy_db():
|
6
6
|
setup_logging()
|
7
7
|
get_cached_sqlalchemy_db().check_conn()
|
8
8
|
|
9
9
|
|
10
10
|
if __name__ == '__main__':
|
11
|
-
|
11
|
+
_check_conn_sqlalchemy_db()
|
arpakitlib/_arpakit_project_template/src/db/{init_sqlalchemy_db.py → _init_sqlalchemy_db.py}
RENAMED
@@ -2,10 +2,10 @@ from src.core.util import setup_logging
|
|
2
2
|
from src.db.util import get_cached_sqlalchemy_db
|
3
3
|
|
4
4
|
|
5
|
-
def
|
5
|
+
def _init_sqlalchemy_db():
|
6
6
|
setup_logging()
|
7
7
|
get_cached_sqlalchemy_db().init()
|
8
8
|
|
9
9
|
|
10
10
|
if __name__ == '__main__':
|
11
|
-
|
11
|
+
_init_sqlalchemy_db()
|
arpakitlib/_arpakit_project_template/src/db/{reinit_sqlalchemy_db.py → _reinit_sqlalchemy_db.py}
RENAMED
@@ -3,11 +3,11 @@ from src.core.util import setup_logging
|
|
3
3
|
from src.db.util import get_cached_sqlalchemy_db
|
4
4
|
|
5
5
|
|
6
|
-
def
|
6
|
+
def _reinit_sqlalchemy_db():
|
7
7
|
setup_logging()
|
8
|
-
get_cached_settings().
|
8
|
+
get_cached_settings().raise_if_mode_type_prod()
|
9
9
|
get_cached_sqlalchemy_db().reinit()
|
10
10
|
|
11
11
|
|
12
12
|
if __name__ == '__main__':
|
13
|
-
|
13
|
+
_reinit_sqlalchemy_db()
|
@@ -0,0 +1 @@
|
|
1
|
+
# ...
|
@@ -4,7 +4,7 @@ from src.db.util import get_cached_sqlalchemy_db
|
|
4
4
|
from src.operation_execution.operation_executor import OperationExecutor
|
5
5
|
|
6
6
|
|
7
|
-
def
|
7
|
+
def _start_operation_executor_worker():
|
8
8
|
setup_logging()
|
9
9
|
worker = OperationExecutorWorker(
|
10
10
|
sqlalchemy_db=get_cached_sqlalchemy_db(),
|
@@ -14,4 +14,4 @@ def start_operation_executor_worker():
|
|
14
14
|
|
15
15
|
|
16
16
|
if __name__ == '__main__':
|
17
|
-
|
17
|
+
_start_operation_executor_worker()
|
@@ -4,7 +4,7 @@ from src.db.util import get_cached_sqlalchemy_db
|
|
4
4
|
from src.operation_execution.scheduled_operations import SCHEDULED_OPERATIONS
|
5
5
|
|
6
6
|
|
7
|
-
def
|
7
|
+
def _start_scheduled_operation_creator_worker():
|
8
8
|
setup_logging()
|
9
9
|
worker = ScheduledOperationCreatorWorker(
|
10
10
|
sqlalchemy_db=get_cached_sqlalchemy_db(),
|
@@ -14,4 +14,4 @@ def start_scheduled_operation_creator_worker():
|
|
14
14
|
|
15
15
|
|
16
16
|
if __name__ == '__main__':
|
17
|
-
|
17
|
+
_start_scheduled_operation_creator_worker()
|
@@ -3,23 +3,27 @@ from datetime import timedelta, time
|
|
3
3
|
from arpakitlib.ar_operation_execution_util import ScheduledOperation, every_timedelta_is_time_func, \
|
4
4
|
between_different_times_is_time_func
|
5
5
|
from arpakitlib.ar_sqlalchemy_model_util import BaseOperationTypes
|
6
|
+
from src.core.settings import get_cached_settings
|
6
7
|
|
7
8
|
SCHEDULED_OPERATIONS = []
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
)
|
14
|
-
|
10
|
+
if get_cached_settings().is_mode_type_not_prod:
|
11
|
+
healthcheck_1_scheduled_operation = ScheduledOperation(
|
12
|
+
type=BaseOperationTypes.healthcheck_,
|
13
|
+
input_data={"healthcheck_1": "healthcheck_1"},
|
14
|
+
is_time_func=every_timedelta_is_time_func(td=timedelta(seconds=15))
|
15
|
+
)
|
16
|
+
SCHEDULED_OPERATIONS.append(healthcheck_1_scheduled_operation)
|
15
17
|
|
16
18
|
healthcheck_2_scheduled_operation = ScheduledOperation(
|
17
19
|
type=BaseOperationTypes.healthcheck_,
|
18
20
|
input_data={"healthcheck_2": "healthcheck_2"},
|
19
21
|
is_time_func=between_different_times_is_time_func(
|
20
|
-
from_time=time(hour=
|
21
|
-
to_time=time(hour=
|
22
|
+
from_time=time(hour=0, minute=0),
|
23
|
+
to_time=time(hour=0, minute=30)
|
22
24
|
),
|
23
25
|
timeout_after_creation=timedelta(seconds=60)
|
24
26
|
)
|
25
27
|
SCHEDULED_OPERATIONS.append(healthcheck_2_scheduled_operation)
|
28
|
+
|
29
|
+
# ...
|
@@ -0,0 +1 @@
|
|
1
|
+
# ...
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# arpakit
|
2
|
+
|
3
|
+
|
4
|
+
_ARPAKIT_LIB_MODULE_VERSION = "3.0"
|
5
|
+
|
6
|
+
|
7
|
+
class CollectingSubclassesMeta(type):
|
8
|
+
"""
|
9
|
+
Метакласс для автоматического сбора всех наследников в поле ALL_SUBCLASSES.
|
10
|
+
"""
|
11
|
+
|
12
|
+
def __init__(cls, name, bases, dct, **kwargs):
|
13
|
+
super().__init__(name, bases, dct, **kwargs)
|
14
|
+
if not hasattr(cls, "all_subclasses"):
|
15
|
+
cls.all_subclasses = []
|
16
|
+
elif bases:
|
17
|
+
cls.all_subclasses.append(cls)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# arpakit
|
2
2
|
|
3
|
-
from typing import Union, Iterator, Iterable
|
3
|
+
from typing import Union, Iterator, Iterable, Any
|
4
4
|
|
5
5
|
_ARPAKIT_LIB_MODULE_VERSION = "3.0"
|
6
6
|
|
@@ -80,6 +80,24 @@ class Enumeration:
|
|
80
80
|
def print(cls):
|
81
81
|
print(cls.str_for_print())
|
82
82
|
|
83
|
+
@classmethod
|
84
|
+
def key_to_value(cls) -> dict[str, Any]:
|
85
|
+
big_dict = {}
|
86
|
+
for class_ in reversed(cls.mro()):
|
87
|
+
big_dict.update(class_.__dict__)
|
88
|
+
big_dict.update(cls.__dict__)
|
89
|
+
|
90
|
+
result = {}
|
91
|
+
for key, value in big_dict.items():
|
92
|
+
if (
|
93
|
+
isinstance(key, str)
|
94
|
+
and not (key.startswith("__") or key.endswith("__"))
|
95
|
+
and isinstance(value, (str, int))
|
96
|
+
):
|
97
|
+
result[key] = value
|
98
|
+
|
99
|
+
return result
|
100
|
+
|
83
101
|
|
84
102
|
def __example():
|
85
103
|
pass
|
@@ -411,6 +411,7 @@ class ScheduledOperationCreatorWorker(BaseWorker):
|
|
411
411
|
session.add(operation_dbm)
|
412
412
|
session.commit()
|
413
413
|
session.refresh(operation_dbm)
|
414
|
+
self._logger.info(f"scheduled operation (id={operation_dbm.id}) was created")
|
414
415
|
|
415
416
|
if scheduled_operation.timeout_after_creation is not None:
|
416
417
|
if timeout is not None:
|
arpakitlib/ar_settings_util.py
CHANGED
@@ -39,7 +39,7 @@ class SimpleSettings(BaseSettings):
|
|
39
39
|
|
40
40
|
@property
|
41
41
|
def is_mode_type_not_prod(self) -> bool:
|
42
|
-
return self.mode_type ==
|
42
|
+
return self.mode_type == ModeTypes.not_prod
|
43
43
|
|
44
44
|
def raise_if_mode_type_not_prod(self):
|
45
45
|
if self.is_mode_type_not_prod:
|
@@ -47,7 +47,7 @@ class SimpleSettings(BaseSettings):
|
|
47
47
|
|
48
48
|
@property
|
49
49
|
def is_mode_type_prod(self) -> bool:
|
50
|
-
return self.mode_type ==
|
50
|
+
return self.mode_type == ModeTypes.prod
|
51
51
|
|
52
52
|
def raise_if_mode_type_prod(self):
|
53
53
|
if self.is_mode_type_prod:
|
@@ -0,0 +1,101 @@
|
|
1
|
+
# arpakit
|
2
|
+
from sqladmin import ModelView
|
3
|
+
from sqladmin.models import ModelViewMeta
|
4
|
+
|
5
|
+
from arpakitlib.ar_class_util import CollectingSubclassesMeta
|
6
|
+
from arpakitlib.ar_sqlalchemy_model_util import OperationDBM, StoryLogDBM
|
7
|
+
|
8
|
+
_ARPAKIT_LIB_MODULE_VERSION = "3.0"
|
9
|
+
|
10
|
+
|
11
|
+
def create_combined_meta(*metas):
|
12
|
+
"""
|
13
|
+
Создает объединённый метакласс для устранения конфликтов.
|
14
|
+
"""
|
15
|
+
|
16
|
+
class CombinedMeta(*metas):
|
17
|
+
pass
|
18
|
+
|
19
|
+
return CombinedMeta
|
20
|
+
|
21
|
+
|
22
|
+
class SimpleModelView(ModelView, metaclass=create_combined_meta(CollectingSubclassesMeta, ModelViewMeta)):
|
23
|
+
can_create = True
|
24
|
+
can_edit = True
|
25
|
+
can_delete = True
|
26
|
+
can_view_details = True
|
27
|
+
can_export = True
|
28
|
+
page_size = 50
|
29
|
+
page_size_options = [25, 50, 100, 200]
|
30
|
+
save_as = True
|
31
|
+
save_as_continue = True
|
32
|
+
export_types = ["xlsx", "csv", "json"]
|
33
|
+
|
34
|
+
|
35
|
+
class OperationMV(SimpleModelView, model=OperationDBM):
|
36
|
+
name = "Operation"
|
37
|
+
name_plural = "Operations"
|
38
|
+
column_list = [
|
39
|
+
OperationDBM.id,
|
40
|
+
OperationDBM.long_id,
|
41
|
+
OperationDBM.creation_dt,
|
42
|
+
OperationDBM.status,
|
43
|
+
OperationDBM.type,
|
44
|
+
OperationDBM.execution_start_dt,
|
45
|
+
OperationDBM.execution_finish_dt,
|
46
|
+
OperationDBM.input_data,
|
47
|
+
OperationDBM.output_data,
|
48
|
+
OperationDBM.error_data
|
49
|
+
]
|
50
|
+
form_columns = [
|
51
|
+
OperationDBM.status,
|
52
|
+
OperationDBM.type,
|
53
|
+
OperationDBM.execution_start_dt,
|
54
|
+
OperationDBM.execution_finish_dt,
|
55
|
+
OperationDBM.input_data,
|
56
|
+
OperationDBM.output_data,
|
57
|
+
OperationDBM.error_data
|
58
|
+
]
|
59
|
+
column_default_sort = [(OperationDBM.creation_dt, True)]
|
60
|
+
column_searchable_list = [
|
61
|
+
OperationDBM.id,
|
62
|
+
OperationDBM.long_id,
|
63
|
+
OperationDBM.status,
|
64
|
+
OperationDBM.type,
|
65
|
+
]
|
66
|
+
|
67
|
+
|
68
|
+
class StoryLogMV(SimpleModelView, model=StoryLogDBM):
|
69
|
+
name = "Operation"
|
70
|
+
name_plural = "Operations"
|
71
|
+
column_list = [
|
72
|
+
StoryLogDBM.id,
|
73
|
+
StoryLogDBM.long_id,
|
74
|
+
StoryLogDBM.creation_dt,
|
75
|
+
StoryLogDBM.level,
|
76
|
+
StoryLogDBM.title,
|
77
|
+
StoryLogDBM.data
|
78
|
+
]
|
79
|
+
form_columns = [
|
80
|
+
StoryLogDBM.level,
|
81
|
+
StoryLogDBM.title,
|
82
|
+
StoryLogDBM.data
|
83
|
+
]
|
84
|
+
column_default_sort = [(StoryLogDBM.creation_dt, True)]
|
85
|
+
column_searchable_list = [
|
86
|
+
StoryLogDBM.id,
|
87
|
+
StoryLogDBM.long_id,
|
88
|
+
StoryLogDBM.level,
|
89
|
+
StoryLogDBM.title,
|
90
|
+
StoryLogDBM.data
|
91
|
+
]
|
92
|
+
|
93
|
+
|
94
|
+
def __example():
|
95
|
+
print(len(SimpleModelView.all_subclasses))
|
96
|
+
for model_view in SimpleModelView.all_subclasses:
|
97
|
+
print(model_view)
|
98
|
+
|
99
|
+
|
100
|
+
if __name__ == '__main__':
|
101
|
+
__example()
|
@@ -43,13 +43,13 @@ arpakitlib/_arpakit_project_template/manage/poetry_show_arpakitlib.sh,sha256=q2b
|
|
43
43
|
arpakitlib/_arpakit_project_template/manage/poetry_update.sh,sha256=ZtoXIC4Qq7PMTDxQMwUxvkYC6lTc5LC23ILTywWbyoU,164
|
44
44
|
arpakitlib/_arpakit_project_template/manage/poetry_update_arpakitlib.sh,sha256=hh7vj-yKgKqLfaGb8cjsJ_NTa7fBtE4s3yxzte4D8bw,163
|
45
45
|
arpakitlib/_arpakit_project_template/manage/sandbox/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
46
|
-
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_1.py,sha256=
|
47
|
-
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_2.py,sha256=
|
48
|
-
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_3.py,sha256=
|
49
|
-
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_4.py,sha256=
|
50
|
-
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_5.py,sha256=
|
51
|
-
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_6.py,sha256=
|
52
|
-
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_7.py,sha256=
|
46
|
+
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_1.py,sha256=dr5K0bdhF-1PlzJuG5wCYqyJ9KeBoNCz6363ZVnxcsk,159
|
47
|
+
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_2.py,sha256=dr5K0bdhF-1PlzJuG5wCYqyJ9KeBoNCz6363ZVnxcsk,159
|
48
|
+
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_3.py,sha256=dr5K0bdhF-1PlzJuG5wCYqyJ9KeBoNCz6363ZVnxcsk,159
|
49
|
+
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_4.py,sha256=dr5K0bdhF-1PlzJuG5wCYqyJ9KeBoNCz6363ZVnxcsk,159
|
50
|
+
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_5.py,sha256=dr5K0bdhF-1PlzJuG5wCYqyJ9KeBoNCz6363ZVnxcsk,159
|
51
|
+
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_6.py,sha256=dr5K0bdhF-1PlzJuG5wCYqyJ9KeBoNCz6363ZVnxcsk,159
|
52
|
+
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_7.py,sha256=dr5K0bdhF-1PlzJuG5wCYqyJ9KeBoNCz6363ZVnxcsk,159
|
53
53
|
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_8.sh,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
54
54
|
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_9.sh,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
55
55
|
arpakitlib/_arpakit_project_template/resource/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -58,12 +58,14 @@ arpakitlib/_arpakit_project_template/resource/static/healthcheck,sha256=IIO7Wvjw
|
|
58
58
|
arpakitlib/_arpakit_project_template/resource/static/helloworld,sha256=eH7Hbcr9IMGQjrCTahL5Ht0QWrXNfswrGuIDJkg0Xf8,11
|
59
59
|
arpakitlib/_arpakit_project_template/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
60
60
|
arpakitlib/_arpakit_project_template/src/additional_model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
61
|
-
arpakitlib/_arpakit_project_template/src/additional_model/additional_model.py,sha256=
|
61
|
+
arpakitlib/_arpakit_project_template/src/additional_model/additional_model.py,sha256=rCjK4hbog2kF-37SGHet0mrSjGXrAi1LxCgLT1IzzW8,141
|
62
62
|
arpakitlib/_arpakit_project_template/src/admin1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
63
|
-
arpakitlib/_arpakit_project_template/src/admin1/add_admin_in_app.py,sha256=
|
63
|
+
arpakitlib/_arpakit_project_template/src/admin1/add_admin_in_app.py,sha256=7zF-9Xa15bAbzqRQD18hAbzUQTflASoTjVProcdGWTM,922
|
64
64
|
arpakitlib/_arpakit_project_template/src/admin1/admin_auth.py,sha256=qEC7gMy9E6mwuQRxnSsmVthXahVai4zjiC6Z8O3MZn8,804
|
65
|
-
arpakitlib/_arpakit_project_template/src/admin1/model_view.py,sha256=
|
65
|
+
arpakitlib/_arpakit_project_template/src/admin1/model_view.py,sha256=dcvj5C9E2F2KCsGZPBBncQf_EvVJAC1qQgnyD8P4ZEw,6
|
66
66
|
arpakitlib/_arpakit_project_template/src/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
67
|
+
arpakitlib/_arpakit_project_template/src/api/_start_api_with_reload.py,sha256=3IjlhcleK2JoG-rYDHxVKpJA8uq4dTW_-_lbgPXsufI,333
|
68
|
+
arpakitlib/_arpakit_project_template/src/api/_start_api_without_reload.py,sha256=SRU3vahgxvVAzb8nIRDspXusK8_SS5QGblJE824Y12s,340
|
67
69
|
arpakitlib/_arpakit_project_template/src/api/asgi.py,sha256=a5UBxOyNC8NG3E0ayhiDo3t5tPoB3WtOf2gbZJFWBAA,74
|
68
70
|
arpakitlib/_arpakit_project_template/src/api/auth.py,sha256=dcvj5C9E2F2KCsGZPBBncQf_EvVJAC1qQgnyD8P4ZEw,6
|
69
71
|
arpakitlib/_arpakit_project_template/src/api/const.py,sha256=7d4qD5hedqr7QxVzbfsA7E1bNZn2Pm2U8joXGtpANu0,287
|
@@ -72,52 +74,50 @@ arpakitlib/_arpakit_project_template/src/api/event.py,sha256=Jd1eWUpPzGSg-wBIsCh
|
|
72
74
|
arpakitlib/_arpakit_project_template/src/api/router/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
73
75
|
arpakitlib/_arpakit_project_template/src/api/router/main_router.py,sha256=Yv699WCJDcdiJMXFg1kPTvolqj-NAGoXfqe-vzbMzIU,228
|
74
76
|
arpakitlib/_arpakit_project_template/src/api/router/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
75
|
-
arpakitlib/_arpakit_project_template/src/api/router/v1/get_api_error_info.py,sha256=
|
76
|
-
arpakitlib/_arpakit_project_template/src/api/router/v1/main_router.py,sha256=
|
77
|
+
arpakitlib/_arpakit_project_template/src/api/router/v1/get_api_error_info.py,sha256=FetRdIytQFOFlpo310jYEtrQSQm-SJ_6FOXB1Gbeq04,875
|
78
|
+
arpakitlib/_arpakit_project_template/src/api/router/v1/main_router.py,sha256=QG-uAwxvFAWoY1g6U0wOBz-X4jmKnpVp1R904PPIp9E,281
|
77
79
|
arpakitlib/_arpakit_project_template/src/api/schema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
78
80
|
arpakitlib/_arpakit_project_template/src/api/schema/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
79
|
-
arpakitlib/_arpakit_project_template/src/api/schema/v1/in_.py,sha256=
|
80
|
-
arpakitlib/_arpakit_project_template/src/api/schema/v1/out.py,sha256=
|
81
|
-
arpakitlib/_arpakit_project_template/src/api/
|
82
|
-
arpakitlib/_arpakit_project_template/src/api/start_api_without_reload.py,sha256=kHqVwznAbtgvsVmg3Y5rCzYcQ3KvF3hqJsTcmAAW_3Y,342
|
83
|
-
arpakitlib/_arpakit_project_template/src/api/transmitted_api_data.py,sha256=fEWpfjnIrGluDrjgbsJwucQoiXKTP1cUYYORTFKdOJY,531
|
81
|
+
arpakitlib/_arpakit_project_template/src/api/schema/v1/in_.py,sha256=dcvj5C9E2F2KCsGZPBBncQf_EvVJAC1qQgnyD8P4ZEw,6
|
82
|
+
arpakitlib/_arpakit_project_template/src/api/schema/v1/out.py,sha256=zeHXIoRZYl4TlXEUKv1GMFYFmlNPVZ9jdMTJs3ZmBIk,171
|
83
|
+
arpakitlib/_arpakit_project_template/src/api/transmitted_api_data.py,sha256=T17h65JMwfFqHTQRKcUUfwtm4NmlGAvs5wUZr0m0zks,542
|
84
84
|
arpakitlib/_arpakit_project_template/src/api/util.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
85
85
|
arpakitlib/_arpakit_project_template/src/business_service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
86
86
|
arpakitlib/_arpakit_project_template/src/business_service/hello_world.py,sha256=mEVxsTFsd5u_T88l4mtCfoPre9QixAmQvzQmM2J8Okc,247
|
87
87
|
arpakitlib/_arpakit_project_template/src/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
88
|
-
arpakitlib/_arpakit_project_template/src/core/
|
89
|
-
arpakitlib/_arpakit_project_template/src/core/
|
90
|
-
arpakitlib/_arpakit_project_template/src/core/
|
91
|
-
arpakitlib/_arpakit_project_template/src/core/
|
88
|
+
arpakitlib/_arpakit_project_template/src/core/_check_logging.py,sha256=APQp8jQa3vQwuEt6nayPdu6GmCPHvVdAvv63RaCdHTs,225
|
89
|
+
arpakitlib/_arpakit_project_template/src/core/_check_settings.py,sha256=BQUcr-yj3cxz5GQo0jXe99wMoqHKrrrKD3-UovsJAt0,284
|
90
|
+
arpakitlib/_arpakit_project_template/src/core/_generate_settings_env_example.py,sha256=SiEJe8AYQPOWicsaCwf9RdXp6UAmfkBdBT18AAInGb4,483
|
91
|
+
arpakitlib/_arpakit_project_template/src/core/const.py,sha256=e2Y0NIQHfzm3bmnbQnGy3Z5YKt6OYnIsRoqVY8oIV2E,1008
|
92
92
|
arpakitlib/_arpakit_project_template/src/core/settings.py,sha256=Sie05LqTfxBOqnYz8trM3sAQdfYAJSQ2Xv4Xwt0aJbI,2348
|
93
|
-
arpakitlib/_arpakit_project_template/src/core/util.py,sha256=
|
93
|
+
arpakitlib/_arpakit_project_template/src/core/util.py,sha256=mcikqcjljZa2qhYeoR1tR9JUSprrVSod8XcIK_PqS6o,1547
|
94
94
|
arpakitlib/_arpakit_project_template/src/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
95
|
-
arpakitlib/_arpakit_project_template/src/db/
|
96
|
-
arpakitlib/_arpakit_project_template/src/db/
|
97
|
-
arpakitlib/_arpakit_project_template/src/db/
|
98
|
-
arpakitlib/_arpakit_project_template/src/db/
|
95
|
+
arpakitlib/_arpakit_project_template/src/db/_check_conn_sqlalchemy_db.py,sha256=GPK7-w7x8ESqbZ0v1nI8m_ysWfnmjgRwyyh6kM8vYBQ,249
|
96
|
+
arpakitlib/_arpakit_project_template/src/db/_init_sqlalchemy_db.py,sha256=tHJ1NBUAR-9uAktx2RfPikzGGguhwEWfrWdj1y0XV-w,231
|
97
|
+
arpakitlib/_arpakit_project_template/src/db/_reinit_sqlalchemy_db.py,sha256=_4O_xr6FXt3qcWOmO82CKG3XX6_RqbqaOYSEygxpBfA,339
|
98
|
+
arpakitlib/_arpakit_project_template/src/db/const.py,sha256=dcvj5C9E2F2KCsGZPBBncQf_EvVJAC1qQgnyD8P4ZEw,6
|
99
99
|
arpakitlib/_arpakit_project_template/src/db/sqlalchemy_model.py,sha256=nXtayUkBaVb6tWx5qJgXZLbLOTVAjnSLpSDxBm7yZLc,234
|
100
|
-
arpakitlib/_arpakit_project_template/src/db/util.py,sha256=
|
100
|
+
arpakitlib/_arpakit_project_template/src/db/util.py,sha256=a8lj54I-vVGjhDg4SLOxahDjYuiPOSFxU86myCfE1M0,557
|
101
101
|
arpakitlib/_arpakit_project_template/src/operation_execution/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
102
|
+
arpakitlib/_arpakit_project_template/src/operation_execution/_start_operation_executor_worker.py,sha256=K861UI9LFNxfCoPpQ5AJX-oUwjB6bfFNKScKsyU9Xd8,575
|
103
|
+
arpakitlib/_arpakit_project_template/src/operation_execution/_start_scheduled_operation_creator_worker.py,sha256=i6bKSrdCElclkVWMQrIdwDtOCiy8YvrL5OTMNpQ3drE,577
|
102
104
|
arpakitlib/_arpakit_project_template/src/operation_execution/const.py,sha256=HjupGEDUWVijQlbzxZPI9vBbAVOETUYzYU9pdnc9IcI,176
|
103
105
|
arpakitlib/_arpakit_project_template/src/operation_execution/operation_executor.py,sha256=TuAlF3QPJq-Zsq693NHQ00dvCWAzuwce2q6ozesWFYY,725
|
104
|
-
arpakitlib/_arpakit_project_template/src/operation_execution/scheduled_operations.py,sha256=
|
105
|
-
arpakitlib/_arpakit_project_template/src/operation_execution/
|
106
|
-
arpakitlib/_arpakit_project_template/src/operation_execution/start_scheduled_operation_creator_worker.py,sha256=cvk3vciWYfeOPJJQiDh66WyiNXwA5vm2eGeUsqWo93k,575
|
107
|
-
arpakitlib/_arpakit_project_template/src/operation_execution/util.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
106
|
+
arpakitlib/_arpakit_project_template/src/operation_execution/scheduled_operations.py,sha256=DwEzbsQtO_7mSah25uOoV7IrlsMNEIU2j2gA-MGqUMQ,1100
|
107
|
+
arpakitlib/_arpakit_project_template/src/operation_execution/util.py,sha256=dcvj5C9E2F2KCsGZPBBncQf_EvVJAC1qQgnyD8P4ZEw,6
|
108
108
|
arpakitlib/_arpakit_project_template/src/test_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
109
|
-
arpakitlib/_arpakit_project_template/src/test_data/make_test_data_1.py,sha256=
|
110
|
-
arpakitlib/_arpakit_project_template/src/test_data/make_test_data_2.py,sha256=
|
111
|
-
arpakitlib/_arpakit_project_template/src/test_data/make_test_data_3.py,sha256=
|
112
|
-
arpakitlib/_arpakit_project_template/src/test_data/make_test_data_4.py,sha256=
|
113
|
-
arpakitlib/_arpakit_project_template/src/test_data/make_test_data_5.py,sha256=
|
109
|
+
arpakitlib/_arpakit_project_template/src/test_data/make_test_data_1.py,sha256=w24o2vrlqaoCfPYftWogHCV8MoUjqctwLTI3-tFlgf4,100
|
110
|
+
arpakitlib/_arpakit_project_template/src/test_data/make_test_data_2.py,sha256=bhriAB1GtC2dPWb0lltj145EhotgE6X1I7O8WnJmOyk,100
|
111
|
+
arpakitlib/_arpakit_project_template/src/test_data/make_test_data_3.py,sha256=t51BUgjQl59NofTQkOK_keHSMOuow3OePShsdhRSg8c,100
|
112
|
+
arpakitlib/_arpakit_project_template/src/test_data/make_test_data_4.py,sha256=t1iYFim7v9NNR7Y10rUVRMVyq76Pdc82d5tQKpNlUFI,100
|
113
|
+
arpakitlib/_arpakit_project_template/src/test_data/make_test_data_5.py,sha256=ptptUxpEa7sX7coToAYZHvy8oxXXQExxS1zqng5ET2I,100
|
114
114
|
arpakitlib/_arpakit_project_template/src/tg_bot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
115
115
|
arpakitlib/_arpakit_project_template/src/tg_bot/router/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
116
116
|
arpakitlib/_arpakit_project_template/src/tg_bot/start_tg_bot.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
117
117
|
arpakitlib/_arpakit_project_template/src/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
118
|
-
arpakitlib/api_key_util.py,sha256=E84JlJXiDHtxLQmV8BNHvqNKu_G8-Dox0XxknYJQ37Q,422
|
119
118
|
arpakitlib/ar_additional_model_util.py,sha256=GFg-glLCxH9X95R2bhTJsscVwv37FgE1qbaAAyXrnIE,917
|
120
119
|
arpakitlib/ar_aiogram_util.py,sha256=5JPCDZpdBGTE-EIWPRez9amCZAX7XemFIVu5YrQK7Pw,12264
|
120
|
+
arpakitlib/ar_api_key_util.py,sha256=E84JlJXiDHtxLQmV8BNHvqNKu_G8-Dox0XxknYJQ37Q,422
|
121
121
|
arpakitlib/ar_arpakit_lib_module_util.py,sha256=UEPU8wk29R_bBP_RENnhXYzNbj_RF9FWjowrj_yxWLA,5931
|
122
122
|
arpakitlib/ar_arpakit_project_template_util.py,sha256=c7yc8w2IvZGH5hH8eOpL7JuD005hUxZ0GVDcSkJF5iI,3705
|
123
123
|
arpakitlib/ar_arpakit_schedule_uust_api_client_util.py,sha256=jGbP6egs2yhgfheyqhM0J-SeM2qp2YrW7dV-u9djv4Q,19223
|
@@ -125,11 +125,12 @@ arpakitlib/ar_arpakitlib_cli_util.py,sha256=8lhEDxnwMSRX2PGV2xQtQru1AYKSA92SVolo
|
|
125
125
|
arpakitlib/ar_base64_util.py,sha256=aZkg2cZTuAaP2IWeG_LXJ6RO7qhyskVwec-Lks0iM-k,676
|
126
126
|
arpakitlib/ar_base_worker_util.py,sha256=Qm_C7PFH5W-LPu1AGX1zp29zbqZ04i71Su1U-eeQBkA,5674
|
127
127
|
arpakitlib/ar_cache_file_util.py,sha256=Fo2pH-Zqm966KWFBHG_pbiySGZvhIFCYqy7k1weRfJ0,3476
|
128
|
+
arpakitlib/ar_class_util.py,sha256=Eb4orGm2EFSaHfmrY2A_Nis5iwFMDKFaz1_nxTnfmnQ,487
|
128
129
|
arpakitlib/ar_datetime_util.py,sha256=Xe1NiT9oPQzNSG7RVRkhukhbg4i-hhS5ImmV7sPUc8o,971
|
129
130
|
arpakitlib/ar_dict_util.py,sha256=cF5LQJ6tLqyGoEXfDljMDZrikeZoWPw7CgINHIFGvXM,419
|
130
131
|
arpakitlib/ar_dream_ai_api_client_util.py,sha256=QF9XK7xK5ny1fvkcG4e0pfCySNNFRNPy0x0cmxfsAak,2818
|
131
132
|
arpakitlib/ar_encrypt_decrypt_util.py,sha256=GhWnp7HHkbhwFVVCzO1H07m-5gryr4yjWsXjOaNQm1Y,520
|
132
|
-
arpakitlib/ar_enumeration_util.py,sha256=
|
133
|
+
arpakitlib/ar_enumeration_util.py,sha256=ZOkH1-duDcjQelJrdJ-nJ8h7wePFAgmpg_8e63Cyp0E,3072
|
133
134
|
arpakitlib/ar_exception_util.py,sha256=3hZKsj34TZVdmd4JAQz7w515smWqB8o3gTwAEjuMdnI,408
|
134
135
|
arpakitlib/ar_fastapi_static/healthcheck,sha256=IIO7Wvjwlr2-LPSQ7Y8O35hcI6t0_s8zqITDxkYCO8I,11
|
135
136
|
arpakitlib/ar_fastapi_static/redoc/redoc.standalone.js,sha256=WCuodUNv1qVh0oW5fjnJDwb5AwOue73jKHdI9z8iGKU,909365
|
@@ -167,13 +168,14 @@ arpakitlib/ar_logging_util.py,sha256=mx3H6CzX9dsh29ruFmYnva8lL6mwvdBXmeHH9E2tvu8
|
|
167
168
|
arpakitlib/ar_mongodb_util.py,sha256=2ECkTnGAZ92qxioL-fmN6R4yZOSr3bXdXLWTzT1C3vk,4038
|
168
169
|
arpakitlib/ar_need_type_util.py,sha256=GETiREPMEYhch-yU6T--Bdawlbb04Jp1Qy7cOsUlIeA,2228
|
169
170
|
arpakitlib/ar_openai_api_client_util.py,sha256=_XmlApvHFMSyjvZydPa_kASIt9LsFrZmSC7YEzIG8Bg,1806
|
170
|
-
arpakitlib/ar_operation_execution_util.py,sha256=
|
171
|
+
arpakitlib/ar_operation_execution_util.py,sha256=uWLDJWYbfsYItUQ48qOSWy4qxCTCFMjElWEXswKtaWk,17617
|
171
172
|
arpakitlib/ar_parse_command.py,sha256=-s61xcATIsfw1eV_iD3xi-grsitbGzSDoAFc5V0OFy4,3447
|
172
173
|
arpakitlib/ar_postgresql_util.py,sha256=1AuLjEaa1Lg4pzn-ukCVnDi35Eg1k91APRTqZhIJAdo,945
|
173
174
|
arpakitlib/ar_run_cmd_util.py,sha256=D_rPavKMmWkQtwvZFz-Io5Ak8eSODHkcFeLPzNVC68g,1072
|
174
175
|
arpakitlib/ar_schedule_uust_api_client_util.py,sha256=0Ns0mMEXYEkVmP6YTAXHyNcrhNsvCJ8X-G_5XwILhJ4,6855
|
175
|
-
arpakitlib/ar_settings_util.py,sha256=
|
176
|
+
arpakitlib/ar_settings_util.py,sha256=752EDXXnrA1uUbSD4InCHCZWEodLBwVUHrgOdOD2Xhw,1856
|
176
177
|
arpakitlib/ar_sleep_util.py,sha256=OaLtRaJQWMkGjfj_mW1RB2P4RaSWsAIH8LUoXqsH0zM,1061
|
178
|
+
arpakitlib/ar_sqladmin_util.py,sha256=vQTRlf36VjW6l_zslZmjkHinMVuQfI-QZsXIlnXUpgE,2634
|
177
179
|
arpakitlib/ar_sqlalchemy_model_util.py,sha256=nKJGN32eg3Gn5kmJwHdVJznPT5TydLsfUfwJGdypdUo,6264
|
178
180
|
arpakitlib/ar_sqlalchemy_util.py,sha256=Hcg1THrDsSR_-8dsY1CG3NWPEv0FqCbkPXFXLtjlSJ0,4207
|
179
181
|
arpakitlib/ar_ssh_runner_util.py,sha256=e9deuUdBW7Eh0Exx2nTBhk57SaOZYaJaSjNk8q6dbJk,6804
|
@@ -181,8 +183,8 @@ arpakitlib/ar_str_util.py,sha256=yU5gOwNXUQaH5b_tM5t6fXUn9oUcv5EQbVnq2wXXIpQ,337
|
|
181
183
|
arpakitlib/ar_type_util.py,sha256=9C3ErtUVs0tAUqtK-foFzjJOykfBOntfCz2IogDOgfA,4134
|
182
184
|
arpakitlib/ar_yookassa_api_client_util.py,sha256=sh4fcUkAkdOetFn9JYoTvjcSXP-M1wU04KEY-ECLfLg,5137
|
183
185
|
arpakitlib/ar_zabbix_api_client_util.py,sha256=Q-VR4MvoZ9aHwZeYZr9G3LwN-ANx1T5KFmF6pvPM-9M,6402
|
184
|
-
arpakitlib-1.7.
|
185
|
-
arpakitlib-1.7.
|
186
|
-
arpakitlib-1.7.
|
187
|
-
arpakitlib-1.7.
|
188
|
-
arpakitlib-1.7.
|
186
|
+
arpakitlib-1.7.206.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
|
187
|
+
arpakitlib-1.7.206.dist-info/METADATA,sha256=MwALBdVyl8K4gLJ9C-_MruUGQ1Caln_f7eJOPIthOXw,3176
|
188
|
+
arpakitlib-1.7.206.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
189
|
+
arpakitlib-1.7.206.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
|
190
|
+
arpakitlib-1.7.206.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|