ul-api-utils 9.0.0a1__tar.gz → 9.0.0a2__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-9.0.0a1 → ul-api-utils-9.0.0a2}/PKG-INFO +1 -1
  2. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/setup.py +2 -2
  3. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/api_resource/db_types.py +1 -1
  4. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/debug/stat.py +10 -10
  5. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/internal_api/internal_api.py +4 -5
  6. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/internal_api/internal_api_check_context.py +9 -9
  7. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/modules/api_sdk.py +5 -5
  8. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/cached_per_request.py +3 -3
  9. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils.egg-info/PKG-INFO +1 -1
  10. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/LICENSE +0 -0
  11. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/README.md +0 -0
  12. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/example/__init__.py +0 -0
  13. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/example/conf.py +0 -0
  14. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/example/main.py +0 -0
  15. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/example/models/__init__.py +0 -0
  16. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/example/permissions.py +0 -0
  17. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/example/pure_flask_example.py +0 -0
  18. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/example/rate_limit_load.py +0 -0
  19. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/example/redis_repository.py +0 -0
  20. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/example/routes/__init__.py +0 -0
  21. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/example/routes/api_some.py +0 -0
  22. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/example/sockets/__init__.py +0 -0
  23. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/example/sockets/on_connect.py +0 -0
  24. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/example/sockets/on_disconnect.py +0 -0
  25. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/example/sockets/on_json.py +0 -0
  26. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/example/sockets/on_message.py +0 -0
  27. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/example/sockets/on_open.py +0 -0
  28. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/example/workers/__init__.py +0 -0
  29. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/example/workers/worker.py +0 -0
  30. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/setup.cfg +0 -0
  31. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/__init__.py +0 -0
  32. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/access/__init__.py +0 -0
  33. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/api_resource/__init__.py +0 -0
  34. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/api_resource/api_request.py +0 -0
  35. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/api_resource/api_resource.py +0 -0
  36. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/api_resource/api_resource_config.py +0 -0
  37. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/api_resource/api_resource_error_handling.py +0 -0
  38. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/api_resource/api_resource_fn_typing.py +0 -0
  39. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/api_resource/api_resource_type.py +0 -0
  40. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/api_resource/api_response.py +0 -0
  41. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/api_resource/api_response_db.py +0 -0
  42. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/api_resource/api_response_payload_alias.py +0 -0
  43. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/api_resource/signature_check.py +0 -0
  44. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/commands/__init__.py +0 -0
  45. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/commands/cmd_enc_keys.py +0 -0
  46. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/commands/cmd_gen_api_user_token.py +0 -0
  47. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/commands/cmd_gen_new_api_user.py +0 -0
  48. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/commands/cmd_generate_api_docs.py +0 -0
  49. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/commands/cmd_start.py +0 -0
  50. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/commands/cmd_worker_start.py +0 -0
  51. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/commands/start/__init__.py +0 -0
  52. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/commands/start/gunicorn.conf.local.py +0 -0
  53. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/commands/start/gunicorn.conf.py +0 -0
  54. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/commands/start/wsgi.py +0 -0
  55. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/conf/ul-debugger-main.js +0 -0
  56. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/conf/ul-debugger-ui.js +0 -0
  57. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/conf.py +0 -0
  58. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/const.py +0 -0
  59. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/debug/__init__.py +0 -0
  60. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/debug/debugger.py +0 -0
  61. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/debug/malloc.py +0 -0
  62. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/encrypt/__init__.py +0 -0
  63. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/encrypt/encrypt_decrypt_abstract.py +0 -0
  64. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/encrypt/encrypt_decrypt_aes_xtea.py +0 -0
  65. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/errors.py +0 -0
  66. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/internal_api/__init__.py +0 -0
  67. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/internal_api/__tests__/__init__.py +0 -0
  68. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/internal_api/__tests__/internal_api.py +0 -0
  69. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/internal_api/__tests__/internal_api_content_type.py +0 -0
  70. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/internal_api/internal_api_error.py +0 -0
  71. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/internal_api/internal_api_response.py +0 -0
  72. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/main.py +0 -0
  73. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/modules/__init__.py +0 -0
  74. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/modules/__tests__/__init__.py +0 -0
  75. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/modules/__tests__/test_api_sdk_jwt.py +0 -0
  76. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/modules/api_sdk_config.py +0 -0
  77. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/modules/api_sdk_jwt.py +0 -0
  78. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/modules/intermediate_state.py +0 -0
  79. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/modules/worker_context.py +0 -0
  80. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/modules/worker_sdk.py +0 -0
  81. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/modules/worker_sdk_config.py +0 -0
  82. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/py.typed +0 -0
  83. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/resources/__init__.py +0 -0
  84. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/resources/caching.py +0 -0
  85. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/resources/debugger_scripts.py +0 -0
  86. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/resources/health_check/__init__.py +0 -0
  87. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/resources/health_check/const.py +0 -0
  88. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/resources/health_check/health_check.py +0 -0
  89. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/resources/health_check/health_check_template.py +0 -0
  90. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/resources/health_check/resource.py +0 -0
  91. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/resources/not_implemented.py +0 -0
  92. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/resources/permissions.py +0 -0
  93. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/resources/rate_limitter.py +0 -0
  94. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/resources/socketio.py +0 -0
  95. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/resources/swagger.py +0 -0
  96. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/resources/web_forms/__init__.py +0 -0
  97. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/resources/web_forms/custom_fields/__init__.py +0 -0
  98. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/resources/web_forms/custom_fields/custom_checkbox_select.py +0 -0
  99. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/resources/web_forms/custom_widgets/__init__.py +0 -0
  100. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/resources/web_forms/custom_widgets/custom_select_widget.py +0 -0
  101. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/resources/web_forms/custom_widgets/custom_text_input_widget.py +0 -0
  102. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/resources/web_forms/uni_form.py +0 -0
  103. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/sentry.py +0 -0
  104. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/__init__.py +0 -0
  105. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/__tests__/__init__.py +0 -0
  106. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/__tests__/api_path_version.py +0 -0
  107. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/__tests__/unwrap_typing.py +0 -0
  108. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/api_encoding.py +0 -0
  109. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/api_format.py +0 -0
  110. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/api_method.py +0 -0
  111. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/api_pagination.py +0 -0
  112. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/api_path_version.py +0 -0
  113. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/api_request_info.py +0 -0
  114. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/avro.py +0 -0
  115. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/broker_topics_message_count.py +0 -0
  116. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/colors.py +0 -0
  117. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/constants.py +0 -0
  118. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/decode_base64.py +0 -0
  119. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/deprecated.py +0 -0
  120. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/flags.py +0 -0
  121. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/flask_swagger_generator/__init__.py +0 -0
  122. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/flask_swagger_generator/conf.py +0 -0
  123. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/flask_swagger_generator/exceptions.py +0 -0
  124. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/flask_swagger_generator/specifiers/__init__.py +0 -0
  125. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/flask_swagger_generator/specifiers/swagger_models.py +0 -0
  126. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/flask_swagger_generator/specifiers/swagger_specifier.py +0 -0
  127. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/flask_swagger_generator/specifiers/swagger_three_specifier.py +0 -0
  128. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/flask_swagger_generator/specifiers/swagger_version.py +0 -0
  129. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/flask_swagger_generator/utils/__init__.py +0 -0
  130. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/flask_swagger_generator/utils/input_type.py +0 -0
  131. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/flask_swagger_generator/utils/parameter_type.py +0 -0
  132. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/flask_swagger_generator/utils/replace_in_dict.py +0 -0
  133. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/flask_swagger_generator/utils/request_type.py +0 -0
  134. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/flask_swagger_generator/utils/schema_type.py +0 -0
  135. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/flask_swagger_generator/utils/security_type.py +0 -0
  136. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/imports.py +0 -0
  137. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/instance_checks.py +0 -0
  138. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/jinja/__init__.py +0 -0
  139. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/jinja/t_url_for.py +0 -0
  140. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/jinja/to_pretty_json.py +0 -0
  141. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/json_encoder.py +0 -0
  142. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/load_modules.py +0 -0
  143. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/memory_db/__init__.py +0 -0
  144. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/memory_db/__tests__/__init__.py +0 -0
  145. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/memory_db/errors.py +0 -0
  146. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/memory_db/repository.py +0 -0
  147. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/token_check.py +0 -0
  148. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/token_check_through_request.py +0 -0
  149. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/unwrap_typing.py +0 -0
  150. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/utils/uuid_converter.py +0 -0
  151. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/validators/__init__.py +0 -0
  152. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/validators/__tests__/__init__.py +0 -0
  153. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/validators/__tests__/test_custom_fields.py +0 -0
  154. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/validators/custom_fields.py +0 -0
  155. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/validators/validate_empty_object.py +0 -0
  156. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils/validators/validate_uuid.py +0 -0
  157. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils.egg-info/SOURCES.txt +0 -0
  158. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils.egg-info/dependency_links.txt +0 -0
  159. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils.egg-info/entry_points.txt +0 -0
  160. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/ul_api_utils.egg-info/requires.txt +0 -0
  161. {ul-api-utils-9.0.0a1 → ul-api-utils-9.0.0a2}/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: 9.0.0a1
