ul-api-utils 8.0.2__tar.gz → 8.0.3__tar.gz

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.

Potentially problematic release.


This version of ul-api-utils might be problematic. Click here for more details.

Files changed (161) hide show
  1. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/PKG-INFO +1 -1
  2. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/setup.py +1 -1
  3. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/api_resource/api_request.py +1 -0
  4. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/api_resource/api_response.py +3 -3
  5. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/validators/custom_fields.py +1 -65
  6. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils.egg-info/PKG-INFO +1 -1
  7. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/LICENSE +0 -0
  8. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/README.md +0 -0
  9. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/example/__init__.py +0 -0
  10. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/example/conf.py +0 -0
  11. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/example/main.py +0 -0
  12. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/example/models/__init__.py +0 -0
  13. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/example/permissions.py +0 -0
  14. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/example/pure_flask_example.py +0 -0
  15. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/example/rate_limit_load.py +0 -0
  16. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/example/redis_repository.py +0 -0
  17. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/example/routes/__init__.py +0 -0
  18. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/example/routes/api_some.py +0 -0
  19. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/example/sockets/__init__.py +0 -0
  20. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/example/sockets/on_connect.py +0 -0
  21. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/example/sockets/on_disconnect.py +0 -0
  22. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/example/sockets/on_json.py +0 -0
  23. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/example/sockets/on_message.py +0 -0
  24. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/example/sockets/on_open.py +0 -0
  25. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/example/workers/__init__.py +0 -0
  26. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/example/workers/worker.py +0 -0
  27. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/setup.cfg +0 -0
  28. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/__init__.py +0 -0
  29. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/access/__init__.py +0 -0
  30. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/api_resource/__init__.py +0 -0
  31. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/api_resource/api_resource.py +0 -0
  32. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/api_resource/api_resource_config.py +0 -0
  33. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/api_resource/api_resource_error_handling.py +0 -0
  34. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/api_resource/api_resource_fn_typing.py +0 -0
  35. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/api_resource/api_resource_type.py +0 -0
  36. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/api_resource/api_response_db.py +0 -0
  37. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/api_resource/api_response_payload_alias.py +0 -0
  38. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/api_resource/db_types.py +0 -0
  39. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/api_resource/signature_check.py +0 -0
  40. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/commands/__init__.py +0 -0
  41. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/commands/cmd_enc_keys.py +0 -0
  42. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/commands/cmd_gen_api_user_token.py +0 -0
  43. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/commands/cmd_gen_new_api_user.py +0 -0
  44. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/commands/cmd_generate_api_docs.py +0 -0
  45. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/commands/cmd_start.py +0 -0
  46. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/commands/cmd_worker_start.py +0 -0
  47. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/commands/start/__init__.py +0 -0
  48. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/commands/start/gunicorn.conf.local.py +0 -0
  49. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/commands/start/gunicorn.conf.py +0 -0
  50. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/commands/start/wsgi.py +0 -0
  51. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/conf/ul-debugger-main.js +0 -0
  52. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/conf/ul-debugger-ui.js +0 -0
  53. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/conf.py +0 -0
  54. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/const.py +0 -0
  55. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/debug/__init__.py +0 -0
  56. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/debug/debugger.py +0 -0
  57. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/debug/malloc.py +0 -0
  58. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/debug/stat.py +0 -0
  59. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/encrypt/__init__.py +0 -0
  60. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/encrypt/encrypt_decrypt_abstract.py +0 -0
  61. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/encrypt/encrypt_decrypt_aes_xtea.py +0 -0
  62. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/errors.py +0 -0
  63. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/internal_api/__init__.py +0 -0
  64. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/internal_api/__tests__/__init__.py +0 -0
  65. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/internal_api/__tests__/internal_api.py +0 -0
  66. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/internal_api/__tests__/internal_api_content_type.py +0 -0
  67. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/internal_api/internal_api.py +0 -0
  68. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/internal_api/internal_api_check_context.py +0 -0
  69. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/internal_api/internal_api_error.py +0 -0
  70. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/internal_api/internal_api_response.py +0 -0
  71. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/main.py +0 -0
  72. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/modules/__init__.py +0 -0
  73. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/modules/__tests__/__init__.py +0 -0
  74. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/modules/__tests__/test_api_sdk_jwt.py +0 -0
  75. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/modules/api_sdk.py +0 -0
  76. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/modules/api_sdk_config.py +0 -0
  77. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/modules/api_sdk_jwt.py +0 -0
  78. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/modules/intermediate_state.py +0 -0
  79. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/modules/worker_context.py +0 -0
  80. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/modules/worker_sdk.py +0 -0
  81. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/modules/worker_sdk_config.py +0 -0
  82. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/py.typed +0 -0
  83. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/resources/__init__.py +0 -0
  84. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/resources/caching.py +0 -0
  85. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/resources/debugger_scripts.py +0 -0
  86. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/resources/health_check/__init__.py +0 -0
  87. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/resources/health_check/const.py +0 -0
  88. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/resources/health_check/health_check.py +0 -0
  89. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/resources/health_check/health_check_template.py +0 -0
  90. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/resources/health_check/resource.py +0 -0
  91. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/resources/not_implemented.py +0 -0
  92. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/resources/permissions.py +0 -0
  93. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/resources/rate_limitter.py +0 -0
  94. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/resources/socketio.py +0 -0
  95. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/resources/swagger.py +0 -0
  96. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/resources/web_forms/__init__.py +0 -0
  97. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/resources/web_forms/custom_fields/__init__.py +0 -0
  98. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/resources/web_forms/custom_fields/custom_checkbox_select.py +0 -0
  99. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/resources/web_forms/custom_widgets/__init__.py +0 -0
  100. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/resources/web_forms/custom_widgets/custom_select_widget.py +0 -0
  101. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/resources/web_forms/custom_widgets/custom_text_input_widget.py +0 -0
  102. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/resources/web_forms/uni_form.py +0 -0
  103. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/sentry.py +0 -0
  104. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/__init__.py +0 -0
  105. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/__tests__/__init__.py +0 -0
  106. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/__tests__/api_path_version.py +0 -0
  107. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/__tests__/unwrap_typing.py +0 -0
  108. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/api_encoding.py +0 -0
  109. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/api_format.py +0 -0
  110. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/api_method.py +0 -0
  111. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/api_pagination.py +0 -0
  112. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/api_path_version.py +0 -0
  113. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/api_request_info.py +0 -0
  114. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/avro.py +0 -0
  115. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/broker_topics_message_count.py +0 -0
  116. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/cached_per_request.py +0 -0
  117. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/colors.py +0 -0
  118. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/constants.py +0 -0
  119. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/decode_base64.py +0 -0
  120. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/deprecated.py +0 -0
  121. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/flags.py +0 -0
  122. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/flask_swagger_generator/__init__.py +0 -0
  123. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/flask_swagger_generator/conf.py +0 -0
  124. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/flask_swagger_generator/exceptions.py +0 -0
  125. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/flask_swagger_generator/specifiers/__init__.py +0 -0
  126. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/flask_swagger_generator/specifiers/swagger_models.py +0 -0
  127. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/flask_swagger_generator/specifiers/swagger_specifier.py +0 -0
  128. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/flask_swagger_generator/specifiers/swagger_three_specifier.py +0 -0
  129. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/flask_swagger_generator/specifiers/swagger_version.py +0 -0
  130. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/flask_swagger_generator/utils/__init__.py +0 -0
  131. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/flask_swagger_generator/utils/input_type.py +0 -0
  132. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/flask_swagger_generator/utils/parameter_type.py +0 -0
  133. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/flask_swagger_generator/utils/replace_in_dict.py +0 -0
  134. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/flask_swagger_generator/utils/request_type.py +0 -0
  135. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/flask_swagger_generator/utils/schema_type.py +0 -0
  136. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/flask_swagger_generator/utils/security_type.py +0 -0
  137. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/imports.py +0 -0
  138. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/instance_checks.py +0 -0
  139. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/jinja/__init__.py +0 -0
  140. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/jinja/t_url_for.py +0 -0
  141. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/jinja/to_pretty_json.py +0 -0
  142. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/json_encoder.py +0 -0
  143. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/load_modules.py +0 -0
  144. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/memory_db/__init__.py +0 -0
  145. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/memory_db/__tests__/__init__.py +0 -0
  146. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/memory_db/errors.py +0 -0
  147. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/memory_db/repository.py +0 -0
  148. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/token_check.py +0 -0
  149. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/token_check_through_request.py +0 -0
  150. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/unwrap_typing.py +0 -0
  151. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/utils/uuid_converter.py +0 -0
  152. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/validators/__init__.py +0 -0
  153. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/validators/__tests__/__init__.py +0 -0
  154. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/validators/__tests__/test_custom_fields.py +0 -0
  155. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/validators/validate_empty_object.py +0 -0
  156. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils/validators/validate_uuid.py +0 -0
  157. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils.egg-info/SOURCES.txt +0 -0
  158. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils.egg-info/dependency_links.txt +0 -0
  159. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils.egg-info/entry_points.txt +0 -0
  160. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils.egg-info/requires.txt +0 -0
  161. {ul-api-utils-8.0.2 → ul-api-utils-8.0.3}/ul_api_utils.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ul-api-utils
