arpakitlib 1.7.37__py3-none-any.whl → 1.7.39__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/example.env +7 -0
- arpakitlib/_arpakit_project_template/src/api/start_api_for_dev.py +3 -1
- arpakitlib/_arpakit_project_template/src/core/settings.py +11 -0
- arpakitlib/_arpakit_project_template/src/core/util.py +8 -0
- {arpakitlib-1.7.37.dist-info → arpakitlib-1.7.39.dist-info}/METADATA +1 -1
- {arpakitlib-1.7.37.dist-info → arpakitlib-1.7.39.dist-info}/RECORD +10 -10
- {arpakitlib-1.7.37.dist-info → arpakitlib-1.7.39.dist-info}/LICENSE +0 -0
- {arpakitlib-1.7.37.dist-info → arpakitlib-1.7.39.dist-info}/NOTICE +0 -0
- {arpakitlib-1.7.37.dist-info → arpakitlib-1.7.39.dist-info}/WHEEL +0 -0
- {arpakitlib-1.7.37.dist-info → arpakitlib-1.7.39.dist-info}/entry_points.txt +0 -0
@@ -2,6 +2,12 @@
|
|
2
2
|
# sql_db_url=
|
3
3
|
# sql_db_echo=
|
4
4
|
# api_init_sql_db_at_start=
|
5
|
+
# api_title=
|
6
|
+
# api_description=
|
7
|
+
# api_create_story_log_before_response_in_handle_exception=
|
8
|
+
# api_start_execute_operation_worker=
|
9
|
+
# api_start_create_scheduled_operation_worker=
|
10
|
+
# api_port=
|
5
11
|
# var_dirname=
|
6
12
|
# var_dirpath=
|
7
13
|
# log_filename=
|
@@ -12,3 +18,4 @@
|
|
12
18
|
# media_dirpath=
|
13
19
|
# dump_dirname=
|
14
20
|
# dump_dirpath=
|
21
|
+
# local_timezone=
|
@@ -1,10 +1,12 @@
|
|
1
1
|
import uvicorn
|
2
2
|
|
3
|
+
from src.core.settings import get_cached_settings
|
4
|
+
|
3
5
|
|
4
6
|
def start_api_for_dev(*, reload: bool = False):
|
5
7
|
uvicorn.run(
|
6
8
|
"src.api.asgi:app",
|
7
|
-
port=
|
9
|
+
port=get_cached_settings().api_port,
|
8
10
|
host="localhost",
|
9
11
|
workers=1,
|
10
12
|
reload=reload
|
@@ -1,6 +1,9 @@
|
|
1
1
|
import asyncio
|
2
2
|
import os
|
3
3
|
from functools import lru_cache
|
4
|
+
from typing import Any
|
5
|
+
|
6
|
+
import pytz
|
4
7
|
|
5
8
|
from arpakitlib.ar_json_util import safely_transfer_to_json_str
|
6
9
|
from arpakitlib.ar_settings_util import SimpleSettings
|
@@ -26,6 +29,8 @@ class Settings(SimpleSettings):
|
|
26
29
|
|
27
30
|
api_start_create_scheduled_operation_worker: bool = False
|
28
31
|
|
32
|
+
api_port: int | None = int("{API_PORT}") if "{API_PORT}".isdigit() else None
|
33
|
+
|
29
34
|
var_dirname: str | None = "var"
|
30
35
|
|
31
36
|
var_dirpath: str | None = os.path.join(BASE_DIRPATH, var_dirname)
|
@@ -46,6 +51,12 @@ class Settings(SimpleSettings):
|
|
46
51
|
|
47
52
|
dump_dirpath: str | None = os.path.join(var_dirpath, dump_dirname)
|
48
53
|
|
54
|
+
local_timezone: str | None = None
|
55
|
+
|
56
|
+
@property
|
57
|
+
def local_timezone_as_pytz(self) -> Any:
|
58
|
+
return pytz.timezone(self.local_timezone)
|
59
|
+
|
49
60
|
# ...
|
50
61
|
|
51
62
|
|
@@ -1,11 +1,14 @@
|
|
1
1
|
import asyncio
|
2
2
|
import importlib
|
3
3
|
from contextlib import suppress
|
4
|
+
from datetime import datetime
|
4
5
|
from functools import lru_cache
|
5
6
|
|
7
|
+
from arpakitlib.ar_datetime_util import now_dt
|
6
8
|
from arpakitlib.ar_file_storage_in_dir_util import FileStorageInDir
|
7
9
|
from arpakitlib.ar_logging_util import setup_normal_logging
|
8
10
|
from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDB
|
11
|
+
from arpakitlib.ar_type_util import raise_if_none
|
9
12
|
from src.core.settings import get_cached_settings
|
10
13
|
|
11
14
|
|
@@ -55,6 +58,11 @@ def get_cached_sqlalchemy_db() -> SQLAlchemyDB:
|
|
55
58
|
return create_sqlalchemy_db()
|
56
59
|
|
57
60
|
|
61
|
+
def now_local_dt() -> datetime:
|
62
|
+
raise_if_none(get_cached_settings().local_timezone_as_pytz)
|
63
|
+
return now_dt(tz=get_cached_settings().local_timezone_as_pytz)
|
64
|
+
|
65
|
+
|
58
66
|
def __example():
|
59
67
|
pass
|
60
68
|
|
@@ -6,7 +6,7 @@ arpakitlib/_arpakit_project_template/AUTHOR.md,sha256=d5QAx-1vbHfYYABpNQ0Yfjaxsw
|
|
6
6
|
arpakitlib/_arpakit_project_template/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
|
7
7
|
arpakitlib/_arpakit_project_template/NOTICE,sha256=95aUzaPJjVpDsGAsNzVnq7tHTxAl0s5UFznCTkVCau4,763
|
8
8
|
arpakitlib/_arpakit_project_template/README.md,sha256=EEoHPZrJQtLS3fKD3JvoPhkGhjfuDihxK5fmAGwihCQ,65
|
9
|
-
arpakitlib/_arpakit_project_template/example.env,sha256=
|
9
|
+
arpakitlib/_arpakit_project_template/example.env,sha256=p5qdXuMHudefuGVkf1dcqSDlS3Xx2TjvebeufaROMOE,439
|
10
10
|
arpakitlib/_arpakit_project_template/manage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
11
|
arpakitlib/_arpakit_project_template/manage/docker_ps.sh,sha256=uwm8vHgeuNLCOn0o9hgP_uc-PUkS9FwLyzZh6ItZ3do,15
|
12
12
|
arpakitlib/_arpakit_project_template/manage/docker_ps_a.sh,sha256=nOQejihYlzstg9oROvYwHIsSLt2Sw0DWQEeT3GBaBNs,18
|
@@ -80,13 +80,13 @@ arpakitlib/_arpakit_project_template/src/api/schema/__init__.py,sha256=47DEQpj8H
|
|
80
80
|
arpakitlib/_arpakit_project_template/src/api/schema/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
81
81
|
arpakitlib/_arpakit_project_template/src/api/schema/v1/in_.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
82
82
|
arpakitlib/_arpakit_project_template/src/api/schema/v1/out.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
83
|
-
arpakitlib/_arpakit_project_template/src/api/start_api_for_dev.py,sha256=
|
83
|
+
arpakitlib/_arpakit_project_template/src/api/start_api_for_dev.py,sha256=BwROGTR8Hm1ewx_Z0k8HXeql4RIItCdCtP_hmhTT_PM,344
|
84
84
|
arpakitlib/_arpakit_project_template/src/api/transmitted_api_data.py,sha256=YtpATqzN216e76W5QOuzN-Vo6343PVDiHpKWYQ6oqyU,278
|
85
85
|
arpakitlib/_arpakit_project_template/src/business_service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
86
86
|
arpakitlib/_arpakit_project_template/src/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
87
87
|
arpakitlib/_arpakit_project_template/src/core/const.py,sha256=CZZew674y7LhCAlYhvuF5cV4Zb9nQ17j2Tcuj2GEBf4,1232
|
88
|
-
arpakitlib/_arpakit_project_template/src/core/settings.py,sha256=
|
89
|
-
arpakitlib/_arpakit_project_template/src/core/util.py,sha256=
|
88
|
+
arpakitlib/_arpakit_project_template/src/core/settings.py,sha256=1t5XgDuRrdRVTvxsKYmsNFd_rW08xT6cYYQkCaT_HYM,2014
|
89
|
+
arpakitlib/_arpakit_project_template/src/core/util.py,sha256=J1_AiI4DW_VB8ldLNATP6mjxz254CSxceGcqUbT0SVU,2006
|
90
90
|
arpakitlib/_arpakit_project_template/src/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
91
91
|
arpakitlib/_arpakit_project_template/src/db/sqlalchemy_model.py,sha256=nXtayUkBaVb6tWx5qJgXZLbLOTVAjnSLpSDxBm7yZLc,234
|
92
92
|
arpakitlib/_arpakit_project_template/src/db/util.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -165,9 +165,9 @@ arpakitlib/ar_str_util.py,sha256=oCEtQ_TTn35OEz9jCNLjbhopq76JmaifD_iYR-nEJJ4,214
|
|
165
165
|
arpakitlib/ar_type_util.py,sha256=GNc9PgFKonj5lRlAHSnVPBN5nLIslrG8GTiZHjkf05w,2138
|
166
166
|
arpakitlib/ar_yookassa_api_client_util.py,sha256=sh4fcUkAkdOetFn9JYoTvjcSXP-M1wU04KEY-ECLfLg,5137
|
167
167
|
arpakitlib/ar_zabbix_api_client_util.py,sha256=Q-VR4MvoZ9aHwZeYZr9G3LwN-ANx1T5KFmF6pvPM-9M,6402
|
168
|
-
arpakitlib-1.7.
|
169
|
-
arpakitlib-1.7.
|
170
|
-
arpakitlib-1.7.
|
171
|
-
arpakitlib-1.7.
|
172
|
-
arpakitlib-1.7.
|
173
|
-
arpakitlib-1.7.
|
168
|
+
arpakitlib-1.7.39.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
|
169
|
+
arpakitlib-1.7.39.dist-info/METADATA,sha256=KMqDClqko82D4vC3fKjUxkr8g8JEyynsflDfQET87fI,2824
|
170
|
+
arpakitlib-1.7.39.dist-info/NOTICE,sha256=95aUzaPJjVpDsGAsNzVnq7tHTxAl0s5UFznCTkVCau4,763
|
171
|
+
arpakitlib-1.7.39.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
172
|
+
arpakitlib-1.7.39.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
|
173
|
+
arpakitlib-1.7.39.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|