arpakitlib 1.7.5__py3-none-any.whl → 1.7.9__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.
@@ -1,4 +1,5 @@
1
1
  # mode_type=
2
+ name=
2
3
  # var_dirname=
3
4
  # var_dirpath=
4
5
  # log_filename=
@@ -9,3 +10,4 @@
9
10
  # media_dirpath=
10
11
  # dump_dirname=
11
12
  # dump_dirpath=
13
+ # db_url=
@@ -0,0 +1,4 @@
1
+ cd ..
2
+ docker rm ..._postgres
3
+ docker run --name ..._postgres -d -p ...:5432 -e POSTGRES_USER=... -e POSTGRES_PASSWORD=... -e POSTGRES_DB=... postgres:16 -c max_connections=100
4
+ docker start ..._postgres
@@ -0,0 +1,2 @@
1
+ cd ..
2
+ docker start ..._postgres
@@ -0,0 +1,2 @@
1
+ cd ..
2
+ docker stop ..._postgres
@@ -0,0 +1,14 @@
1
+ server {
2
+ listen 80;
3
+ listen [::]:80;
4
+
5
+ server_name www...;
6
+
7
+ location / {
8
+ proxy_set_header Host $host;
9
+ proxy_set_header X-Real-IP $remote_addr;
10
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
11
+ proxy_set_header X-Forwarded-Proto $scheme;
12
+ proxy_pass ...;
13
+ }
14
+ }
@@ -30,7 +30,9 @@ class Settings(SimpleSettings):
30
30
 
31
31
  dump_dirpath: str = os.path.join(var_dirpath, dump_dirname)
32
32
 
33
- db_url: str | None = "postgresql://cosmos:cosmos@localhost:5432/cosmos"
33
+ db_url: str | None = None
34
+
35
+ db_echo: bool = False
34
36
 
35
37
 
36
38
  @lru_cache()
@@ -46,6 +46,7 @@ def create_sqlalchemy_db() -> SQLAlchemyDB:
46
46
 
47
47
  return SQLAlchemyDB(
48
48
  db_url=get_cached_settings().db_url,
49
+ db_echo=get_cached_settings().db_echo
49
50
  )
50
51
 
51
52
 
@@ -8,7 +8,7 @@ from arpakitlib.ar_project_template_util import init_arpakit_project_template
8
8
  from arpakitlib.ar_str_util import raise_if_string_blank
9
9
 
10
10
 
11
- def arpakitlib_cli(*, full_command: str | None = None):
11
+ def execute_arpakitlib_cli(*, full_command: str | None = None):
12
12
  if full_command is None:
13
13
  full_command = " ".join(sys.argv)
14
14
 
@@ -57,4 +57,4 @@ def arpakitlib_cli(*, full_command: str | None = None):
57
57
 
58
58
 
59
59
  if __name__ == '__main__':
60
- arpakitlib_cli(full_command="/arpakitlib -c help")
60
+ execute_arpakitlib_cli(full_command="/arpakitlib -c help")
@@ -582,11 +582,11 @@ def create_fastapi_app(
582
582
  contact: dict[str, Any] | None = None,
583
583
  media_dirpath: str | None = None
584
584
  ):
585
+ setup_normal_logging(log_filepath=log_filepath)
586
+
585
587
  if contact is None:
586
588
  contact = _DEFAULT_CONTACT
587
589
 
588
- setup_normal_logging(log_filepath=log_filepath)
589
-
590
590
  if not startup_api_events:
591
591
  startup_api_events = [BaseStartupAPIEvent()]
592
592
 
@@ -3,6 +3,7 @@
3
3
  from typing import Union
4
4
 
5
5
  from pydantic import ConfigDict, field_validator
6
+ from pydantic_core import PydanticUndefined
6
7
  from pydantic_settings import BaseSettings
7
8
 
8
9
  from arpakitlib.ar_enumeration_util import Enumeration
@@ -11,7 +12,7 @@ from arpakitlib.ar_enumeration_util import Enumeration
11
12
  def generate_env_example(settings_class: Union[BaseSettings, type[BaseSettings]]):
