arpakitlib 1.7.20__py3-none-any.whl → 1.7.22__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.
@@ -0,0 +1,5 @@
1
+ from arpakitlib.ar_sqlalchemy_model_util import SimpleDBM
2
+ from arpakitlib.ar_sqlalchemy_util import get_string_info_from_declarative_base
3
+
4
+ if __name__ == '__main__':
5
+ print(get_string_info_from_declarative_base(SimpleDBM))
@@ -0,0 +1,9 @@
1
+ from uuid import uuid4
2
+
3
+ from arpakitlib.ar_datetime_util import now_utc_dt
4
+
5
+
6
+ def generate_default_api_key_value() -> str:
7
+ return (
8
+ f"apikey{str(uuid4()).replace('-', '')}{str(now_utc_dt().timestamp()).replace('.', '')}"
9
+ )
@@ -17,7 +17,7 @@ import fastapi.security
17
17
  import starlette.exceptions
18
18
  import starlette.requests
19
19
  import starlette.status
20
- from fastapi import FastAPI, APIRouter, Query, Security
20
+ from fastapi import FastAPI, APIRouter, Query, Security, Depends
21
21
  from fastapi.openapi.docs import get_swagger_ui_html, get_redoc_html
22
22
  from fastapi.security import APIKeyHeader
23
23
  from pydantic import BaseModel, ConfigDict
@@ -33,6 +33,7 @@ from arpakitlib.ar_logging_util import setup_normal_logging
33
33
  from arpakitlib.ar_sqlalchemy_model_util import StoryLogDBM
34
34
  from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDB
35
35
  from arpakitlib.ar_type_util import raise_for_type, raise_if_not_async_func
36
+ from src.api.transmitted_api_data import TransmittedAPIData
36
37
 
37
38
  _ARPAKIT_LIB_MODULE_VERSION = "3.0"
38
39
 
@@ -259,6 +260,8 @@ def create_handle_exception_creating_story_log(
259
260
  exception: Exception,
260
261
  **kwargs
261
262
  ) -> (int, ErrorSO, dict[str, Any]):
263
+ print(222, type(request))
264
+
262
265
  sqlalchemy_db.init()
263
266
  traceback_str = "".join(traceback.format_exception(type(exception), exception, exception.__traceback__))
264
267
  with sqlalchemy_db.new_session() as session:
@@ -528,6 +531,32 @@ def base_api_auth(
528
531
  return func
529
532
 
530
533
 
534
+ def api_auth_check_api_key(
535
+ *,
536
+ need_check_api_key: bool = True,
537
+ check_api_key_func: Callable | None = None,
538
+ correct_api_key: str | None = None
539
+ ):
540
+ if need_check_api_key:
541
+ require_api_key_string = True
542
+
543
+ if correct_api_key is not None:
544
+ check_api_key_func = lambda v: v == correct_api_key
545
+
546
+ async def func(
547
+ *,
548
+ base_need_api_auth_data: BaseAPIAuthData = Depends(base_api_auth(
549
+ require_api_key_string=need_check_api_key,
550
+ require_token_string=False
551
+ )),
552
+ transmitted_api_data: TransmittedAPIData = Depends(get_transmitted_api_data),
553
+ request: fastapi.Request
554
+ ):
555
+ print(111, type(request))
556
+
557
+ # TODO
558
+
559
+
531
560
  def simple_api_router_for_testing():
532
561
  router = APIRouter(tags=["Testing"])
533
562
 
@@ -15,6 +15,14 @@ from arpakitlib.ar_json_util import safely_transfer_to_json_str
15
15
  _ARPAKIT_LIB_MODULE_VERSION = "3.0"
16
16
 
17
17
 
18
+ def generate_default_long_id():
19
+ return (
20
+ f"longid"
21
+ f"{str(uuid4()).replace('-', '')}"
22
+ f"{str(now_utc_dt().timestamp()).replace('.', '')}"
23
+ )
24
+
25
+
18
26
  class BaseDBM(DeclarativeBase):
19
27
  __abstract__ = True
20
28
  _bus_data: dict[str, Any] | None = None
@@ -46,7 +54,7 @@ class SimpleDBM(BaseDBM):
46
54
  INTEGER, primary_key=True, autoincrement=True, sort_order=-3, nullable=False
47
55
  )
