ul-api-utils 8.1.17__tar.gz → 9.0.0a0__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 (162) hide show
  1. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/PKG-INFO +2 -3
  2. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/setup.py +28 -29
  3. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/api_resource/api_resource.py +3 -4
  4. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/api_resource/api_resource_fn_typing.py +3 -2
  5. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/api_resource/api_response.py +1 -1
  6. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/internal_api/internal_api_response.py +6 -6
  7. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/unwrap_typing.py +1 -4
  8. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils.egg-info/PKG-INFO +2 -3
  9. ul-api-utils-9.0.0a0/ul_api_utils.egg-info/requires.txt +33 -0
  10. ul-api-utils-8.1.17/ul_api_utils.egg-info/requires.txt +0 -33
  11. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/LICENSE +0 -0
  12. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/README.md +0 -0
  13. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/example/__init__.py +0 -0
  14. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/example/conf.py +0 -0
  15. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/example/main.py +0 -0
  16. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/example/models/__init__.py +0 -0
  17. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/example/permissions.py +0 -0
  18. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/example/pure_flask_example.py +0 -0
  19. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/example/rate_limit_load.py +0 -0
  20. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/example/redis_repository.py +0 -0
  21. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/example/routes/__init__.py +0 -0
  22. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/example/routes/api_some.py +0 -0
  23. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/example/sockets/__init__.py +0 -0
  24. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/example/sockets/on_connect.py +0 -0
  25. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/example/sockets/on_disconnect.py +0 -0
  26. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/example/sockets/on_json.py +0 -0
  27. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/example/sockets/on_message.py +0 -0
  28. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/example/sockets/on_open.py +0 -0
  29. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/example/workers/__init__.py +0 -0
  30. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/example/workers/worker.py +0 -0
  31. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/setup.cfg +0 -0
  32. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/__init__.py +0 -0
  33. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/access/__init__.py +0 -0
  34. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/api_resource/__init__.py +0 -0
  35. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/api_resource/api_request.py +0 -0
  36. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/api_resource/api_resource_config.py +0 -0
  37. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/api_resource/api_resource_error_handling.py +0 -0
  38. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/api_resource/api_resource_type.py +0 -0
  39. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/api_resource/api_response_db.py +0 -0
  40. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/api_resource/api_response_payload_alias.py +0 -0
  41. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/api_resource/db_types.py +0 -0
  42. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/api_resource/signature_check.py +0 -0
  43. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/commands/__init__.py +0 -0
  44. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/commands/cmd_enc_keys.py +0 -0
  45. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/commands/cmd_gen_api_user_token.py +0 -0
  46. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/commands/cmd_gen_new_api_user.py +0 -0
  47. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/commands/cmd_generate_api_docs.py +0 -0
  48. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/commands/cmd_start.py +0 -0
  49. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/commands/cmd_worker_start.py +0 -0
  50. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/commands/start/__init__.py +0 -0
  51. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/commands/start/gunicorn.conf.local.py +0 -0
  52. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/commands/start/gunicorn.conf.py +0 -0
  53. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/commands/start/wsgi.py +0 -0
  54. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/conf/ul-debugger-main.js +0 -0
  55. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/conf/ul-debugger-ui.js +0 -0
  56. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/conf.py +0 -0
  57. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/const.py +0 -0
  58. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/debug/__init__.py +0 -0
  59. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/debug/debugger.py +0 -0
  60. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/debug/malloc.py +0 -0
  61. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/debug/stat.py +0 -0
  62. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/encrypt/__init__.py +0 -0
  63. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/encrypt/encrypt_decrypt_abstract.py +0 -0
  64. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/encrypt/encrypt_decrypt_aes_xtea.py +0 -0
  65. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/errors.py +0 -0
  66. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/internal_api/__init__.py +0 -0
  67. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/internal_api/__tests__/__init__.py +0 -0
  68. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/internal_api/__tests__/internal_api.py +0 -0
  69. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/internal_api/__tests__/internal_api_content_type.py +0 -0
  70. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/internal_api/internal_api.py +0 -0
  71. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/internal_api/internal_api_check_context.py +0 -0
  72. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/internal_api/internal_api_error.py +0 -0
  73. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/main.py +0 -0
  74. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/modules/__init__.py +0 -0
  75. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/modules/__tests__/__init__.py +0 -0
  76. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/modules/__tests__/test_api_sdk_jwt.py +0 -0
  77. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/modules/api_sdk.py +0 -0
  78. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/modules/api_sdk_config.py +0 -0
  79. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/modules/api_sdk_jwt.py +0 -0
  80. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/modules/intermediate_state.py +0 -0
  81. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/modules/worker_context.py +0 -0
  82. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/modules/worker_sdk.py +0 -0
  83. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/modules/worker_sdk_config.py +0 -0
  84. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/py.typed +0 -0
  85. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/resources/__init__.py +0 -0
  86. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/resources/caching.py +0 -0
  87. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/resources/debugger_scripts.py +0 -0
  88. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/resources/health_check/__init__.py +0 -0
  89. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/resources/health_check/const.py +0 -0
  90. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/resources/health_check/health_check.py +0 -0
  91. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/resources/health_check/health_check_template.py +0 -0
  92. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/resources/health_check/resource.py +0 -0
  93. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/resources/not_implemented.py +0 -0
  94. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/resources/permissions.py +0 -0
  95. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/resources/rate_limitter.py +0 -0
  96. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/resources/socketio.py +0 -0
  97. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/resources/swagger.py +0 -0
  98. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/resources/web_forms/__init__.py +0 -0
  99. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/resources/web_forms/custom_fields/__init__.py +0 -0
  100. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/resources/web_forms/custom_fields/custom_checkbox_select.py +0 -0
  101. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/resources/web_forms/custom_widgets/__init__.py +0 -0
  102. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/resources/web_forms/custom_widgets/custom_select_widget.py +0 -0
  103. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/resources/web_forms/custom_widgets/custom_text_input_widget.py +0 -0
  104. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/resources/web_forms/uni_form.py +0 -0
  105. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/sentry.py +0 -0
  106. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/__init__.py +0 -0
  107. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/__tests__/__init__.py +0 -0
  108. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/__tests__/api_path_version.py +0 -0
  109. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/__tests__/unwrap_typing.py +0 -0
  110. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/api_encoding.py +0 -0
  111. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/api_format.py +0 -0
  112. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/api_method.py +0 -0
  113. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/api_pagination.py +0 -0
  114. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/api_path_version.py +0 -0
  115. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/api_request_info.py +0 -0
  116. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/avro.py +0 -0
  117. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/broker_topics_message_count.py +0 -0
  118. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/cached_per_request.py +0 -0
  119. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/colors.py +0 -0
  120. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/constants.py +0 -0
  121. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/decode_base64.py +0 -0
  122. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/deprecated.py +0 -0
  123. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/flags.py +0 -0
  124. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/flask_swagger_generator/__init__.py +0 -0
  125. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/flask_swagger_generator/conf.py +0 -0
  126. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/flask_swagger_generator/exceptions.py +0 -0
  127. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/flask_swagger_generator/specifiers/__init__.py +0 -0
  128. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/flask_swagger_generator/specifiers/swagger_models.py +0 -0
  129. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/flask_swagger_generator/specifiers/swagger_specifier.py +0 -0
  130. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/flask_swagger_generator/specifiers/swagger_three_specifier.py +0 -0
  131. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/flask_swagger_generator/specifiers/swagger_version.py +0 -0
  132. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/flask_swagger_generator/utils/__init__.py +0 -0
  133. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/flask_swagger_generator/utils/input_type.py +0 -0
  134. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/flask_swagger_generator/utils/parameter_type.py +0 -0
  135. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/flask_swagger_generator/utils/replace_in_dict.py +0 -0
  136. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/flask_swagger_generator/utils/request_type.py +0 -0
  137. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/flask_swagger_generator/utils/schema_type.py +0 -0
  138. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/flask_swagger_generator/utils/security_type.py +0 -0
  139. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/imports.py +0 -0
  140. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/instance_checks.py +0 -0
  141. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/jinja/__init__.py +0 -0
  142. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/jinja/t_url_for.py +0 -0
  143. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/jinja/to_pretty_json.py +0 -0
  144. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/json_encoder.py +0 -0
  145. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/load_modules.py +0 -0
  146. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/memory_db/__init__.py +0 -0
  147. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/memory_db/__tests__/__init__.py +0 -0
  148. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/memory_db/errors.py +0 -0
  149. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/memory_db/repository.py +0 -0
  150. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/token_check.py +0 -0
  151. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/token_check_through_request.py +0 -0
  152. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/utils/uuid_converter.py +0 -0
  153. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/validators/__init__.py +0 -0
  154. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/validators/__tests__/__init__.py +0 -0
  155. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/validators/__tests__/test_custom_fields.py +0 -0
  156. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/validators/custom_fields.py +0 -0
  157. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/validators/validate_empty_object.py +0 -0
  158. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils/validators/validate_uuid.py +0 -0
  159. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils.egg-info/SOURCES.txt +0 -0
  160. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils.egg-info/dependency_links.txt +0 -0
  161. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/ul_api_utils.egg-info/entry_points.txt +0 -0
  162. {ul-api-utils-8.1.17 → ul-api-utils-9.0.0a0}/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.1.17