12
13
  res = ""
13
14
  for k, f in settings_class.model_fields.items():
14
- if f.default:
15
+ if f.default is not PydanticUndefined:
15
16
  res += f"# {k}=\n"
16
17
  else:
17
18
  res += f"{k}=\n"
@@ -22,11 +23,10 @@ class SimpleSettings(BaseSettings):
22
23
  model_config = ConfigDict(extra="ignore")
23
24
 
24
25
  class ModeTypes(Enumeration):
25
- local: str = "local"
26
- test: str = "preprod"
26
+ dev: str = "dev"
27
27
  prod: str = "prod"
28
28
 
29
- mode_type: str = ModeTypes.local
29
+ mode_type: str = ModeTypes.dev
30
30
 
31
31
  @field_validator("mode_type")
32
32
  @classmethod
@@ -35,12 +35,8 @@ class SimpleSettings(BaseSettings):
35
35
  return v
36
36
 
37
37
  @property
38
- def is_mode_type_local(self) -> bool:
39
- return self.mode_type == self.ModeTypes.local
40
-
41
- @property
42
- def is_mode_type_test(self) -> bool:
43
- return self.mode_type == self.ModeTypes.test
38
+ def is_mode_type_dev(self) -> bool:
39
+ return self.mode_type == self.ModeTypes.dev
44
40
 
45
41
  @property
46
42
  def is_mode_type_prod(self) -> bool:
@@ -26,7 +26,7 @@ class SQLAlchemyDB:
26
26
  self,
27
27
  *,
28
28
  db_url: str = "postgresql://arpakitlib:arpakitlib@localhost:50629/arpakitlib",
29
- echo: bool = False,
29
+ db_echo: bool = False,
30
30
  need_include_operation_dbm: bool = False,
31
31
  need_include_story_dbm: bool = False,
32
32
  db_models: list[Any] | None = None
@@ -38,7 +38,7 @@ class SQLAlchemyDB:
38
38
  self.need_include_story_dbm = True