3
+ Version: 9.0.0a2
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='9.0.0a1',
12
+ version='9.0.0a2',
13
13
  description='Python api utils',
14
14
  author='Unic-lab',
15
15
  long_description=long_description,
@@ -87,7 +87,7 @@ setup(
87
87
  # "opentelemetry-instrumentation-requests==0.27b0",
88
88
  # "opentelemetry-exporter-jaeger==1.8.0",
89
89
  # "opentelemetry-instrumentation-sqlalchemy==0.27b0",
90
- # "ul-db-utils==5.0.0a1", # ACTUALIZE, BUT DO NOT UNCOMMENT PLEASE
90
+ # "ul-db-utils==5.0.0a3", # ACTUALIZE, BUT DO NOT UNCOMMENT PLEASE
91
91
  # "ul-py-tool==2.1.3", # ACTUALIZE, BUT DO NOT UNCOMMENT PLEASE
92
92
  ],
93
93
  )
@@ -2,7 +2,7 @@ from typing import Union, Dict, Any, Tuple, Optional, Iterable
2
2
 
3
3
  from pydantic import BaseModel
4
4
  from ul_db_utils.model.base_model import BaseModel as DbBaseModel
5
- from flask_sqlalchemy import Model
5
+ from flask_sqlalchemy.model import Model
6
6
 