3
+ Version: 9.0.0a0
4
4
  Summary: Python api utils
5
5
  Author: Unic-lab
6
6
  Author-email:
@@ -9,10 +9,9 @@ Platform: any
9
9
  Classifier: Intended Audience :: Developers
10
10
  Classifier: License :: OSI Approved :: MIT License
11
11
  Classifier: Programming Language :: Python
12
- Classifier: Programming Language :: Python :: 3.6
13
- Classifier: Programming Language :: Python :: 3.7
14
12
  Classifier: Programming Language :: Python :: 3.8
15
13
  Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.10
16
15
  Classifier: Operating System :: OS Independent
17
16
  Description-Content-Type: text/markdown
18
17
  License-File: LICENSE
@@ -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.1.17',
12
+ version='9.0.0-alpha-0',
13
13
  description='Python api utils',
14
14
  author='Unic-lab',
15
15
  long_description=long_description,
@@ -40,47 +40,46 @@ setup(
40
40
  "Intended Audience :: Developers",
41
41
  "License :: OSI Approved :: MIT License",
42
42
  "Programming Language :: Python",
43
- "Programming Language :: Python :: 3.6",
44
- "Programming Language :: Python :: 3.7",
45
43
  "Programming Language :: Python :: 3.8",
46
44
  "Programming Language :: Python :: 3.9",
45
+ "Programming Language :: Python :: 3.10",
47
46
  "Operating System :: OS Independent",
48
47
  ],
