arpakitlib 1.7.20__py3-none-any.whl → 1.7.23__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
@@ -259,6 +259,8 @@ def create_handle_exception_creating_story_log(
259
259
  exception: Exception,
260
260
  **kwargs
261
261
  ) -> (int, ErrorSO, dict[str, Any]):
262
+ print(222, type(request))
263
+
262
264
  sqlalchemy_db.init()
263
265
  traceback_str = "".join(traceback.format_exception(type(exception), exception, exception.__traceback__))
264
266
  with sqlalchemy_db.new_session() as session:
@@ -528,6 +530,32 @@ def base_api_auth(
528
530
  return func
529
531
 
530
532
 
533
+ def api_auth_check_api_key(
534
+ *,
535
+ need_check_api_key: bool = True,
536
+ check_api_key_func: Callable | None = None,
537
+ correct_api_key: str | None = None
538
+ ):
539
+ if need_check_api_key:
540
+ require_api_key_string = True
541
+
542
+ if correct_api_key is not None:
543
+ check_api_key_func = lambda v: v == correct_api_key
544
+
545
+ async def func(
546
+ *,
547
+ base_need_api_auth_data: BaseAPIAuthData = Depends(base_api_auth(
548
+ require_api_key_string=need_check_api_key,
549
+ require_token_string=False
550
+ )),
551
+ transmitted_api_data: BaseTransmittedAPIData = Depends(get_transmitted_api_data),
552
+ request: fastapi.Request
553
+ ):
554
+ print(111, type(request))
555
+
556
+ # TODO
557
+
558
+
531
559
  def simple_api_router_for_testing():
532
560
  router = APIRouter(tags=["Testing"])
533
561
 
@@ -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.23
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=SSMRYJhfUN72q9BjZoNVFV67Uir0kM6YuR6dKaT1czs,23096
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.23.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
166
+ arpakitlib-1.7.23.dist-info/METADATA,sha256=BgPvdBjpDPXGbagioURn4-x6OgejYU_5DfDEyVajSgk,2824
167
+ arpakitlib-1.7.23.dist-info/NOTICE,sha256=95aUzaPJjVpDsGAsNzVnq7tHTxAl0s5UFznCTkVCau4,763
168
+ arpakitlib-1.7.23.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
169
+ arpakitlib-1.7.23.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
170
+ arpakitlib-1.7.23.dist-info/RECORD,,