arpakitlib 1.7.136__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.136.dist-info → arpakitlib-1.7.206.dist-info}/METADATA +1 -1
- {arpakitlib-1.7.136.dist-info → arpakitlib-1.7.206.dist-info}/RECORD +47 -47
- arpakitlib/_arpakit_project_template/NOTICE +0 -16
- arpakitlib-1.7.136.dist-info/NOTICE +0 -16
- /arpakitlib/{api_key_util.py → ar_api_key_util.py} +0 -0
- {arpakitlib-1.7.136.dist-info → arpakitlib-1.7.206.dist-info}/LICENSE +0 -0
- {arpakitlib-1.7.136.dist-info → arpakitlib-1.7.206.dist-info}/WHEEL +0 -0
- {arpakitlib-1.7.136.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()
|
@@ -3,7 +3,6 @@ arpakitlib/_arpakit_project_template/.gitignore,sha256=Q8n7q3-hKsnFVN5NcACPs71Z9
|
|
3
3
|
arpakitlib/_arpakit_project_template/.python-version,sha256=XMd40XBnlTFfBSmMldd-7VdqXNyFCy6wtxhw5e1mnhc,7
|
4
4
|
arpakitlib/_arpakit_project_template/ARPAKITLIB,sha256=3-iAkMXtesLzJXHw_IIv2k2M0oH8cTjHzW22Vvbi0IE,4
|
5
5
|
arpakitlib/_arpakit_project_template/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
|
6
|
-
arpakitlib/_arpakit_project_template/NOTICE,sha256=95aUzaPJjVpDsGAsNzVnq7tHTxAl0s5UFznCTkVCau4,763
|
7
6
|
arpakitlib/_arpakit_project_template/README.md,sha256=AwqCtmMeywF2dJhZbKwCBA_wPnLF_VmoLGfPbFjH3bM,62
|
8
7
|
arpakitlib/_arpakit_project_template/example.env,sha256=dJC2sjtywxm6ChP5jtIicGaaPvhI0NMNIhMmScg69b8,558
|
9
8
|
arpakitlib/_arpakit_project_template/manage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -44,13 +43,13 @@ arpakitlib/_arpakit_project_template/manage/poetry_show_arpakitlib.sh,sha256=q2b
|
|
44
43
|
arpakitlib/_arpakit_project_template/manage/poetry_update.sh,sha256=ZtoXIC4Qq7PMTDxQMwUxvkYC6lTc5LC23ILTywWbyoU,164
|
45
44
|
arpakitlib/_arpakit_project_template/manage/poetry_update_arpakitlib.sh,sha256=hh7vj-yKgKqLfaGb8cjsJ_NTa7fBtE4s3yxzte4D8bw,163
|
46
45
|
arpakitlib/_arpakit_project_template/manage/sandbox/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
47
|
-
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_1.py,sha256=
|
48
|
-
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_2.py,sha256=
|
49
|
-
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_3.py,sha256=
|
50
|
-
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_4.py,sha256=
|
51
|
-
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_5.py,sha256=
|
52
|
-
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_6.py,sha256=
|
53
|
-
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
|
54
53
|
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_8.sh,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
55
54
|
arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_9.sh,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
56
55
|
arpakitlib/_arpakit_project_template/resource/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -59,12 +58,14 @@ arpakitlib/_arpakit_project_template/resource/static/healthcheck,sha256=IIO7Wvjw
|
|
59
58
|
arpakitlib/_arpakit_project_template/resource/static/helloworld,sha256=eH7Hbcr9IMGQjrCTahL5Ht0QWrXNfswrGuIDJkg0Xf8,11
|
60
59
|
arpakitlib/_arpakit_project_template/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
61
60
|
arpakitlib/_arpakit_project_template/src/additional_model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
62
|
-
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
|
63
62
|
arpakitlib/_arpakit_project_template/src/admin1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
64
|
-
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
|
65
64
|
arpakitlib/_arpakit_project_template/src/admin1/admin_auth.py,sha256=qEC7gMy9E6mwuQRxnSsmVthXahVai4zjiC6Z8O3MZn8,804
|
66
|
-
arpakitlib/_arpakit_project_template/src/admin1/model_view.py,sha256=
|
65
|
+
arpakitlib/_arpakit_project_template/src/admin1/model_view.py,sha256=dcvj5C9E2F2KCsGZPBBncQf_EvVJAC1qQgnyD8P4ZEw,6
|
67
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
|
68
69
|
arpakitlib/_arpakit_project_template/src/api/asgi.py,sha256=a5UBxOyNC8NG3E0ayhiDo3t5tPoB3WtOf2gbZJFWBAA,74
|
69
70
|
arpakitlib/_arpakit_project_template/src/api/auth.py,sha256=dcvj5C9E2F2KCsGZPBBncQf_EvVJAC1qQgnyD8P4ZEw,6
|
70
71
|
arpakitlib/_arpakit_project_template/src/api/const.py,sha256=7d4qD5hedqr7QxVzbfsA7E1bNZn2Pm2U8joXGtpANu0,287
|
@@ -73,52 +74,50 @@ arpakitlib/_arpakit_project_template/src/api/event.py,sha256=Jd1eWUpPzGSg-wBIsCh
|
|
73
74
|
arpakitlib/_arpakit_project_template/src/api/router/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
74
75
|
arpakitlib/_arpakit_project_template/src/api/router/main_router.py,sha256=Yv699WCJDcdiJMXFg1kPTvolqj-NAGoXfqe-vzbMzIU,228
|
75
76
|
arpakitlib/_arpakit_project_template/src/api/router/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
76
|
-
arpakitlib/_arpakit_project_template/src/api/router/v1/get_api_error_info.py,sha256=
|
77
|
-
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
|
78
79
|
arpakitlib/_arpakit_project_template/src/api/schema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
79
80
|
arpakitlib/_arpakit_project_template/src/api/schema/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
80
|
-
arpakitlib/_arpakit_project_template/src/api/schema/v1/in_.py,sha256=
|
81
|
-
arpakitlib/_arpakit_project_template/src/api/schema/v1/out.py,sha256=
|
82
|
-
arpakitlib/_arpakit_project_template/src/api/
|
83
|
-
arpakitlib/_arpakit_project_template/src/api/start_api_without_reload.py,sha256=kHqVwznAbtgvsVmg3Y5rCzYcQ3KvF3hqJsTcmAAW_3Y,342
|
84
|
-
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
|
85
84
|
arpakitlib/_arpakit_project_template/src/api/util.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
86
85
|
arpakitlib/_arpakit_project_template/src/business_service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
87
86
|
arpakitlib/_arpakit_project_template/src/business_service/hello_world.py,sha256=mEVxsTFsd5u_T88l4mtCfoPre9QixAmQvzQmM2J8Okc,247
|
88
87
|
arpakitlib/_arpakit_project_template/src/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
89
|
-
arpakitlib/_arpakit_project_template/src/core/
|
90
|
-
arpakitlib/_arpakit_project_template/src/core/
|
91
|
-
arpakitlib/_arpakit_project_template/src/core/
|
92
|
-
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
|
93
92
|
arpakitlib/_arpakit_project_template/src/core/settings.py,sha256=Sie05LqTfxBOqnYz8trM3sAQdfYAJSQ2Xv4Xwt0aJbI,2348
|
94
|
-
arpakitlib/_arpakit_project_template/src/core/util.py,sha256=
|
93
|
+
arpakitlib/_arpakit_project_template/src/core/util.py,sha256=mcikqcjljZa2qhYeoR1tR9JUSprrVSod8XcIK_PqS6o,1547
|
95
94
|
arpakitlib/_arpakit_project_template/src/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
96
|
-
arpakitlib/_arpakit_project_template/src/db/
|
97
|
-
arpakitlib/_arpakit_project_template/src/db/
|
98
|
-
arpakitlib/_arpakit_project_template/src/db/
|
99
|
-
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
|
100
99
|
arpakitlib/_arpakit_project_template/src/db/sqlalchemy_model.py,sha256=nXtayUkBaVb6tWx5qJgXZLbLOTVAjnSLpSDxBm7yZLc,234
|
101
|
-
arpakitlib/_arpakit_project_template/src/db/util.py,sha256=
|
100
|
+
arpakitlib/_arpakit_project_template/src/db/util.py,sha256=a8lj54I-vVGjhDg4SLOxahDjYuiPOSFxU86myCfE1M0,557
|
102
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
|
103
104
|
arpakitlib/_arpakit_project_template/src/operation_execution/const.py,sha256=HjupGEDUWVijQlbzxZPI9vBbAVOETUYzYU9pdnc9IcI,176
|
104
105
|
arpakitlib/_arpakit_project_template/src/operation_execution/operation_executor.py,sha256=TuAlF3QPJq-Zsq693NHQ00dvCWAzuwce2q6ozesWFYY,725
|
105
|
-
arpakitlib/_arpakit_project_template/src/operation_execution/scheduled_operations.py,sha256=
|
106
|
-
arpakitlib/_arpakit_project_template/src/operation_execution/
|
107
|
-
arpakitlib/_arpakit_project_template/src/operation_execution/start_scheduled_operation_creator_worker.py,sha256=cvk3vciWYfeOPJJQiDh66WyiNXwA5vm2eGeUsqWo93k,575
|
108
|
-
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
|
109
108
|
arpakitlib/_arpakit_project_template/src/test_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
110
|
-
arpakitlib/_arpakit_project_template/src/test_data/make_test_data_1.py,sha256=
|
111
|
-
arpakitlib/_arpakit_project_template/src/test_data/make_test_data_2.py,sha256=
|
112
|
-
arpakitlib/_arpakit_project_template/src/test_data/make_test_data_3.py,sha256=
|
113
|
-
arpakitlib/_arpakit_project_template/src/test_data/make_test_data_4.py,sha256=
|
114
|
-
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
|
115
114
|
arpakitlib/_arpakit_project_template/src/tg_bot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
116
115
|
arpakitlib/_arpakit_project_template/src/tg_bot/router/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
117
116
|
arpakitlib/_arpakit_project_template/src/tg_bot/start_tg_bot.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
118
117
|
arpakitlib/_arpakit_project_template/src/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
119
|
-
arpakitlib/api_key_util.py,sha256=E84JlJXiDHtxLQmV8BNHvqNKu_G8-Dox0XxknYJQ37Q,422
|
120
118
|
arpakitlib/ar_additional_model_util.py,sha256=GFg-glLCxH9X95R2bhTJsscVwv37FgE1qbaAAyXrnIE,917
|
121
119
|
arpakitlib/ar_aiogram_util.py,sha256=5JPCDZpdBGTE-EIWPRez9amCZAX7XemFIVu5YrQK7Pw,12264
|
120
|
+
arpakitlib/ar_api_key_util.py,sha256=E84JlJXiDHtxLQmV8BNHvqNKu_G8-Dox0XxknYJQ37Q,422
|
122
121
|
arpakitlib/ar_arpakit_lib_module_util.py,sha256=UEPU8wk29R_bBP_RENnhXYzNbj_RF9FWjowrj_yxWLA,5931
|
123
122
|
arpakitlib/ar_arpakit_project_template_util.py,sha256=c7yc8w2IvZGH5hH8eOpL7JuD005hUxZ0GVDcSkJF5iI,3705
|
124
123
|
arpakitlib/ar_arpakit_schedule_uust_api_client_util.py,sha256=jGbP6egs2yhgfheyqhM0J-SeM2qp2YrW7dV-u9djv4Q,19223
|
@@ -126,11 +125,12 @@ arpakitlib/ar_arpakitlib_cli_util.py,sha256=8lhEDxnwMSRX2PGV2xQtQru1AYKSA92SVolo
|
|
126
125
|
arpakitlib/ar_base64_util.py,sha256=aZkg2cZTuAaP2IWeG_LXJ6RO7qhyskVwec-Lks0iM-k,676
|
127
126
|
arpakitlib/ar_base_worker_util.py,sha256=Qm_C7PFH5W-LPu1AGX1zp29zbqZ04i71Su1U-eeQBkA,5674
|
128
127
|
arpakitlib/ar_cache_file_util.py,sha256=Fo2pH-Zqm966KWFBHG_pbiySGZvhIFCYqy7k1weRfJ0,3476
|
128
|
+
arpakitlib/ar_class_util.py,sha256=Eb4orGm2EFSaHfmrY2A_Nis5iwFMDKFaz1_nxTnfmnQ,487
|
129
129
|
arpakitlib/ar_datetime_util.py,sha256=Xe1NiT9oPQzNSG7RVRkhukhbg4i-hhS5ImmV7sPUc8o,971
|
130
130
|
arpakitlib/ar_dict_util.py,sha256=cF5LQJ6tLqyGoEXfDljMDZrikeZoWPw7CgINHIFGvXM,419
|
131
131
|
arpakitlib/ar_dream_ai_api_client_util.py,sha256=QF9XK7xK5ny1fvkcG4e0pfCySNNFRNPy0x0cmxfsAak,2818
|
132
132
|
arpakitlib/ar_encrypt_decrypt_util.py,sha256=GhWnp7HHkbhwFVVCzO1H07m-5gryr4yjWsXjOaNQm1Y,520
|
133
|
-
arpakitlib/ar_enumeration_util.py,sha256=
|
133
|
+
arpakitlib/ar_enumeration_util.py,sha256=ZOkH1-duDcjQelJrdJ-nJ8h7wePFAgmpg_8e63Cyp0E,3072
|
134
134
|
arpakitlib/ar_exception_util.py,sha256=3hZKsj34TZVdmd4JAQz7w515smWqB8o3gTwAEjuMdnI,408
|
135
135
|
arpakitlib/ar_fastapi_static/healthcheck,sha256=IIO7Wvjwlr2-LPSQ7Y8O35hcI6t0_s8zqITDxkYCO8I,11
|
136
136
|
arpakitlib/ar_fastapi_static/redoc/redoc.standalone.js,sha256=WCuodUNv1qVh0oW5fjnJDwb5AwOue73jKHdI9z8iGKU,909365
|
@@ -168,13 +168,14 @@ arpakitlib/ar_logging_util.py,sha256=mx3H6CzX9dsh29ruFmYnva8lL6mwvdBXmeHH9E2tvu8
|
|
168
168
|
arpakitlib/ar_mongodb_util.py,sha256=2ECkTnGAZ92qxioL-fmN6R4yZOSr3bXdXLWTzT1C3vk,4038
|
169
169
|
arpakitlib/ar_need_type_util.py,sha256=GETiREPMEYhch-yU6T--Bdawlbb04Jp1Qy7cOsUlIeA,2228
|
170
170
|
arpakitlib/ar_openai_api_client_util.py,sha256=_XmlApvHFMSyjvZydPa_kASIt9LsFrZmSC7YEzIG8Bg,1806
|
171
|
-
arpakitlib/ar_operation_execution_util.py,sha256=
|
171
|
+
arpakitlib/ar_operation_execution_util.py,sha256=uWLDJWYbfsYItUQ48qOSWy4qxCTCFMjElWEXswKtaWk,17617
|
172
172
|
arpakitlib/ar_parse_command.py,sha256=-s61xcATIsfw1eV_iD3xi-grsitbGzSDoAFc5V0OFy4,3447
|
173
173
|
arpakitlib/ar_postgresql_util.py,sha256=1AuLjEaa1Lg4pzn-ukCVnDi35Eg1k91APRTqZhIJAdo,945
|
174
174
|
arpakitlib/ar_run_cmd_util.py,sha256=D_rPavKMmWkQtwvZFz-Io5Ak8eSODHkcFeLPzNVC68g,1072
|
175
175
|
arpakitlib/ar_schedule_uust_api_client_util.py,sha256=0Ns0mMEXYEkVmP6YTAXHyNcrhNsvCJ8X-G_5XwILhJ4,6855
|
176
|
-
arpakitlib/ar_settings_util.py,sha256=
|
176
|
+
arpakitlib/ar_settings_util.py,sha256=752EDXXnrA1uUbSD4InCHCZWEodLBwVUHrgOdOD2Xhw,1856
|
177
177
|
arpakitlib/ar_sleep_util.py,sha256=OaLtRaJQWMkGjfj_mW1RB2P4RaSWsAIH8LUoXqsH0zM,1061
|
178
|
+
arpakitlib/ar_sqladmin_util.py,sha256=vQTRlf36VjW6l_zslZmjkHinMVuQfI-QZsXIlnXUpgE,2634
|
178
179
|
arpakitlib/ar_sqlalchemy_model_util.py,sha256=nKJGN32eg3Gn5kmJwHdVJznPT5TydLsfUfwJGdypdUo,6264
|
179
180
|
arpakitlib/ar_sqlalchemy_util.py,sha256=Hcg1THrDsSR_-8dsY1CG3NWPEv0FqCbkPXFXLtjlSJ0,4207
|
180
181
|
arpakitlib/ar_ssh_runner_util.py,sha256=e9deuUdBW7Eh0Exx2nTBhk57SaOZYaJaSjNk8q6dbJk,6804
|
@@ -182,9 +183,8 @@ arpakitlib/ar_str_util.py,sha256=yU5gOwNXUQaH5b_tM5t6fXUn9oUcv5EQbVnq2wXXIpQ,337
|
|
182
183
|
arpakitlib/ar_type_util.py,sha256=9C3ErtUVs0tAUqtK-foFzjJOykfBOntfCz2IogDOgfA,4134
|
183
184
|
arpakitlib/ar_yookassa_api_client_util.py,sha256=sh4fcUkAkdOetFn9JYoTvjcSXP-M1wU04KEY-ECLfLg,5137
|
184
185
|
arpakitlib/ar_zabbix_api_client_util.py,sha256=Q-VR4MvoZ9aHwZeYZr9G3LwN-ANx1T5KFmF6pvPM-9M,6402
|
185
|
-
arpakitlib-1.7.
|
186
|
-
arpakitlib-1.7.
|
187
|
-
arpakitlib-1.7.
|
188
|
-
arpakitlib-1.7.
|
189
|
-
arpakitlib-1.7.
|
190
|
-
arpakitlib-1.7.136.dist-info/RECORD,,
|
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,,
|
@@ -1,16 +0,0 @@
|
|
1
|
-
Copyright 2024-present Sabirzyanov Arsen
|
2
|
-
|
3
|
-
This project includes software developed by Sabirzyanov Arsen.
|
4
|
-
|
5
|
-
This project is licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
you may not use this file except in compliance with the License.
|
7
|
-
You may obtain a copy of the License at
|
8
|
-
|
9
|
-
./LICENSE
|
10
|
-
|
11
|
-
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
-
See the License for the specific language governing permissions and limitations under the License.
|
14
|
-
|
15
|
-
Additional notices:
|
16
|
-
- This project may include third-party components that are subject to other licenses. See the LICENSE file for more information.
|
@@ -1,16 +0,0 @@
|
|
1
|
-
Copyright 2024-present Sabirzyanov Arsen
|
2
|
-
|
3
|
-
This project includes software developed by Sabirzyanov Arsen.
|
4
|
-
|
5
|
-
This project is licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
you may not use this file except in compliance with the License.
|
7
|
-
You may obtain a copy of the License at
|
8
|
-
|
9
|
-
./LICENSE
|
10
|
-
|
11
|
-
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
-
See the License for the specific language governing permissions and limitations under the License.
|
14
|
-
|
15
|
-
Additional notices:
|
16
|
-
- This project may include third-party components that are subject to other licenses. See the LICENSE file for more information.
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|