49
48
  platforms='any',
50
49
  install_requires=[
51
50
  "ul-unipipeline==2.0.6",
52
- "jinja2==3.1.2",
53
- "flask==2.1.3",
54
- "flask-wtf==1.0.1",
55
- "flask-limiter==2.5.1",
56
- "flask-caching==2.1.0",
51
+ "jinja2==3.1.6",
52
+ "flask==3.1.0",
53
+ "flask-wtf==1.2.2",
54
+ "flask-limiter==3.10.1",
55
+ "flask-caching==2.3.1",
57
56
  "flask-swagger-ui==4.11.1",
58
- "flask-monitoringdashboard==3.1.2",
59
- "pycryptodome==3.15.0",
60
- "pyjwt==2.4.0",
61
- "gunicorn==20.1.0",
62
- "gevent==24.2.1",
57
+ "flask-monitoringdashboard==3.3.2",
58
+ "pycryptodome==3.21.0",
59
+ "pyjwt==2.10.1",
60
+ "gunicorn==23.0.0",
61
+ "gevent==24.11.1",
63
62
  "gevent-websocket==0.10.1",
64
63
  "pyyaml==6.0",
65
- "requests==2.28.1",
66
- "cryptography==38.0.1",
64
+ "requests==2.32.0",
65
+ "cryptography==44.0.2",
67
66
  "colored==1.4.3",
68
- "flask-socketio==5.3.6",
69
- "ormsgpack==1.4.1",
70
- "msgpack==1.0.4",
71
- "msgpack-types==0.2.0",
72
- "fastavro==1.7.0",
67
+ "flask-socketio==5.5.1",
68
+ "ormsgpack==1.8.0",
69
+ "msgpack==1.1.0",
70
+ "msgpack-types==0.5.0",
71
+ "fastavro==1.10.0",
73
72
  "factory-boy==3.3.0",
74
- "sentry-sdk[flask]==1.9.2",
75
- "faker==24.8.0",
76
- "types-requests==2.28.8",
73
+ "sentry-sdk[flask]==2.22.0",
74
+ "faker==37.0.0",
75
+ "types-requests==2.32.0.20250306",
77
76
  "types-jinja2==2.11.9",
78
- "xlsxwriter==3.2.0",
79
- "werkzeug==2.3.7",
77
+ "xlsxwriter==3.2.2",
78
+ "werkzeug==3.1.3",
80
79
  "frozendict==2.4.4",
81
- "wtforms==3.0.1",
82
- "wtforms-alchemy==0.18.0",
83
- "pathvalidate==3.2.0",
80
+ "wtforms==3.2.1",
81
+ "wtforms-alchemy==0.19.0",
82
+ "pathvalidate==3.2.3",
84
83
 
85
84
  # "opentelemetry-sdk==1.8.0",
86
85
  # "opentelemetry-api==1.8.0",
@@ -88,7 +87,7 @@ setup(
88
87
  # "opentelemetry-instrumentation-requests==0.27b0",
89
88
  # "opentelemetry-exporter-jaeger==1.8.0",
90
89
  # "opentelemetry-instrumentation-sqlalchemy==0.27b0",
91
- # "ul-db-utils==4.0.2", # ACTUALIZE, BUT DO NOT UNCOMMENT PLEASE
90
+ # "ul-db-utils==5.0.2a0", # ACTUALIZE, BUT DO NOT UNCOMMENT PLEASE
92
91
  # "ul-py-tool==2.1.3", # ACTUALIZE, BUT DO NOT UNCOMMENT PLEASE
93
92
  ],
94
93
  )
