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.
@@ -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=int("{API_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
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: arpakitlib
3
- Version: 1.7.37
3
+ Version: 1.7.39
4
4
  Summary: arpakitlib
5
5
  Home-page: https://github.com/ARPAKIT-Company/arpakitlib
6
6
  License: Apache-2.0
@@ -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=9JQcdFX1ChuOZ1WVIJj89xg71xDnb-TRi8LYGje9TDM,232
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=CrcjsDJz5D8DlcANlAb9-yrG3OKLXJC67q-CemxbsV4,280
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=1xYMyH99GrLVyzkiz8dFJ3YuC_mFWcMEswKpRxuPgFQ,1747
89
- arpakitlib/_arpakit_project_template/src/core/util.py,sha256=I5Cxd-lXVMnpjMOyfoNcfOdL05xrujXBmYi5d91AjJg,1714
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.37.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
169
- arpakitlib-1.7.37.dist-info/METADATA,sha256=UDFYfjNJd62DVxCg7N2KF4tnsXZuxQA_I_axAkQQh1g,2824
170
- arpakitlib-1.7.37.dist-info/NOTICE,sha256=95aUzaPJjVpDsGAsNzVnq7tHTxAl0s5UFznCTkVCau4,763
171
- arpakitlib-1.7.37.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
172
- arpakitlib-1.7.37.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
173
- arpakitlib-1.7.37.dist-info/RECORD,,
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,,