arpakitlib 1.7.41__py3-none-any.whl → 1.7.43__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,6 @@
1
+ from arpakitlib.ar_fastapi_util import is_api_key_correct_api_auth
2
+ from src.core.settings import get_cached_settings
3
+
4
+ check_with_settings_is_api_key_correct_api_auth = is_api_key_correct_api_auth(
5
+ correct_api_key=get_cached_settings().api_correct_api_key
6
+ )
File without changes
@@ -31,6 +31,8 @@ class Settings(SimpleSettings):
31
31
 
32
32
  api_port: int | None = int("{API_PORT}") if "{API_PORT}".isdigit() else None
33
33
 
34
+ api_correct_api_key: str | None = None
35
+
34
36
  var_dirname: str | None = "var"
35
37
 
36
38
  var_dirpath: str | None = os.path.join(BASE_DIRPATH, var_dirname)
@@ -3,7 +3,7 @@ from uuid import uuid4
3
3
  from arpakitlib.ar_datetime_util import now_utc_dt
4
4
 
5
5
 
6
- def generate_default_api_key_value() -> str:
6
+ def generate_api_key() -> str:
7
7
  return (
8
8
  f"apikey{str(uuid4()).replace('-', '')}{str(now_utc_dt().timestamp()).replace('.', '')}"
9
9
  )
@@ -32,7 +32,7 @@ from arpakitlib.ar_json_util import safely_transfer_to_json_str_to_json_obj
32
32
  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
- from arpakitlib.ar_type_util import raise_for_type, raise_if_not_async_func
35
+ from arpakitlib.ar_type_util import raise_for_type, raise_if_not_async_func, raise_if_none
36
36
 
37
37
  _ARPAKIT_LIB_MODULE_VERSION = "3.0"
38
38
 
