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.
- arpakitlib/_arpakit_project_template/src/db/sqlalchemy_model.py +5 -0
- arpakitlib/api_key_util.py +9 -0
- arpakitlib/ar_fastapi_util.py +30 -1
- arpakitlib/ar_sqlalchemy_model_util.py +9 -1
- {arpakitlib-1.7.20.dist-info → arpakitlib-1.7.22.dist-info}/METADATA +1 -1
- {arpakitlib-1.7.20.dist-info → arpakitlib-1.7.22.dist-info}/RECORD +10 -9
- {arpakitlib-1.7.20.dist-info → arpakitlib-1.7.22.dist-info}/LICENSE +0 -0
- {arpakitlib-1.7.20.dist-info → arpakitlib-1.7.22.dist-info}/NOTICE +0 -0
- {arpakitlib-1.7.20.dist-info → arpakitlib-1.7.22.dist-info}/WHEEL +0 -0
- {arpakitlib-1.7.20.dist-info → arpakitlib-1.7.22.dist-info}/entry_points.txt +0 -0
arpakitlib/ar_fastapi_util.py
CHANGED
@@ -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=
|
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
|
@@ -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=
|
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=
|
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=
|
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.
|
165
|
-
arpakitlib-1.7.
|
166
|
-
arpakitlib-1.7.
|
167
|
-
arpakitlib-1.7.
|
168
|
-
arpakitlib-1.7.
|
169
|
-
arpakitlib-1.7.
|
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,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|