7
7
  # TODO: remove DbBaseModel/Model from it BECAUSE IT loads sqlalchemy (>20mb of code)
8
8
  TDictable = Union[Dict[str, Any], BaseModel, Tuple[Any, ...], DbBaseModel, Model]
@@ -6,7 +6,7 @@ from datetime import datetime
6
6
  from enum import Enum, unique
7
7
  from typing import List, Optional, NamedTuple, Dict, Any, Generator, Tuple
8
8
 
9
- from flask import _app_ctx_stack
9
+ from flask import g
10
10
 
11
11
  from ul_api_utils.conf import APPLICATION_DEBUGGER_PIN
12
12
  from ul_api_utils.const import REQUEST_HEADER__DEBUGGER
@@ -22,23 +22,23 @@ def time_now() -> float:
22
22
 
23
23
 
24
24
  def mark_request_started() -> None:
25
- _app_ctx_stack.top.debug_api_utils_request_started_at = time_now() # type: ignore
25
+ g.debug_api_utils_request_started_at = time_now() # type: ignore
26
26
 
27
27
 
28
28
  def get_request_started_at() -> float:
29
- return getattr(_app_ctx_stack.top, 'debug_api_utils_request_started_at', 0.)
29
+ return getattr(g, 'debug_api_utils_request_started_at', 0.)
30
30
 
31
31
 
32
32
  def add_request_stat(stat: 'ApiUtilCallStat') -> None:
33
33
  try:
34
- stats = _app_ctx_stack.top.debug_api_utils_request_stat # type: ignore
34
+ stats = g.debug_api_utils_request_stat # type: ignore
35
35
  except AttributeError:
36
- stats = _app_ctx_stack.top.debug_api_utils_request_stat = [] # type: ignore
36
+ stats = g.debug_api_utils_request_stat = [] # type: ignore
37
37
  stats.append(stat)
38
38
 
39
39
 
40
40
  def get_request_stat() -> List['ApiUtilCallStat']:
41
- return getattr(_app_ctx_stack.top, 'debug_api_utils_request_stat', [])
41
+ return getattr(g, 'debug_api_utils_request_stat', [])
42
42
 