@@ -16,9 +16,8 @@ from ul_api_utils.api_resource.api_resource_error_handling import WEB_EXCEPTION_
16
16
  ProcessingExceptionsParams, WEB_UNKNOWN_ERROR_PARAMS
17
17
  from ul_api_utils.api_resource.api_resource_fn_typing import ApiResourceFnTyping
18
18
  from ul_api_utils.api_resource.api_resource_type import ApiResourceType
19
- from ul_api_utils.api_resource.api_response import JsonApiResponse, HtmlApiResponse, FileApiResponse, \
20
- JsonApiResponsePayload, EmptyJsonApiResponse, \
21
- RedirectApiResponse, ProxyJsonApiResponse, RootJsonApiResponse, RootJsonApiResponsePayload
19
+ from ul_api_utils.api_resource.api_response import JsonApiResponse, HtmlApiResponse, FileApiResponse, JsonApiResponsePayload, EmptyJsonApiResponse, \
20
+ RedirectApiResponse, ProxyJsonApiResponse, RootJsonApiResponse
22
21
  from ul_api_utils.conf import APPLICATION_ENV, APPLICATION_JWT_PUBLIC_KEY, APPLICATION_DEBUG
23
22
  from ul_api_utils.const import REQUEST_HEADER__X_FORWARDED_FOR, \
24
23
  RESPONSE_HEADER__WWW_AUTH, OOPS, REQUEST_HEADER__USER_AGENT
@@ -39,7 +38,7 @@ TPayload = TypeVar('TPayload')
39
38
 
40
39
 
41
40
  T = TypeVar('T')
42
- TResp = TypeVar('TResp', bound=Union[JsonApiResponsePayload, RootJsonApiResponsePayload[Any]])
41
+ TResp = TypeVar('TResp', bound=JsonApiResponsePayload)
43
42
 
44
43
 
45
44
  class ApiResource:
@@ -25,7 +25,7 @@ if TYPE_CHECKING:
25
25
  FN_SYSTEM_PROPS = {"api_resource", "query", "body", "return", "body_validation_error", "query_validation_error"}
26
26
 
27
27
 
28
- def _is_complex_type(annotation: Any) -> bool:
28
+ def _is_complex_type(annotation):
29
29
  origin = get_origin(annotation)
30
30
 
31
31
  # Optional[type_] is typing.Union
@@ -165,7 +165,8 @@ class ApiResourceFnTyping(NamedTuple):
165
165
  return kwargs, errors
166
166
  body = self._get_body()
167
167
  try:
168
- expected_typing: Type[BaseModel | List[BaseModel]] = List[self.body_typing] if self.request_body_many else self.body_typing
168
+ expected_typing: Type[BaseModel | List[BaseModel]] = List[self.body_typing] \
169
+ if self.request_body_many else self.body_typing
169
170
  kwargs['body'] = TypeAdapter(expected_typing).validate_python(body)
170
171
  except ValidationError as ve:
171
172
  if self.has_body_validation_error:
@@ -168,7 +168,7 @@ class DictJsonApiResponsePayload(RootJsonApiResponsePayload[Dict[str, Any]]):
168
168
  pass
169
169
 
170
170
 
171
- TProxyPayload = TypeVar('TProxyPayload', bound=Union[JsonApiResponsePayload, List[JsonApiResponsePayload], RootJsonApiResponsePayload[Any], List[RootJsonApiResponsePayload[Any]], None])
171
+ TProxyPayload = TypeVar('TProxyPayload', bound=Union[JsonApiResponsePayload, List[JsonApiResponsePayload], None])
172
172
 