@@ -529,26 +529,20 @@ def base_api_auth(
529
529
 
530
530
 
531
531
  class CheckAPIKeyAPIAuthData(BaseAPIAuthData):
532
- require_check_api_key: bool = False
533
532
  is_api_key_correct: bool | None = None
534
533
 
535
534
 
536
- def check_api_key_api_auth(
535
+ def is_api_key_correct_api_auth(
537
536
  *,
538
- require_check_api_key: bool = True,
539
- check_api_key_func: Callable | None = None,
537
+ validate_api_key_func: Callable | None = None,
540
538
  correct_api_key: str | None = None
541
539
  ):
542
- if require_check_api_key:
543
- require_api_key_string = True
544
- else:
545
- require_api_key_string = False
540
+ require_api_key_string = True
546
541
 
547
542
  if correct_api_key is not None:
548
- check_api_key_func = lambda **kwargs: kwargs["api_key_string"] == correct_api_key
543
+ validate_api_key_func = lambda **kwargs: kwargs["api_key_string"] == correct_api_key
549
544
 
550
- if require_check_api_key and check_api_key_func is None:
551
- raise ValueError("require_check_api_key and check_api_key_func is None")
545
+ raise_if_none(validate_api_key_func)
552
546
 
553
547
  async def func(
554
548
  *,
@@ -560,18 +554,17 @@ def check_api_key_api_auth(
560
554
  request: starlette.requests.Request
561
555
  ) -> CheckAPIKeyAPIAuthData:
562
556
  check_api_key_api_auth_data = CheckAPIKeyAPIAuthData.model_validate(base_api_auth_data)
563
- check_api_key_api_auth_data.require_check_api_key = require_check_api_key
564
557
  check_api_key_api_auth_data.is_api_key_correct = (
565
- check_api_key_func(
558
+ validate_api_key_func(
566
559
  api_key_string=base_api_auth_data.api_key_string,
567
560
  base_api_auth_data=base_api_auth_data,
568
561
  transmitted_api_data=transmitted_api_data,
569
562
  request=request
570
563
  )
571
- if check_api_key_func is not None else None
564
+ if validate_api_key_func is not None else None
572
565
  )
573
566
 
574
- if check_api_key_api_auth_data.require_check_api_key and not check_api_key_api_auth_data.is_api_key_correct:
567
+ if not check_api_key_api_auth_data.is_api_key_correct:
575
568
  raise APIException(
576
569
  status_code=starlette.status.HTTP_401_UNAUTHORIZED,
577
570
  error_code=ErrorSO.APIErrorCodes.cannot_authorize,
@@ -80,7 +80,7 @@ def make_none_to_false(v: Any) -> Any:
80
80
 
81
81
  def raise_if_none(v: Any) -> Any:
82
82
  if v is None:
83
- raise ValueError(f"v is None, v={v}")
83
+ raise ValueError(f"v is None, v={v}, type(v)={type(v)}")
84
84
  return v
85
85
 
86
86
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: arpakitlib
3
- Version: 1.7.41
3
+ Version: 1.7.43
4
4
  Summary: arpakitlib
5
5
  Home-page: https://github.com/ARPAKIT-Company/arpakitlib
6
6
  License: Apache-2.0
@@ -71,6 +71,7 @@ arpakitlib/_arpakit_project_template/src/additional_model/__init__.py,sha256=47D
71
71
  arpakitlib/_arpakit_project_template/src/additional_model/additional_model.py,sha256=4KCOvto9Hj5eMYpvfaJChghhR9bkCvKluGGPWrTezoY,134
72
72
  arpakitlib/_arpakit_project_template/src/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
73
  arpakitlib/_arpakit_project_template/src/api/asgi.py,sha256=a5UBxOyNC8NG3E0ayhiDo3t5tPoB3WtOf2gbZJFWBAA,74
74
+ arpakitlib/_arpakit_project_template/src/api/auth.py,sha256=Ljq_VjjiAaW3HEzq60nkSI-HkHfuv6j5-8Q6Qs8V9bU,261
74
75
  arpakitlib/_arpakit_project_template/src/api/create_api_app.py,sha256=uDEnLAPugb3rXuuJDMkfs8i6aIGYo0-_JP-PG6Spdr4,4496
75
76
  arpakitlib/_arpakit_project_template/src/api/event.py,sha256=58wCVyVSIe_kydWi44M0Wvp7bTnV8xvO30gMXzjbFYc,750
76
77
  arpakitlib/_arpakit_project_template/src/api/router/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -82,10 +83,11 @@ arpakitlib/_arpakit_project_template/src/api/schema/v1/in_.py,sha256=47DEQpj8HBS
82
83
  arpakitlib/_arpakit_project_template/src/api/schema/v1/out.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
84
  arpakitlib/_arpakit_project_template/src/api/start_api_for_dev.py,sha256=BwROGTR8Hm1ewx_Z0k8HXeql4RIItCdCtP_hmhTT_PM,344
84
85
  arpakitlib/_arpakit_project_template/src/api/transmitted_api_data.py,sha256=YtpATqzN216e76W5QOuzN-Vo6343PVDiHpKWYQ6oqyU,278
86
+ arpakitlib/_arpakit_project_template/src/api/util.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
85
87
  arpakitlib/_arpakit_project_template/src/business_service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
88
  arpakitlib/_arpakit_project_template/src/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
89
  arpakitlib/_arpakit_project_template/src/core/const.py,sha256=CZZew674y7LhCAlYhvuF5cV4Zb9nQ17j2Tcuj2GEBf4,1232
88
- arpakitlib/_arpakit_project_template/src/core/settings.py,sha256=1t5XgDuRrdRVTvxsKYmsNFd_rW08xT6cYYQkCaT_HYM,2014
90
+ arpakitlib/_arpakit_project_template/src/core/settings.py,sha256=Rg90TaiilxSxqvfeqrFeZNIXxrvfWgvwYME9ErHJ200,2058
89
91
  arpakitlib/_arpakit_project_template/src/core/util.py,sha256=J1_AiI4DW_VB8ldLNATP6mjxz254CSxceGcqUbT0SVU,2006
90
92
  arpakitlib/_arpakit_project_template/src/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
93
  arpakitlib/_arpakit_project_template/src/db/sqlalchemy_model.py,sha256=nXtayUkBaVb6tWx5qJgXZLbLOTVAjnSLpSDxBm7yZLc,234
@@ -102,7 +104,7 @@ arpakitlib/_arpakit_project_template/src/test_data/make_test_data_3.py,sha256=89
102
104
  arpakitlib/_arpakit_project_template/src/test_data/make_test_data_4.py,sha256=BlVvIhSFclBMQMHftETS57bRaFpkOdKPrZyxMbYJuDY,80
103
105
  arpakitlib/_arpakit_project_template/src/test_data/make_test_data_5.py,sha256=7ruCZevqJoLSdqL1OEJWUy3YPCOHQif7JqVTKxZ9acM,80
104
106
  arpakitlib/_arpakit_project_template/src/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
- arpakitlib/api_key_util.py,sha256=neGUHZvcVcJGfteKEPi71SVAhvKAaeUiwT00QCAun0I,238
107
+ arpakitlib/api_key_util.py,sha256=DtzREor5h70XlZOv1ounNoPHL5_cc0YA28SaHvlFaWs,224
106
108
  arpakitlib/ar_additional_model_util.py,sha256=tNzZhZtvtJ1qC6Cn4UnyoEL58HudfpCdQy5ftkCqyik,473
107
109
  arpakitlib/ar_aiogram_util.py,sha256=5JPCDZpdBGTE-EIWPRez9amCZAX7XemFIVu5YrQK7Pw,12264
108
110
  arpakitlib/ar_arpakit_lib_module_util.py,sha256=V_mc3Ml73Tzz3arxmwEfIxruKMyrwbe8XZ9FfVDtUXY,5446
@@ -137,7 +139,7 @@ arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css,sha256=jzPZlgJTFwSdSphk9C
137
139
  arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css.map,sha256=5wq8eXMLU6Zxb45orZPL1zAsBFJReFw6GjYqGpUX3hg,262650
138
140
  arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js,sha256=ffrLZHHEQ_g84A-ul3yWa10Kk09waOAxHcQXPuZuavg,339292
139
141
  arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js.map,sha256=9UhIW7MqCOZPAz1Sl1IKfZUuhWU0p-LJqrnjjJD9Xhc,1159454
140
- arpakitlib/ar_fastapi_util.py,sha256=7-gPezpK4_R8jey78FvNiaUS-sfRTlzIIfRQqEoPMSk,24692
142
+ arpakitlib/ar_fastapi_util.py,sha256=EL4tO7jQKArbvVvNOXaDx-pJDB1cOedWm1YiXBTzsG8,24320
141
143
  arpakitlib/ar_file_storage_in_dir_util.py,sha256=D3e3rGuHoI6xqAA5mVvEpVVpOWY1jyjNsjj2UhyHRbE,3674
142
144
  arpakitlib/ar_file_util.py,sha256=07xCF7paAUP2JUyfpeX0l3N1oCSma7qAcBmrCIZVi3g,452
143
145
  arpakitlib/ar_hash_util.py,sha256=Iqy6KBAOLBQMFLWv676boI5sV7atT2B-fb7aCdHOmIQ,340
@@ -163,12 +165,12 @@ arpakitlib/ar_sqlalchemy_model_util.py,sha256=TFGOAgpxcnBV_u7yZrLCkf1ldlB4Of8vIR
163
165
  arpakitlib/ar_sqlalchemy_util.py,sha256=Hcg1THrDsSR_-8dsY1CG3NWPEv0FqCbkPXFXLtjlSJ0,4207
164
166
  arpakitlib/ar_ssh_runner_util.py,sha256=jlnss4V4pziBN1rBzoK_lDiWm6nMOqGXfa6NFJSKH-Y,6796
165
167
  arpakitlib/ar_str_util.py,sha256=oCEtQ_TTn35OEz9jCNLjbhopq76JmaifD_iYR-nEJJ4,2142
166
- arpakitlib/ar_type_util.py,sha256=GNc9PgFKonj5lRlAHSnVPBN5nLIslrG8GTiZHjkf05w,2138
168
+ arpakitlib/ar_type_util.py,sha256=99tp2xEQaAxy1D2AdpJMVIqJa7ycj72o6D8gCoJiVcY,2157
167
169
  arpakitlib/ar_yookassa_api_client_util.py,sha256=sh4fcUkAkdOetFn9JYoTvjcSXP-M1wU04KEY-ECLfLg,5137
168
170
  arpakitlib/ar_zabbix_api_client_util.py,sha256=Q-VR4MvoZ9aHwZeYZr9G3LwN-ANx1T5KFmF6pvPM-9M,6402
169
- arpakitlib-1.7.41.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
170
- arpakitlib-1.7.41.dist-info/METADATA,sha256=e1hkLoyTSNCk7_bjiX-jQ6DGV7_N_4ezH_795-nio6M,2824
171
- arpakitlib-1.7.41.dist-info/NOTICE,sha256=95aUzaPJjVpDsGAsNzVnq7tHTxAl0s5UFznCTkVCau4,763
172
- arpakitlib-1.7.41.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
173
- arpakitlib-1.7.41.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
174
- arpakitlib-1.7.41.dist-info/RECORD,,
171
+ arpakitlib-1.7.43.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
172
+ arpakitlib-1.7.43.dist-info/METADATA,sha256=VN-d0OUcmbY1Pern6idUVOOZWJiELSNgr-XQ_aHLkk8,2824
173
+ arpakitlib-1.7.43.dist-info/NOTICE,sha256=95aUzaPJjVpDsGAsNzVnq7tHTxAl0s5UFznCTkVCau4,763
174
+ arpakitlib-1.7.43.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
175
+ arpakitlib-1.7.43.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
176
+ arpakitlib-1.7.43.dist-info/RECORD,,