3
- Version: 8.0.2
3
+ Version: 8.0.3
4
4
  Summary: Python api utils
5
5
  Author: Unic-lab
6
6
  Author-email:
@@ -9,7 +9,7 @@ with open(path.join(HERE, 'README.md'), encoding='utf-8') as f:
9
9
 
10
10
  setup(
11
11
  name='ul-api-utils',
12
- version='8.0.2',
12
+ version='8.0.3',
13
13
  description='Python api utils',
14
14
  author='Unic-lab',
15
15
  long_description=long_description,
@@ -43,6 +43,7 @@ class ApiRequestQuery(BaseModel):
43
43
  page: Optional[int] = None
44
44
 
45
45
  @model_validator(mode="before")
46
+ @classmethod
46
47
  def validate_empty_values(cls, values: Dict[str, Any]) -> Dict[str, Any]:
47
48
  vals = dict()
48
49
  for k, v in values.items():
@@ -4,7 +4,7 @@ from types import NoneType
4
4
  from typing import TypeVar, Generic, List, Optional, Dict, Any, Callable, Union, BinaryIO, Tuple, Type
5
5
  import msgpack
6
6
  from flask import jsonify, send_file, redirect, Response, request
7
- from pydantic import ConfigDict
7
+ from pydantic import ConfigDict, RootModel
8
8
  from pydantic import BaseModel
9
9
  from werkzeug import Response as BaseResponse
10
10
 
@@ -153,8 +153,8 @@ TPayloadTotalUnion = Union[
153
153
  ]
154
154
 
155
155
 
156
- class DictJsonApiResponsePayload(JsonApiResponsePayload):
157
- __root__: Dict[str, Any]
156
+ class DictJsonApiResponsePayload(RootModel[Dict[str, Any]]):
157
+ pass
158
158
 
159
159
 
160
160
  TProxyPayload = TypeVar('TProxyPayload', bound=Union[JsonApiResponsePayload, List[JsonApiResponsePayload], None])
@@ -1,87 +1,23 @@
1
1
  import csv
2
2
  from typing import TypeVar, Generic, List, Union, Generator, Callable, Annotated, Any
3
3
 
4
- from pydantic import ValidationError, Field, BaseModel, \
5
- StringConstraints
4
+ from pydantic import ValidationError, Field, StringConstraints
6
5
  from pydantic.v1.fields import ModelField
7
6
 
8
7
  from ul_api_utils.const import CRON_EXPRESSION_VALIDATION_REGEX, MIN_UTC_OFFSET_SECONDS, MAX_UTC_OFFSET_SECONDS
9
8
 
10
9
  NotEmptyListAnnotation = Annotated[list[Any], Field(min_length=1)]
11
-
12
- class NotEmptyList(BaseModel):
13
- """Type that can be used in pydantic field, that will validate empty lists."""
14
- not_empty_list: NotEmptyListAnnotation
15
-
16
-
17
10
  CronScheduleAnnotation = Annotated[str, StringConstraints(pattern=CRON_EXPRESSION_VALIDATION_REGEX)]
18
-
19
- class CronScheduleStr(BaseModel):
20
- """Type that can be used in pydantic field, that will validate cron-formatted strings."""
21
- cron_schedule_str: CronScheduleAnnotation
22
-
23
-
24
11
  WhiteSpaceStrippedStrAnnotation = Annotated[str, StringConstraints(strip_whitespace=True)]
25
-
26
- class WhiteSpaceStrippedStr(BaseModel):
27
- """Type that can be used in pydantic field, that will strip whitespaces strings."""
28
- white_space_stripped_str: WhiteSpaceStrippedStrAnnotation
29
-
30
-
31
12
  UTCOffsetSecondsAnnotation = Annotated[int, Field(ge=MIN_UTC_OFFSET_SECONDS, le=MAX_UTC_OFFSET_SECONDS)]
32
-
33
- class UTCOffsetSeconds(BaseModel):
34
- """Type that can be used for pydantic fields to represent the offset from UTC."""
35
- utc_offset: UTCOffsetSecondsAnnotation
36
-
37
13
  PgTypePasswordStrAnnotation = Annotated[str, StringConstraints(min_length=6, max_length=72)]
38
-
39
- class PgTypePasswordStr(BaseModel):
40
- """Type that can be used for pydantic fields to represent password with length from 6 to 72 characters."""
41
- pg_type_password_str: PgTypePasswordStrAnnotation
42
-
43
-
44
14
  PgTypeShortStrAnnotation = Annotated[str, StringConstraints(min_length=0, max_length=255)]
45
-
46
- class PgTypeShortStr(BaseModel):
47
- """Type that can be used for pydantic fields to represent short string with length from 0 to 255 characters."""
48
- pg_type_short_str: PgTypeShortStrAnnotation
49
-
50
-
51
15
  PgTypeLongStrAnnotation = Annotated[str, StringConstraints(min_length=0, max_length=1000)]
52
-
53
- class PgTypeLongStr(BaseModel):
54
- """Type that can be used for pydantic fields to represent short string with length from 0 to 1000 characters."""
55
- pg_type_long_str: PgTypeLongStrAnnotation
56
-
57
-
58
16
  PgTypeInt32Annotation = Annotated[int, Field(ge=-2147483648, le=2147483648)]
59
-
60
- class PgTypeInt32(BaseModel):
61
- """Type that can be used for pydantic fields to represent int32 number."""
62
- pg_type_int32: PgTypeInt32Annotation
63
-
64
-
65
17
  PgTypePositiveInt32Annotation = Annotated[int, Field(ge=0, le=2147483648)]
66
-
67
- class PgTypePositiveInt32(BaseModel):
68
- """Type that can be used for pydantic fields to represent positive int32 number."""
69
- pg_type_positive_int32: PgTypePositiveInt32Annotation
70
-
71
-
72
18
  PgTypeInt16Annotation = Annotated[int, Field(ge=-32768, le=32768)]
73
-
74
- class PgTypeInt16(BaseModel):
75
- """Type that can be used for pydantic fields to represent int16 (SMALLINT) number."""
76
- pg_type_int16: PgTypeInt16Annotation
77
-
78
-
79
19
  PgTypePositiveInt16Annotation = Annotated[int, Field(ge=0, le=32768)]
80
20
 
81
- class PgTypePositiveInt16(BaseModel):
82
- """Type that can be used for pydantic fields to represent positive int16 (SMALLINT) number."""
83
- pg_type_positive_int16_annotation: PgTypePositiveInt16Annotation
84
-
85
21
 
86
22
  QueryParamsSeparatedListValueType = TypeVar('QueryParamsSeparatedListValueType')
87
23
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ul-api-utils
3
- Version: 8.0.2
3
+ Version: 8.0.3
4
4
  Summary: Python api utils
5
5
  Author: Unic-lab
6
6
  Author-email:
File without changes
File without changes
File without changes