arpakitlib 1.6.87__py3-none-any.whl → 1.6.89__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.
@@ -2,4 +2,4 @@ cd ..
2
2
  echo "yes" | poetry cache clear --all PyPI
3
3
  echo "yes" | poetry cache clear --all pypi
4
4
  echo "yes" | poetry cache clear --all testpypi
5
- poetry update arpakitlibx
5
+ poetry update arpakitlib
@@ -421,14 +421,19 @@ def get_transmitted_api_data(request: starlette.requests.Request) -> BaseTransmi
421
421
  class BaseAPIAuthData(BaseModel):
422
422
  model_config = ConfigDict(extra="forbid", arbitrary_types_allowed=True, from_attributes=True)
423
423
 
424
+ require_api_key_string: bool = False
425
+ require_token_string: bool = None
426
+
424
427
  token_string: str | None = None
425
428
  api_key_string: str | None = None
426
429
 
427
430
 
428
- def base_api_auth(
431
+ def api_auth(
429
432
  *,
430
433
  require_api_key_string: bool = False,
431
434
  require_token_string: bool = False,
435
+ api_key_string_validator: Callable | None = None,
436
+ token_string_validator: Callable | None = None,
432
437
  ) -> Callable:
433
438
  async def func(
434
439
  *,
@@ -439,79 +444,79 @@ def base_api_auth(
439
444
  request: fastapi.Request
440
445
  ) -> BaseAPIAuthData:
441
446
 
442
- _error_data = {
443
- "require_api_key_string": require_api_key_string,
444
- "require_token_string": require_token_string
445
- }
446
-
447
- res = BaseAPIAuthData()
447
+ api_auth_data = BaseAPIAuthData(
448
+ require_api_key_string=require_api_key_string,
449
+ require_token_string=require_token_string
450
+ )
448
451
 
449
452
  # api_key
450
453
 
451
- res.api_key_string = api_key_string
452
-
453
- if not res.api_key_string and "api_key" in request.headers.keys():
454
- res.api_key_string = request.headers["api_key"]
455
- if not res.api_key_string and "api-key" in request.headers.keys():
456
- res.api_key_string = request.headers["api-key"]
457
- if not res.api_key_string and "apikey" in request.headers.keys():
458
- res.api_key_string = request.headers["apikey"]
454
+ api_auth_data.api_key_string = api_key_string
459
455
 
460
- if not res.api_key_string and "api_key" in request.query_params.keys():
461
- res.api_key_string = request.query_params["api_key"]
462
- if not res.api_key_string and "api-key" in request.query_params.keys():
463
- res.api_key_string = request.query_params["api-key"]
464
- if not res.api_key_string and "apikey" in request.query_params.keys():
465
- res.api_key_string = request.query_params["apikey"]
456
+ if not api_auth_data.api_key_string and "api_key" in request.headers.keys():
457
+ api_auth_data.api_key_string = request.headers["api_key"]
458
+ if not api_auth_data.api_key_string and "api-key" in request.headers.keys():
459
+ api_auth_data.api_key_string = request.headers["api-key"]
460
+ if not api_auth_data.api_key_string and "apikey" in request.headers.keys():
461
+ api_auth_data.api_key_string = request.headers["apikey"]
466
462
 
467
- _error_data["res.api_key_string"] = res.api_key_string
463
+ if not api_auth_data.api_key_string and "api_key" in request.query_params.keys():
464
+ api_auth_data.api_key_string = request.query_params["api_key"]
465
+ if not api_auth_data.api_key_string and "api-key" in request.query_params.keys():
466
+ api_auth_data.api_key_string = request.query_params["api-key"]
467
+ if not api_auth_data.api_key_string and "apikey" in request.query_params.keys():
468
+ api_auth_data.api_key_string = request.query_params["apikey"]
468
469
 
469
470
  # token
470
471
 
471
- res.token_string = ac.credentials if ac and ac.credentials and ac.credentials.strip() else None
472
+ api_auth_data.token_string = ac.credentials if ac and ac.credentials and ac.credentials.strip() else None
472
473
 
473
- if not res.token_string and "token" in request.headers.keys():
474
- res.token_string = request.headers["token"]
474
+ if not api_auth_data.token_string and "token" in request.headers.keys():
475
+ api_auth_data.token_string = request.headers["token"]
475
476
 
476
- if not res.token_string and "user_token" in request.headers.keys():
477
- res.token_string = request.headers["user_token"]
478
- if not res.token_string and "user-token" in request.headers.keys():
479
- res.token_string = request.headers["user-token"]
480
- if not res.token_string and "usertoken" in request.headers.keys():
481
- res.token_string = request.headers["usertoken"]
477
+ if not api_auth_data.token_string and "user_token" in request.headers.keys():
478
+ api_auth_data.token_string = request.headers["user_token"]
479
+ if not api_auth_data.token_string and "user-token" in request.headers.keys():
480
+ api_auth_data.token_string = request.headers["user-token"]
481
+ if not api_auth_data.token_string and "usertoken" in request.headers.keys():
482
+ api_auth_data.token_string = request.headers["usertoken"]
482
483
 
483
- if not res.token_string and "token" in request.query_params.keys():
484
- res.token_string = request.query_params["token"]
484
+ if not api_auth_data.token_string and "token" in request.query_params.keys():
485
+ api_auth_data.token_string = request.query_params["token"]
485
486
 
486
- if not res.token_string and "user_token" in request.query_params.keys():
487
- res.token_string = request.query_params["user_token"]
488
- if not res.token_string and "user-token" in request.query_params.keys():
489
- res.token_string = request.query_params["user-token"]
490
- if not res.token_string and "usertoken" in request.query_params.keys():
491
- res.token_string = request.query_params["usertoken"]
487
+ if not api_auth_data.token_string and "user_token" in request.query_params.keys():
488
+ api_auth_data.token_string = request.query_params["user_token"]
489
+ if not api_auth_data.token_string and "user-token" in request.query_params.keys():
490
+ api_auth_data.token_string = request.query_params["user-token"]
491
+ if not api_auth_data.token_string and "usertoken" in request.query_params.keys():
492
+ api_auth_data.token_string = request.query_params["usertoken"]
492
493
 
493
- if res.token_string:
494
- res.token_string = res.token_string.strip()
495
- if not res.token_string:
496
- res.token_string = None
494
+ if api_auth_data.token_string:
495
+ api_auth_data.token_string = api_auth_data.token_string.strip()
496
+ if not api_auth_data.token_string:
497
+ api_auth_data.token_string = None
497
498
 
498
- _error_data["res.token_string"] = res.token_string
499
-
500
- if require_api_key_string and not res.api_key_string:
499
+ if require_api_key_string and not api_auth_data.api_key_string:
501
500
  raise APIException(
502
501
  status_code=starlette.status.HTTP_401_UNAUTHORIZED,
503
502
  error_code=ErrorSO.APIErrorCodes.cannot_authorize,
504
- error_data=_error_data
503
+ error_data=safely_transfer_to_json_str_to_json_obj(api_auth_data.model_dump())
505
504
  )
506
505
 
507
- if require_token_string and not res.token_string:
506
+ if require_token_string and not api_auth_data.token_string:
508
507
  raise APIException(
509
508
  status_code=starlette.status.HTTP_401_UNAUTHORIZED,
510
509
  error_code=ErrorSO.APIErrorCodes.cannot_authorize,
511
- error_data=_error_data
510
+ error_data=safely_transfer_to_json_str_to_json_obj(api_auth_data.model_dump())
512
511
  )
513
512
 
514
- return res
513
+ if api_key_string_validator is not None:
514
+ api_auth_data = api_key_string_validator(api_auth_data=api_auth_data)
515
+
516
+ if token_string_validator is not None:
517
+ api_auth_data = token_string_validator(api_auth_data=api_auth_data)
518
+
519
+ return api_auth_data
515
520
 
516
521
  return func
517
522
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: arpakitlib
3
- Version: 1.6.87
3
+ Version: 1.6.89
4
4
  Summary: arpakitlib
5
5
  Home-page: https://github.com/ARPAKIT-Company/arpakitlib
6
6
  License: Apache-2.0
@@ -34,7 +34,7 @@ arpakitlib/_arpakit_project_template/manage/poetry_lock.sh,sha256=9oiTdi8ynGQWct
34
34
  arpakitlib/_arpakit_project_template/manage/poetry_remove_and_add_arpakitlib.sh,sha256=-DvxXI-oaAQxIZFtiCfNBhqpRgJcWWuxhoHb9Nou0a4,197
35
35
  arpakitlib/_arpakit_project_template/manage/poetry_show.sh,sha256=pclR9efCNrrGyJR2HrdDM4PCUFGg0OSlRtjQ3Srv8W8,24
36
36
  arpakitlib/_arpakit_project_template/manage/poetry_update.sh,sha256=ZtoXIC4Qq7PMTDxQMwUxvkYC6lTc5LC23ILTywWbyoU,164
37
- arpakitlib/_arpakit_project_template/manage/poetry_update_arpakitlib.sh,sha256=chVSeDzTeKzwKld6h2kBx_Gd0dU2DZf0lJGlgPQtBfs,164
37
+ arpakitlib/_arpakit_project_template/manage/poetry_update_arpakitlib.sh,sha256=hh7vj-yKgKqLfaGb8cjsJ_NTa7fBtE4s3yxzte4D8bw,163
38
38
  arpakitlib/_arpakit_project_template/manage/sandbox/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
39
  arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_1.py,sha256=WdE1IWyObxVUT9jE3qgNMaFXXkKV6nUI0ZToLT1uhdk,155
40
40
  arpakitlib/_arpakit_project_template/manage/sandbox/sandbox_2.py,sha256=WdE1IWyObxVUT9jE3qgNMaFXXkKV6nUI0ZToLT1uhdk,155
@@ -95,7 +95,7 @@ arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css,sha256=jzPZlgJTFwSdSphk9C
95
95
  arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css.map,sha256=5wq8eXMLU6Zxb45orZPL1zAsBFJReFw6GjYqGpUX3hg,262650
96
96
  arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js,sha256=ffrLZHHEQ_g84A-ul3yWa10Kk09waOAxHcQXPuZuavg,339292
97
97
  arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js.map,sha256=9UhIW7MqCOZPAz1Sl1IKfZUuhWU0p-LJqrnjjJD9Xhc,1159454
98
- arpakitlib/ar_fastapi_util.py,sha256=KFSD2XS-NZvpz_Dk-IGfF35Yc9miUGOqR23EtfGdySI,20670
98
+ arpakitlib/ar_fastapi_util.py,sha256=X72pf0JsPBLla6Q1WYBUrf2w_F7ukKwUYSRZCnw2Yi0,21465
99
99
  arpakitlib/ar_file_storage_in_dir_util.py,sha256=D3e3rGuHoI6xqAA5mVvEpVVpOWY1jyjNsjj2UhyHRbE,3674
100
100
  arpakitlib/ar_file_util.py,sha256=XiwmeycxoLqtYnGOu5q6IEaJJXilZvtLvsKDKtwqSLY,137
101
101
  arpakitlib/ar_hash_util.py,sha256=Iqy6KBAOLBQMFLWv676boI5sV7atT2B-fb7aCdHOmIQ,340
@@ -126,9 +126,9 @@ arpakitlib/ar_str_util.py,sha256=AhcdrEm-pXRilCaDWCdTfVkQSy0SnbE52ur43Ltr6cI,212
126
126
  arpakitlib/ar_type_util.py,sha256=5nDnXL5Oyozlg8XvxMrogsoYiG8_atItg46A0mtv-pk,2025
127
127
  arpakitlib/ar_yookassa_api_client_util.py,sha256=5GMvu8paByni8buhc1vpHB7n6oXe0gPfj1LSvnyZCrQ,5307
128
128
  arpakitlib/ar_zabbix_util.py,sha256=Q-VR4MvoZ9aHwZeYZr9G3LwN-ANx1T5KFmF6pvPM-9M,6402
129
- arpakitlib-1.6.87.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
130
- arpakitlib-1.6.87.dist-info/METADATA,sha256=2zHGaa77984atHruCVSmj-2Y3fLFihO2ROfjJjSVHmY,2739
131
- arpakitlib-1.6.87.dist-info/NOTICE,sha256=95aUzaPJjVpDsGAsNzVnq7tHTxAl0s5UFznCTkVCau4,763
132
- arpakitlib-1.6.87.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
133
- arpakitlib-1.6.87.dist-info/entry_points.txt,sha256=VHkTDXDOMrgcNzGfKhEhoOIIz6T8Kkt46hy95Zc1iL0,74
134
- arpakitlib-1.6.87.dist-info/RECORD,,
129
+ arpakitlib-1.6.89.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
130
+ arpakitlib-1.6.89.dist-info/METADATA,sha256=Wg3XKaZEYazWZ6UtVettl0ZZEu3y3mvlwwFsE9vgpYM,2739
131
+ arpakitlib-1.6.89.dist-info/NOTICE,sha256=95aUzaPJjVpDsGAsNzVnq7tHTxAl0s5UFznCTkVCau4,763
132
+ arpakitlib-1.6.89.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
133
+ arpakitlib-1.6.89.dist-info/entry_points.txt,sha256=VHkTDXDOMrgcNzGfKhEhoOIIz6T8Kkt46hy95Zc1iL0,74
134
+ arpakitlib-1.6.89.dist-info/RECORD,,