173
173
 
174
174
  class ProxyJsonApiResponse(Generic[TProxyPayload], EmptyJsonApiResponse):
@@ -7,7 +7,7 @@ from typing import Any, Optional, List, Generic, Type, TypeVar, Union, Dict, Nam
7
7
  import requests
8
8
  from pydantic import ValidationError
9
9
 
10
- from ul_api_utils.api_resource.api_response import JsonApiResponsePayload, RootJsonApiResponsePayload
10
+ from ul_api_utils.api_resource.api_response import JsonApiResponsePayload
11
11
  from ul_api_utils.api_resource.signature_check import set_model
12
12
  from ul_api_utils.const import RESPONSE_PROP_DEBUG_STATS, RESPONSE_PROP_PAYLOAD, RESPONSE_PROP_OK, RESPONSE_PROP_ERRORS, RESPONSE_PROP_TOTAL, RESPONSE_PROP_COUNT, MIME__JSON, \
13
13
  RESPONSE_HEADER__CONTENT_TYPE
@@ -18,7 +18,7 @@ from ul_api_utils.utils.api_format import ApiFormat
18
18
  from ul_api_utils.internal_api.internal_api_error import InternalApiResponseErrorObj
19
19
  from ul_api_utils.utils.unwrap_typing import UnwrappedOptionalObjOrListOfObj
20
20
 
21
- TPyloadType = TypeVar('TPyloadType', bound=Union[JsonApiResponsePayload, List[JsonApiResponsePayload], RootJsonApiResponsePayload[Any], List[RootJsonApiResponsePayload[Any]], None])
21
+ TPyloadType = TypeVar('TPyloadType', bound=Union[JsonApiResponsePayload, List[JsonApiResponsePayload], None])
22
22
  TResp = TypeVar('TResp', bound='InternalApiResponse[Any]')
23
23
 
24
24
 
@@ -73,17 +73,17 @@ class InternalApiResponse(Generic[TPyloadType]):
73
73
 
74
74
  self._parsed_schema: Optional[InternalApiResponseSchema] = None
75
75
  self._parsed_json: Any = None
76
- self._parsed_payload: Union[None, JsonApiResponsePayload, List[JsonApiResponsePayload], RootJsonApiResponsePayload[Any], List[RootJsonApiResponsePayload[Any]]] = None
76
+ self._parsed_payload: Union[None, JsonApiResponsePayload, List[JsonApiResponsePayload]] = None
77
77
 
78
78
  self._status_checked = False
79
79
  self._info = info
80
80
 
81
81
  if payload_type is not None:
82
- self._payload_type = UnwrappedOptionalObjOrListOfObj.parse(payload_type, JsonApiResponsePayload) or UnwrappedOptionalObjOrListOfObj.parse(payload_type, RootJsonApiResponsePayload)
82
+ self._payload_type = UnwrappedOptionalObjOrListOfObj.parse(payload_type, JsonApiResponsePayload)
83
83
  if self._payload_type is None:
84
- tn1, tn2 = JsonApiResponsePayload.__name__, RootJsonApiResponsePayload.__name__
84
+ tn = JsonApiResponsePayload.__name__
85
85
  raise ValueError(
86
- f'payload_typing is invalid. must be Union[Type[{tn1} | {tn2}], Optional[Type[{tn1} | {tn2}]], List[Type[{tn1} | {tn2}]], Optional[List[Type[{tn1} | {tn2}]]]]. {payload_type} was given',
86
+ f'payload_typing is invalid. must be Union[Type[{tn}], Optional[Type[{tn}]], List[Type[{tn}]], Optional[List[Type[{tn}]]]]. {payload_type} was given',
87
87
  )
88
88
 
89
89
  def typed(self, payload_type: Type[TPyloadType]) -> 'InternalApiResponse[TPyloadType]':
@@ -2,8 +2,6 @@ from dataclasses import dataclass
2
2
  from types import NoneType
3
3
  from typing import NamedTuple, Type, Tuple, _GenericAlias, _UnionGenericAlias, Any, Union, Optional, TypeVar, Generic, Callable # type: ignore
4
4
 
5
- from ul_api_utils.api_resource.api_response import RootJsonApiResponsePayload
6
-
7
5
 
8
6
  class TypingType(NamedTuple):
9
7
  value: Type[Any]