48
56
  long_id: Mapped[str] = mapped_column(
49
- TEXT, insert_default=uuid4, unique=True, sort_order=-2, nullable=False
57
+ TEXT, insert_default=generate_default_long_id, unique=True, sort_order=-2, nullable=False
50
58
  )
51
59
  creation_dt: Mapped[datetime] = mapped_column(
52
60
  TIMESTAMP(timezone=True), insert_default=now_utc_dt, index=True, sort_order=-1, nullable=False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: arpakitlib
3
- Version: 1.7.20
3
+ Version: 1.7.22
4
4
  Summary: arpakitlib
5
5
  Home-page: https://github.com/ARPAKIT-Company/arpakitlib
6
6
  License: Apache-2.0
@@ -90,7 +90,7 @@ arpakitlib/_arpakit_project_template/src/core/scheduled_operations.py,sha256=W6A
90
90
  arpakitlib/_arpakit_project_template/src/core/settings.py,sha256=ZgoNx6rw-h0QbhZ0Oeewgx-Z8pUdVywpnWSMCg9Ec0k,1455
91
91
  arpakitlib/_arpakit_project_template/src/core/util.py,sha256=I5Cxd-lXVMnpjMOyfoNcfOdL05xrujXBmYi5d91AjJg,1714
92
92
  arpakitlib/_arpakit_project_template/src/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
- arpakitlib/_arpakit_project_template/src/db/sqlalchemy_model.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
+ arpakitlib/_arpakit_project_template/src/db/sqlalchemy_model.py,sha256=rOC5T7M2WT5RM_HMwnjIIKGQakmaO0WFQBenI98DnG8,226
94
94
  arpakitlib/_arpakit_project_template/src/db/util.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
95
  arpakitlib/_arpakit_project_template/src/test_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
96
96
  arpakitlib/_arpakit_project_template/src/test_data/make_test_data_1.py,sha256=3WVPgRsNCIxWpA-6t_Phe-nFULdHPhS1S_DO11XRmqk,80
@@ -99,6 +99,7 @@ arpakitlib/_arpakit_project_template/src/test_data/make_test_data_3.py,sha256=89
99
99
  arpakitlib/_arpakit_project_template/src/test_data/make_test_data_4.py,sha256=BlVvIhSFclBMQMHftETS57bRaFpkOdKPrZyxMbYJuDY,80
100
100
  arpakitlib/_arpakit_project_template/src/test_data/make_test_data_5.py,sha256=7ruCZevqJoLSdqL1OEJWUy3YPCOHQif7JqVTKxZ9acM,80
101
101
  arpakitlib/_arpakit_project_template/src/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
102
+ arpakitlib/api_key_util.py,sha256=neGUHZvcVcJGfteKEPi71SVAhvKAaeUiwT00QCAun0I,238
102
103
  arpakitlib/ar_additional_model_util.py,sha256=tNzZhZtvtJ1qC6Cn4UnyoEL58HudfpCdQy5ftkCqyik,473
103
104
  arpakitlib/ar_aiogram_util.py,sha256=5JPCDZpdBGTE-EIWPRez9amCZAX7XemFIVu5YrQK7Pw,12264
104
105
  arpakitlib/ar_arpakit_lib_module_util.py,sha256=V_mc3Ml73Tzz3arxmwEfIxruKMyrwbe8XZ9FfVDtUXY,5446
@@ -132,7 +133,7 @@ arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css,sha256=jzPZlgJTFwSdSphk9C
132
133
  arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css.map,sha256=5wq8eXMLU6Zxb45orZPL1zAsBFJReFw6GjYqGpUX3hg,262650
133
134
  arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js,sha256=ffrLZHHEQ_g84A-ul3yWa10Kk09waOAxHcQXPuZuavg,339292
134
135
  arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js.map,sha256=9UhIW7MqCOZPAz1Sl1IKfZUuhWU0p-LJqrnjjJD9Xhc,1159454
135
- arpakitlib/ar_fastapi_util.py,sha256=kkbSTwau-fNbwSNUJsBTVANb8M69A9wkE2iYJxiZNKs,22290
136
+ arpakitlib/ar_fastapi_util.py,sha256=5VUnKS4ZiSo9bJhf05ySHp9r-pHgV-jrUsIuUxpJqOo,23152
136
137
  arpakitlib/ar_file_storage_in_dir_util.py,sha256=D3e3rGuHoI6xqAA5mVvEpVVpOWY1jyjNsjj2UhyHRbE,3674
137
138
  arpakitlib/ar_file_util.py,sha256=XiwmeycxoLqtYnGOu5q6IEaJJXilZvtLvsKDKtwqSLY,137
138
139
  arpakitlib/ar_hash_util.py,sha256=Iqy6KBAOLBQMFLWv676boI5sV7atT2B-fb7aCdHOmIQ,340
@@ -154,16 +155,16 @@ arpakitlib/ar_run_cmd_util.py,sha256=D_rPavKMmWkQtwvZFz-Io5Ak8eSODHkcFeLPzNVC68g
154
155
  arpakitlib/ar_schedule_uust_api_client_util.py,sha256=JD-hRUQSs-euK0zq9w_4QUfGO00yWM08gllWUVKTtHc,6109
155
156
  arpakitlib/ar_settings_util.py,sha256=pWinOOnBDRhFxvkkuAjOq_U37QQJL-WwjIyVgsJTJB4,1216
156
157
  arpakitlib/ar_sleep_util.py,sha256=OaLtRaJQWMkGjfj_mW1RB2P4RaSWsAIH8LUoXqsH0zM,1061
157
- arpakitlib/ar_sqlalchemy_model_util.py,sha256=ttdgOwQfoHTKqgivBtXoSbJoBCASHDjLEFK5tJ9kNNE,4779
158
+ arpakitlib/ar_sqlalchemy_model_util.py,sha256=AcLy3NHwdhiJ6zJusSvXzkwrIZCsDnrX5tC6SOaaSrU,4972
158
159
  arpakitlib/ar_sqlalchemy_util.py,sha256=Hcg1THrDsSR_-8dsY1CG3NWPEv0FqCbkPXFXLtjlSJ0,4207
159
160
  arpakitlib/ar_ssh_runner_util.py,sha256=jlnss4V4pziBN1rBzoK_lDiWm6nMOqGXfa6NFJSKH-Y,6796
160
161
  arpakitlib/ar_str_util.py,sha256=oCEtQ_TTn35OEz9jCNLjbhopq76JmaifD_iYR-nEJJ4,2142
161
162
  arpakitlib/ar_type_util.py,sha256=GNc9PgFKonj5lRlAHSnVPBN5nLIslrG8GTiZHjkf05w,2138
162
163
  arpakitlib/ar_yookassa_api_client_util.py,sha256=sh4fcUkAkdOetFn9JYoTvjcSXP-M1wU04KEY-ECLfLg,5137
163
164
  arpakitlib/ar_zabbix_api_client_util.py,sha256=Q-VR4MvoZ9aHwZeYZr9G3LwN-ANx1T5KFmF6pvPM-9M,6402
164
- arpakitlib-1.7.20.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
165
- arpakitlib-1.7.20.dist-info/METADATA,sha256=g3WRcpW97nJVJzfb1uS5ypPr4hoUVjfU3Cgs93HsRow,2824
166
- arpakitlib-1.7.20.dist-info/NOTICE,sha256=95aUzaPJjVpDsGAsNzVnq7tHTxAl0s5UFznCTkVCau4,763
167
- arpakitlib-1.7.20.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
168
- arpakitlib-1.7.20.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
169
- arpakitlib-1.7.20.dist-info/RECORD,,
165
+ arpakitlib-1.7.22.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
166
+ arpakitlib-1.7.22.dist-info/METADATA,sha256=QRbk0Kt_G-V84rvw2HroahVUuDT9oGApTvhNEaLEvtw,2824
167
+ arpakitlib-1.7.22.dist-info/NOTICE,sha256=95aUzaPJjVpDsGAsNzVnq7tHTxAl0s5UFznCTkVCau4,763
168
+ arpakitlib-1.7.22.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
169
+ arpakitlib-1.7.22.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
170
+ arpakitlib-1.7.22.dist-info/RECORD,,