39
39
  self.engine = create_engine(
40
40
  url=db_url,
41
- echo=echo,
41
+ echo=db_echo,
42
42
  pool_size=5,
43
43
  max_overflow=10,
44
44
  poolclass=QueuePool,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: arpakitlib
3
- Version: 1.7.5
3
+ Version: 1.7.9
4
4
  Summary: arpakitlib
5
5
  Home-page: https://github.com/ARPAKIT-Company/arpakitlib
6
6
  License: Apache-2.0
@@ -6,14 +6,18 @@ arpakitlib/_arpakit_project_template/AUTHOR.md,sha256=5s2zJB3cHS_hpNBOGXfQPAfS9v
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=aR1tz5-7YOpCcs3Jc0C5UkAlYUzMw-x9Wqq4EGcj12A,22
9
- arpakitlib/_arpakit_project_template/example.env,sha256=yxbxCKH_KxjymRGR1V8szwO9E07sN0as9ZaeN7K5L_E,175
9
+ arpakitlib/_arpakit_project_template/example.env,sha256=j3oF-r6mrY80NNJN7ipEw7l4YcUxqHntyRhKfevkDSg,191
10
10
  arpakitlib/_arpakit_project_template/example_pyproject.toml,sha256=Cg8VgGbSXsbvCb63cYwYQAb1bDA49IbuIMP5ShxTMK4,486
11
11
  arpakitlib/_arpakit_project_template/manage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
12
  arpakitlib/_arpakit_project_template/manage/beutify_json.py,sha256=mzmt-5piAHqgihLsqOpPx1JjDc1qA5F1XHBxDdR-BxY,215
13
13
  arpakitlib/_arpakit_project_template/manage/check_logging.py,sha256=rfrl4MK5ItRKaLKb0UU_EfQLckRQSYJ1S_2VAQJQ2Yk,212
14
14
  arpakitlib/_arpakit_project_template/manage/check_settings.py,sha256=JYR-IPgvYQOmJedKY9vOctbxEcUlaxZR-P0JXT9L2JQ,143
15
15
  arpakitlib/_arpakit_project_template/manage/docker_ps.sh,sha256=uwm8vHgeuNLCOn0o9hgP_uc-PUkS9FwLyzZh6ItZ3do,15
16
+ arpakitlib/_arpakit_project_template/manage/example_docker_run_postgres_for_dev.sh,sha256=cVPEu7xiEuPig7QDlz151Hob0RqVhWA_aSWzWEKR9I8,200
17
+ arpakitlib/_arpakit_project_template/manage/example_docker_start_postgres_for_dev.sh,sha256=-jDvShXoPtD0EsNXJEoovvE4PBbHbz4glLtiVuG68Zg,32
18
+ arpakitlib/_arpakit_project_template/manage/example_docker_stop_postgres_for_dev.sh,sha256=5HFIgaCJvY6CdYVD2i3FkSzltIL0B-8BPKbdHH18LRM,30
16
19
  arpakitlib/_arpakit_project_template/manage/example_init_arpakit_project_template.sh,sha256=0J1mESu315fb8KRnUq9SIOg6Oj8QpJgIcjbs8vhvgsQ,162
20
+ arpakitlib/_arpakit_project_template/manage/example_nginx_proxy.nginx,sha256=Ch4vCoa1QBdDpfRAz2tgOMO8Gw-6tgNyvOkte7A3MsA,326
17
21
  arpakitlib/_arpakit_project_template/manage/example_systemd.service,sha256=Cunp3074ZKg1AQiX4Q_Xe5Q39Jca7hQj5ljXqryWwTU,143
18
22
  arpakitlib/_arpakit_project_template/manage/generate_env_example.py,sha256=pRTr6SzBJxDUaxTXZgLJr7rJawHyvpyTJbrJSZW0hEc,330
19
23
  arpakitlib/_arpakit_project_template/manage/git_commit.sh,sha256=AW1NEel-ZHaYeVWFlRbgZSYPQdnVKsTkpR_07RQL1Mw,42
@@ -62,8 +66,8 @@ arpakitlib/_arpakit_project_template/src/additional_model/additional_model.py,sh
62
66
  arpakitlib/_arpakit_project_template/src/business_service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
67
  arpakitlib/_arpakit_project_template/src/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
68
  arpakitlib/_arpakit_project_template/src/core/const.py,sha256=CZZew674y7LhCAlYhvuF5cV4Zb9nQ17j2Tcuj2GEBf4,1232
65
- arpakitlib/_arpakit_project_template/src/core/settings.py,sha256=OwwGS7znZCBy51nwGUQJOsdkbEf6f404Vga97eXxxxs,1261
66
- arpakitlib/_arpakit_project_template/src/core/util.py,sha256=fVKgZYbf_QIuvRPA_69O10Xh24q5zl1-yvOy9ZGMbn0,1660
69
+ arpakitlib/_arpakit_project_template/src/core/settings.py,sha256=9NtT7KNpyqjZKbYkYRjVKfBzHnD7aLPsrOVyCyPyK5c,1242
70
+ arpakitlib/_arpakit_project_template/src/core/util.py,sha256=PG0RlXrcAMtRBd9BB-Zp3N5009wASqTI2T6PNixj1ZM,1706
67
71
  arpakitlib/_arpakit_project_template/src/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
72
  arpakitlib/_arpakit_project_template/src/db/sqlalchemy_model.py,sha256=dcvj5C9E2F2KCsGZPBBncQf_EvVJAC1qQgnyD8P4ZEw,6
69
73
  arpakitlib/_arpakit_project_template/src/test_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -77,7 +81,7 @@ arpakitlib/ar_additional_model_util.py,sha256=tNzZhZtvtJ1qC6Cn4UnyoEL58HudfpCdQy
77
81
  arpakitlib/ar_aiogram_util.py,sha256=5JPCDZpdBGTE-EIWPRez9amCZAX7XemFIVu5YrQK7Pw,12264
78
82
  arpakitlib/ar_arpakit_lib_module_util.py,sha256=V_mc3Ml73Tzz3arxmwEfIxruKMyrwbe8XZ9FfVDtUXY,5446
79
83
  arpakitlib/ar_arpakit_schedule_uust_api_client_util.py,sha256=SYWWQDohPnw0qpBIu2hEvGZRVdaI4NUUQdEjnMnseo4,18237
80
- arpakitlib/ar_arpakitlib_cli.py,sha256=agGQZijh_qqhg6y_Z7AwsmmvHgpMO8KGG69z9YHU3Rg,2450
84
+ arpakitlib/ar_arpakitlib_cli_util.py,sha256=v8zZmc_qV6Yuzuh_jKrf4klEXBEnXRK_fjlpHvZPZ_8,2466
81
85
  arpakitlib/ar_base64_util.py,sha256=aZkg2cZTuAaP2IWeG_LXJ6RO7qhyskVwec-Lks0iM-k,676
82
86
  arpakitlib/ar_base_worker_util.py,sha256=fW7kzbo7gKFaF7-l7DnOGTVkt4H_BeHSkTHSoGQR8Fw,3295
83
87
  arpakitlib/ar_cache_file_util.py,sha256=Fo2pH-Zqm966KWFBHG_pbiySGZvhIFCYqy7k1weRfJ0,3476
@@ -105,11 +109,10 @@ arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css,sha256=jzPZlgJTFwSdSphk9C
105
109
  arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css.map,sha256=5wq8eXMLU6Zxb45orZPL1zAsBFJReFw6GjYqGpUX3hg,262650
106
110
  arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js,sha256=ffrLZHHEQ_g84A-ul3yWa10Kk09waOAxHcQXPuZuavg,339292
107
111
  arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js.map,sha256=9UhIW7MqCOZPAz1Sl1IKfZUuhWU0p-LJqrnjjJD9Xhc,1159454
108
- arpakitlib/ar_fastapi_util.py,sha256=TPv3r_YXTeR_YkKGW0XG-VX-7p8o214m-zHCv2RYHMY,21844
112
+ arpakitlib/ar_fastapi_util.py,sha256=Et9lypLbCEOFBV4WXGn8NUkXAk4gdG_tdJmTgKCszLY,21844
109
113
  arpakitlib/ar_file_storage_in_dir_util.py,sha256=D3e3rGuHoI6xqAA5mVvEpVVpOWY1jyjNsjj2UhyHRbE,3674
110
114
  arpakitlib/ar_file_util.py,sha256=XiwmeycxoLqtYnGOu5q6IEaJJXilZvtLvsKDKtwqSLY,137
111
115
  arpakitlib/ar_hash_util.py,sha256=Iqy6KBAOLBQMFLWv676boI5sV7atT2B-fb7aCdHOmIQ,340
112
- arpakitlib/ar_hello_world.py,sha256=5B3GTgxGIFh_s6ttyB4UKn78ncyA_8blRnDT04l-ELg,158
113
116
  arpakitlib/ar_http_request_util.py,sha256=DfzITtgbWJLkyaAIa0cBZZZqLE0EXx-TsHZkiaRy3Tg,3649
114
117
  arpakitlib/ar_ip_util.py,sha256=aEAa1Hvobh9DWX7cmBAPLqnXSTiKe2hRk-WJaiKMaI8,1009
115
118
  arpakitlib/ar_json_db_util.py,sha256=CEyhIU4WuNmX5mqwBVYxUKSdpFelXvWmf_tJ1fuxMSE,7187
@@ -127,18 +130,18 @@ arpakitlib/ar_postgresql_util.py,sha256=1AuLjEaa1Lg4pzn-ukCVnDi35Eg1k91APRTqZhIJ
127
130
  arpakitlib/ar_project_template_util.py,sha256=RpzLFTjutqKmGTI6PrewfJFMwXGz7ZbXJjHjGHh6KpI,3164
128
131
  arpakitlib/ar_run_cmd_util.py,sha256=D_rPavKMmWkQtwvZFz-Io5Ak8eSODHkcFeLPzNVC68g,1072
129
132
  arpakitlib/ar_schedule_uust_api_client_util.py,sha256=JD-hRUQSs-euK0zq9w_4QUfGO00yWM08gllWUVKTtHc,6109
130
- arpakitlib/ar_settings_util.py,sha256=NvFzpIaQhlMp-BZwttUY_9gamMC5cpJk2Kp2B3BtMug,1296
133
+ arpakitlib/ar_settings_util.py,sha256=pWinOOnBDRhFxvkkuAjOq_U37QQJL-WwjIyVgsJTJB4,1216
131
134
  arpakitlib/ar_sleep_util.py,sha256=OaLtRaJQWMkGjfj_mW1RB2P4RaSWsAIH8LUoXqsH0zM,1061
132
135
  arpakitlib/ar_sqlalchemy_model_util.py,sha256=ttdgOwQfoHTKqgivBtXoSbJoBCASHDjLEFK5tJ9kNNE,4779
133
- arpakitlib/ar_sqlalchemy_util.py,sha256=1PuNg9vsQcJfuatcrd8xOhkX3znbwVakEYs3YXolKVo,4201
136
+ arpakitlib/ar_sqlalchemy_util.py,sha256=Hcg1THrDsSR_-8dsY1CG3NWPEv0FqCbkPXFXLtjlSJ0,4207
134
137
  arpakitlib/ar_ssh_runner_util.py,sha256=jlnss4V4pziBN1rBzoK_lDiWm6nMOqGXfa6NFJSKH-Y,6796
135
138
  arpakitlib/ar_str_util.py,sha256=oCEtQ_TTn35OEz9jCNLjbhopq76JmaifD_iYR-nEJJ4,2142
136
139
  arpakitlib/ar_type_util.py,sha256=GNc9PgFKonj5lRlAHSnVPBN5nLIslrG8GTiZHjkf05w,2138
137
140
  arpakitlib/ar_yookassa_api_client_util.py,sha256=sh4fcUkAkdOetFn9JYoTvjcSXP-M1wU04KEY-ECLfLg,5137
138
141
  arpakitlib/ar_zabbix_api_client_util.py,sha256=Q-VR4MvoZ9aHwZeYZr9G3LwN-ANx1T5KFmF6pvPM-9M,6402
139
- arpakitlib-1.7.5.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
140
- arpakitlib-1.7.5.dist-info/METADATA,sha256=Kv3jhezlhHHRuFljSXbV-cwViAYjwJJSc9ziH03TFRM,2771
141
- arpakitlib-1.7.5.dist-info/NOTICE,sha256=95aUzaPJjVpDsGAsNzVnq7tHTxAl0s5UFznCTkVCau4,763
142
- arpakitlib-1.7.5.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
143
- arpakitlib-1.7.5.dist-info/entry_points.txt,sha256=VHkTDXDOMrgcNzGfKhEhoOIIz6T8Kkt46hy95Zc1iL0,74
144
- arpakitlib-1.7.5.dist-info/RECORD,,
142
+ arpakitlib-1.7.9.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
143
+ arpakitlib-1.7.9.dist-info/METADATA,sha256=z70VyS1vRn89wLfxiGzqgC58b0Peo_b5EncIJzXIqhc,2771
144
+ arpakitlib-1.7.9.dist-info/NOTICE,sha256=95aUzaPJjVpDsGAsNzVnq7tHTxAl0s5UFznCTkVCau4,763
145
+ arpakitlib-1.7.9.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
146
+ arpakitlib-1.7.9.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
147
+ arpakitlib-1.7.9.dist-info/RECORD,,
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ arpakitlib=arpakitlib.ar_arpakitlib_cli_util:execute_arpakitlib_cli
3
+
@@ -1,11 +0,0 @@
1
- # arpakit
2
-
3
- _ARPAKIT_LIB_MODULE_VERSION = "3.0"
4
-
5
-
6
- def hello_world():
7
- print("Hello world, it is arpakitlib")
8
-
9
-
10
- if __name__ == '__main__':
11
- hello_world()
@@ -1,3 +0,0 @@
1
- [console_scripts]
2
- arpakitlib=arpakitlib.ar_arpakitlib_cli:arpakitlib_cli
3
-