@@ -49,7 +47,6 @@ def unwrap_typing(t: Type[Any]) -> Union[TypingGeneric, TypingUnion, TypingType,
49
47
 
50
48
  T = TypeVar('T')
51
49
  TVal = TypeVar('TVal')
52
- TValRoot = TypeVar('TValRoot', bound=RootJsonApiResponsePayload[Any])
53
50
 
54
51
 
55
52
  def default_constructor(value_type: Type[TVal], data: Any) -> TVal:
@@ -75,7 +72,7 @@ class UnwrappedOptionalObjOrListOfObj(Generic[TVal]):
75
72
  return constructor(self.value_type, payload) # type: ignore
76
73
 
77
74
  @staticmethod
78
- def parse(t: Type[Any], type_constraint: Optional[Type[TVal | TValRoot]]) -> 'Optional[UnwrappedOptionalObjOrListOfObj[TVal]]':
75
+ def parse(t: Type[Any], type_constraint: Optional[Type[TVal]]) -> 'Optional[UnwrappedOptionalObjOrListOfObj[TVal]]':
79
76
  unwrapped_t = unwrap_typing(t)
80
77
 
81
78
  many = False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ul-api-utils
3
- Version: 8.1.17
3
+ Version: 9.0.0a0
4
4
  Summary: Python api utils
5
5
  Author: Unic-lab
6
6
  Author-email:
@@ -9,10 +9,9 @@ Platform: any
9
9
  Classifier: Intended Audience :: Developers
10
10
  Classifier: License :: OSI Approved :: MIT License
11
11
  Classifier: Programming Language :: Python
12
- Classifier: Programming Language :: Python :: 3.6
13
- Classifier: Programming Language :: Python :: 3.7
14
12
  Classifier: Programming Language :: Python :: 3.8
15
13
  Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.10
16
15
  Classifier: Operating System :: OS Independent
17
16
  Description-Content-Type: text/markdown
18
17
  License-File: LICENSE
@@ -0,0 +1,33 @@
1
+ ul-unipipeline==2.0.6
2
+ jinja2==3.1.6
3
+ flask==3.1.0
4
+ flask-wtf==1.2.2
5
+ flask-limiter==3.10.1
6
+ flask-caching==2.3.1
7
+ flask-swagger-ui==4.11.1
8
+ flask-monitoringdashboard==3.3.2
9
+ pycryptodome==3.21.0
10
+ pyjwt==2.10.1
11
+ gunicorn==23.0.0
12
+ gevent==24.11.1
13
+ gevent-websocket==0.10.1
14
+ pyyaml==6.0
15
+ requests==2.32.0
16
+ cryptography==44.0.2
17
+ colored==1.4.3
18
+ flask-socketio==5.5.1
19
+ ormsgpack==1.8.0
20
+ msgpack==1.1.0
21
+ msgpack-types==0.5.0
22
+ fastavro==1.10.0
23
+ factory-boy==3.3.0
24
+ sentry-sdk[flask]==2.22.0
25
+ faker==37.0.0
26
+ types-requests==2.32.0.20250306
27
+ types-jinja2==2.11.9
28
+ xlsxwriter==3.2.2
29
+ werkzeug==3.1.3
30
+ frozendict==2.4.4
31
+ wtforms==3.2.1
32
+ wtforms-alchemy==0.19.0
33
+ pathvalidate==3.2.3
@@ -1,33 +0,0 @@
1
- ul-unipipeline==2.0.6
2
- jinja2==3.1.2
3
- flask==2.1.3
4
- flask-wtf==1.0.1
5
- flask-limiter==2.5.1
6
- flask-caching==2.1.0
7
- flask-swagger-ui==4.11.1
8
- flask-monitoringdashboard==3.1.2
9
- pycryptodome==3.15.0
10
- pyjwt==2.4.0
11
- gunicorn==20.1.0
12
- gevent==24.2.1
13
- gevent-websocket==0.10.1
14
- pyyaml==6.0
15
- requests==2.28.1
16
- cryptography==38.0.1
17
- colored==1.4.3
18
- flask-socketio==5.3.6
19
- ormsgpack==1.4.1
20
- msgpack==1.0.4
21
- msgpack-types==0.2.0
22
- fastavro==1.7.0
23
- factory-boy==3.3.0
24
- sentry-sdk[flask]==1.9.2
25
- faker==24.8.0
26
- types-requests==2.28.8
27
- types-jinja2==2.11.9
28
- xlsxwriter==3.2.0
29
- werkzeug==2.3.7
30
- frozendict==2.4.4
31
- wtforms==3.0.1
32
- wtforms-alchemy==0.18.0
33
- pathvalidate==3.2.0
File without changes
File without changes
File without changes