43
43
 
44
44
  @unique
@@ -151,11 +151,11 @@ class ApiUtilCallStat(NamedTuple):
151
151
 
152
152
 
153
153
  def collecting_enabled() -> bool:
154
- return getattr(_app_ctx_stack.top, 'debug_api_utils_collect_stat', False)
154
+ return getattr(g, 'debug_api_utils_collect_stat', False)
155
155
 
156
156
 
157
157
  def collecting_enable(enabled: bool) -> None:
158
- _app_ctx_stack.top.debug_api_utils_collect_stat = enabled # type: ignore
158
+ g.debug_api_utils_collect_stat = enabled # type: ignore
159
159
 
160
160
 
161
161
  def get_stats_request_headers() -> Dict[str, str]:
@@ -204,9 +204,9 @@ def get_stat(*, started_at: float, ended_at: float, code_spans: bool = True, spa
204
204
 
205
205
  stats: List[ApiUtilCallStat] = list(get_request_stat())
206
206
 
207
- from flask_sqlalchemy import get_debug_queries
207
+ from flask_sqlalchemy.record_queries import get_recorded_queries
208
208
 
209
- for q in get_debug_queries():
209
+ for q in get_recorded_queries():
210
210
  ok = q.end_time is not None
211
211
 
212
212
  try:
@@ -4,7 +4,7 @@ from json import dumps
4
4
  from typing import Optional, Dict, Any, Tuple, Callable
5
5
 
6
6
  import requests
7
- from flask import _app_ctx_stack
7
+ from flask import g
8
8
  from werkzeug.datastructures import FileStorage
9
9
 
10
10
  from ul_api_utils.const import REQUEST_HEADER__INTERNAL, RESPONSE_HEADER__AUTHORIZATION, RESPONSE_HEADER__CONTENT_TYPE, INTERNAL_API__DEFAULT_PATH_PREFIX, REQUEST_HEADER__ACCEPT, \
@@ -23,13 +23,12 @@ from ul_api_utils.utils.json_encoder import CustomJSONEncoder
23
23
 
24
24
  def get_or_create_session(testing_mode: bool) -> requests.Session:
25
25
  if testing_mode:
26
- if getattr(_app_ctx_stack, 'top', None) is None:
27
- return requests.Session()
26
+ return requests.Session()
28
27
 
29
28
  try:
30
- return _app_ctx_stack.top.internal_api_requests_session # type: ignore
29
+ return g.internal_api_requests_session # type: ignore
31
30
  except AttributeError:
32
- s = _app_ctx_stack.top.internal_api_requests_session = requests.Session() # type: ignore
31
+ s = g.internal_api_requests_session = requests.Session() # type: ignore
33
32
  return s
34
33
 
35
34
 
@@ -2,7 +2,7 @@ import contextlib
2
2
  from typing import Generator, Any, TYPE_CHECKING
3
3
  from uuid import UUID
4
4
 
5
- from flask import _app_ctx_stack
5
+ from flask import g
6
6
 
7
7
  from ul_api_utils.errors import NotCheckedResponseInternalApiError
8
8
 
@@ -12,13 +12,13 @@ if TYPE_CHECKING:
12
12
 
13
13
  @contextlib.contextmanager
14
14
  def internal_api_check_context() -> Generator[None, None, None]:
15
- _app_ctx_stack.top._api_utils_internal_api_context = [] # type: ignore
15
+ g._api_utils_internal_api_context = [] # type: ignore
16
16
 
17
17
  try:
18
18
  yield
19
19
 
20
20
  invalid_resp = []
21
- for resp in _app_ctx_stack.top._api_utils_internal_api_context: # type: ignore
21
+ for resp in g._api_utils_internal_api_context: # type: ignore
22
22
  if not resp._internal_use__checked_once:
23
23
  invalid_resp.append(resp)
24
24
 
@@ -28,15 +28,15 @@ def internal_api_check_context() -> Generator[None, None, None]:
28
28
  f'internal api responses must be checked once at least :: [{info}]',
29
29
  )
30
30
  finally:
31
- _app_ctx_stack.top._api_utils_internal_api_context.clear() # type: ignore
31
+ g._api_utils_internal_api_context.clear() # type: ignore
32
32
 
33
33
 
34
34
  def internal_api_check_context_add_response(resp: 'InternalApiResponse[Any]') -> None:
35
- if hasattr(_app_ctx_stack, 'top') and hasattr(_app_ctx_stack.top, '_api_utils_internal_api_context'):
36
- _app_ctx_stack.top._api_utils_internal_api_context.append(resp) # type: ignore
35
+ if hasattr(g, '_api_utils_internal_api_context'):
36
+ g._api_utils_internal_api_context.append(resp) # type: ignore
37
37
 
38
38
 
39
39
  def internal_api_check_context_rm_response(id: UUID) -> None:
40
- if hasattr(_app_ctx_stack, 'top') and hasattr(_app_ctx_stack.top, '_api_utils_internal_api_context'):
41
- prev = _app_ctx_stack.top._api_utils_internal_api_context # type: ignore
42
- _app_ctx_stack.top._api_utils_internal_api_context = [r for r in prev if r.id != id] # type: ignore
40
+ if hasattr(g, '_api_utils_internal_api_context'):
41
+ prev = g._api_utils_internal_api_context # type: ignore
42
+ g._api_utils_internal_api_context = [r for r in prev if r.id != id] # type: ignore
@@ -8,7 +8,7 @@ from base64 import b64decode
8
8
  from datetime import datetime
9
9
  from functools import wraps
10
10
  from typing import List, Union, Callable, Tuple, Any, Optional, TypeVar, cast, Set, TYPE_CHECKING
11
- from flask import Response, request, Flask, url_for as flask_url_for, _app_ctx_stack
11
+ from flask import Response, request, Flask, url_for as flask_url_for, g
12
12
  from pydantic import BaseModel
13
13
  from redis.connection import parse_url
14
14
  from ul_py_tool.utils.arg_files_glob import arg_files_print
@@ -63,15 +63,15 @@ logger = logging.getLogger(__name__)
63
63
 
64
64
 
65
65
  def add_files_to_clean(files: Set[str]) -> None:
66
- if hasattr(_app_ctx_stack.top, '_api_utils_files_to_clean'):
66
+ if hasattr(g, '_api_utils_files_to_clean'):
67
67
  for f in files:
68
- _app_ctx_stack.top._api_utils_files_to_clean.add(f) # type: ignore
68
+ g._api_utils_files_to_clean.add(f) # type: ignore
69
69
  else:
70
- _app_ctx_stack.top._api_utils_files_to_clean = files # type: ignore
70
+ g._api_utils_files_to_clean = files # type: ignore
71
71
 
72
72
 
73
73
  def clean_files() -> None:
74
- files: Set[str] = getattr(_app_ctx_stack.top, '_api_utils_files_to_clean', set())
74
+ files: Set[str] = getattr(g, '_api_utils_files_to_clean', set())
75
75
  for f in files:
76
76
  try:
77
77
  os.unlink(f)
@@ -1,7 +1,7 @@
1
1
  import functools
2
2
  from typing import Callable, TypeVar, Any
3
3
 
4
- from flask import _app_ctx_stack
4
+ from flask import g
5
5
 
6
6
  TFn = TypeVar("TFn", bound=Callable[..., Any])
7
7
 
@@ -13,11 +13,11 @@ def cached_per_request(key: str) -> Callable[[TFn], TFn]:
13
13
  def wrapper(fn: Callable[[...], Any]) -> Any: # type: ignore
14
14
  @functools.wraps(fn)
15
15
  def wr(*args: Any, **kwargs: Any) -> Any:
16
- cached_res = getattr(_app_ctx_stack.top, key, DEFAULT_OBJ)
16
+ cached_res = getattr(g, key, DEFAULT_OBJ)
17
17
  if cached_res is not DEFAULT_OBJ:
18
18
  return cached_res
19
19
  res = fn(*args, **kwargs)
20
- setattr(_app_ctx_stack.top, key, res)
20
+ setattr(g, key, res)
21
21
  return res
22
22
  return wr
23
23
  return wrapper
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ul-api-utils
3
- Version: 9.0.0a1
3
+ Version: 9.0.0a2
4
4
  Summary: Python api utils
5
5
  Author: Unic-lab
6
6
  Author-email:
File without changes
File without changes
File without changes