ul-api-utils 7.11.7__tar.gz → 7.11.9__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-7.11.7 → ul-api-utils-7.11.9}/PKG-INFO +1 -1
  2. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/setup.py +1 -1
  3. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/commands/cmd_start.py +10 -2
  4. ul-api-utils-7.11.9/ul_api_utils/commands/start/gunicorn.conf.py +26 -0
  5. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/modules/api_sdk.py +1 -1
  6. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils.egg-info/PKG-INFO +1 -1
  7. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils.egg-info/SOURCES.txt +1 -0
  8. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/LICENSE +0 -0
  9. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/README.md +0 -0
  10. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/example/__init__.py +0 -0
  11. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/example/conf.py +0 -0
  12. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/example/main.py +0 -0
  13. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/example/models/__init__.py +0 -0
  14. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/example/permissions.py +0 -0
  15. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/example/pure_flask_example.py +0 -0
  16. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/example/rate_limit_load.py +0 -0
  17. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/example/redis_repository.py +0 -0
  18. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/example/routes/__init__.py +0 -0
  19. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/example/routes/api_some.py +0 -0
  20. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/example/sockets/__init__.py +0 -0
  21. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/example/sockets/on_connect.py +0 -0
  22. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/example/sockets/on_disconnect.py +0 -0
  23. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/example/sockets/on_json.py +0 -0
  24. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/example/sockets/on_message.py +0 -0
  25. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/example/sockets/on_open.py +0 -0
  26. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/example/workers/__init__.py +0 -0
  27. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/example/workers/worker.py +0 -0
  28. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/setup.cfg +0 -0
  29. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/__init__.py +0 -0
  30. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/access/__init__.py +0 -0
  31. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/api_resource/__init__.py +0 -0
  32. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/api_resource/api_request.py +0 -0
  33. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/api_resource/api_resource.py +0 -0
  34. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/api_resource/api_resource_config.py +0 -0
  35. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/api_resource/api_resource_error_handling.py +0 -0
  36. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/api_resource/api_resource_fn_typing.py +0 -0
  37. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/api_resource/api_resource_type.py +0 -0
  38. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/api_resource/api_response.py +0 -0
  39. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/api_resource/api_response_db.py +0 -0
  40. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/api_resource/api_response_payload_alias.py +0 -0
  41. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/api_resource/db_types.py +0 -0
  42. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/api_resource/signature_check.py +0 -0
  43. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/commands/__init__.py +0 -0
  44. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/commands/cmd_enc_keys.py +0 -0
  45. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/commands/cmd_gen_api_user_token.py +0 -0
  46. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/commands/cmd_gen_new_api_user.py +0 -0
  47. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/commands/cmd_generate_api_docs.py +0 -0
  48. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/commands/cmd_worker_start.py +0 -0
  49. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/commands/start/__init__.py +0 -0
  50. /ul-api-utils-7.11.7/ul_api_utils/commands/start/gunicorn.conf.py → /ul-api-utils-7.11.9/ul_api_utils/commands/start/gunicorn.conf.local.py +0 -0
  51. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/commands/start/wsgi.py +0 -0
  52. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/conf/ul-debugger-main.js +0 -0
  53. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/conf/ul-debugger-ui.js +0 -0
  54. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/conf.py +0 -0
  55. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/const.py +0 -0
  56. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/debug/__init__.py +0 -0
  57. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/debug/debugger.py +0 -0
  58. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/debug/malloc.py +0 -0
  59. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/debug/stat.py +0 -0
  60. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/encrypt/__init__.py +0 -0
  61. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/encrypt/encrypt_decrypt_abstract.py +0 -0
  62. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/encrypt/encrypt_decrypt_aes_xtea.py +0 -0
  63. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/errors.py +0 -0
  64. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/internal_api/__init__.py +0 -0
  65. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/internal_api/__tests__/__init__.py +0 -0
  66. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/internal_api/__tests__/internal_api.py +0 -0
  67. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/internal_api/__tests__/internal_api_content_type.py +0 -0
  68. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/internal_api/internal_api.py +0 -0
  69. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/internal_api/internal_api_check_context.py +0 -0
  70. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/internal_api/internal_api_error.py +0 -0
  71. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/internal_api/internal_api_response.py +0 -0
  72. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/main.py +0 -0
  73. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/modules/__init__.py +0 -0
  74. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/modules/__tests__/__init__.py +0 -0
  75. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/modules/__tests__/test_api_sdk_jwt.py +0 -0
  76. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/modules/api_sdk_config.py +0 -0
  77. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/modules/api_sdk_jwt.py +0 -0
  78. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/modules/intermediate_state.py +0 -0
  79. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/modules/worker_context.py +0 -0
  80. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/modules/worker_sdk.py +0 -0
  81. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/modules/worker_sdk_config.py +0 -0
  82. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/py.typed +0 -0
  83. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/resources/__init__.py +0 -0
  84. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/resources/caching.py +0 -0
  85. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/resources/debugger_scripts.py +0 -0
  86. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/resources/health_check/__init__.py +0 -0
  87. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/resources/health_check/const.py +0 -0
  88. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/resources/health_check/health_check.py +0 -0
  89. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/resources/health_check/health_check_template.py +0 -0
  90. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/resources/health_check/resource.py +0 -0
  91. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/resources/not_implemented.py +0 -0
  92. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/resources/permissions.py +0 -0
  93. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/resources/rate_limitter.py +0 -0
  94. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/resources/socketio.py +0 -0
  95. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/resources/swagger.py +0 -0
  96. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/resources/web_forms/__init__.py +0 -0
  97. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/resources/web_forms/custom_fields/__init__.py +0 -0
  98. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/resources/web_forms/custom_fields/custom_checkbox_select.py +0 -0
  99. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/resources/web_forms/custom_widgets/__init__.py +0 -0
  100. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/resources/web_forms/custom_widgets/custom_select_widget.py +0 -0
  101. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/resources/web_forms/custom_widgets/custom_text_input_widget.py +0 -0
  102. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/resources/web_forms/uni_form.py +0 -0
  103. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/sentry.py +0 -0
  104. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/__init__.py +0 -0
  105. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/__tests__/__init__.py +0 -0
  106. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/__tests__/api_path_version.py +0 -0
  107. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/__tests__/unwrap_typing.py +0 -0
  108. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/api_encoding.py +0 -0
  109. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/api_format.py +0 -0
  110. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/api_method.py +0 -0
  111. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/api_pagination.py +0 -0
  112. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/api_path_version.py +0 -0
  113. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/api_request_info.py +0 -0
  114. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/avro.py +0 -0
  115. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/broker_topics_message_count.py +0 -0
  116. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/cached_per_request.py +0 -0
  117. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/colors.py +0 -0
  118. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/constants.py +0 -0
  119. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/decode_base64.py +0 -0
  120. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/deprecated.py +0 -0
  121. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/flags.py +0 -0
  122. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/flask_swagger_generator/__init__.py +0 -0
  123. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/flask_swagger_generator/conf.py +0 -0
  124. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/flask_swagger_generator/exceptions.py +0 -0
  125. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/flask_swagger_generator/specifiers/__init__.py +0 -0
  126. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/flask_swagger_generator/specifiers/swagger_models.py +0 -0
  127. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/flask_swagger_generator/specifiers/swagger_specifier.py +0 -0
  128. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/flask_swagger_generator/specifiers/swagger_three_specifier.py +0 -0
  129. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/flask_swagger_generator/specifiers/swagger_version.py +0 -0
  130. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/flask_swagger_generator/utils/__init__.py +0 -0
  131. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/flask_swagger_generator/utils/input_type.py +0 -0
  132. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/flask_swagger_generator/utils/parameter_type.py +0 -0
  133. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/flask_swagger_generator/utils/replace_in_dict.py +0 -0
  134. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/flask_swagger_generator/utils/request_type.py +0 -0
  135. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/flask_swagger_generator/utils/schema_type.py +0 -0
  136. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/flask_swagger_generator/utils/security_type.py +0 -0
  137. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/imports.py +0 -0
  138. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/instance_checks.py +0 -0
  139. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/jinja/__init__.py +0 -0
  140. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/jinja/t_url_for.py +0 -0
  141. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/jinja/to_pretty_json.py +0 -0
  142. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/json_encoder.py +0 -0
  143. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/load_modules.py +0 -0
  144. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/memory_db/__init__.py +0 -0
  145. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/memory_db/__tests__/__init__.py +0 -0
  146. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/memory_db/errors.py +0 -0
  147. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/memory_db/repository.py +0 -0
  148. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/token_check.py +0 -0
  149. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/token_check_through_request.py +0 -0
  150. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/unwrap_typing.py +0 -0
  151. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/utils/uuid_converter.py +0 -0
  152. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/validators/__init__.py +0 -0
  153. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/validators/__tests__/__init__.py +0 -0
  154. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/validators/__tests__/test_custom_fields.py +0 -0
  155. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/validators/custom_fields.py +0 -0
  156. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/validators/validate_empty_object.py +0 -0
  157. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils/validators/validate_uuid.py +0 -0
  158. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils.egg-info/dependency_links.txt +0 -0
  159. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils.egg-info/entry_points.txt +0 -0
  160. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/ul_api_utils.egg-info/requires.txt +0 -0
  161. {ul-api-utils-7.11.7 → ul-api-utils-7.11.9}/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: 7.11.7
3
+ Version: 7.11.9
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='7.11.7',
12
+ version='7.11.9',
13
13
  description='Python api utils',
14
14
  author='Unic-lab',
15
15
  long_description=long_description,
@@ -1,4 +1,5 @@
1
1
  import argparse
2
+ import gc
2
3
  import os
3
4
  import re
4
5
  import subprocess
@@ -27,6 +28,7 @@ class CmdStart(Cmd):
27
28
  max_requests: int
28
29
  max_requests_jitter: int
29
30
  worker_class: str
31
+ freeze_gc: bool
30
32
  statsd_endpoint: Optional[str]
31
33
  statsd_prefix: Optional[str]
32
34
 
@@ -56,8 +58,12 @@ class CmdStart(Cmd):
56
58
  parser.add_argument('--worker-class', dest='worker_class', type=str, default='sync', required=False)
57
59
  parser.add_argument('--statsd_endpoint', dest='statsd_endpoint', type=str, default=None, required=False)
58
60
  parser.add_argument('--statsd_prefix', dest='statsd_prefix', type=str, default=None, required=False)
61
+ parser.add_argument('--freeze-gc', dest='freeze_gc', type=bool, default=False, required=False)
59
62
 
60
63
  def run(self) -> None:
64
+ if self.freeze_gc:
65
+ gc.disable()
66
+
61
67
  env = os.environ.copy()
62
68
  name = re.sub(r'[^0-9a-z]+', '-', f'gncrn-{os.path.relpath(self.app_dir, os.getcwd()).lower().strip("/").strip()}')
63
69
  env['PYTHONUNBUFFERED'] = os.environ.get('PYTHONUNBUFFERED', '0')
@@ -70,15 +76,17 @@ class CmdStart(Cmd):
70
76
 
71
77
  assert len(APPLICATION_GUNICORN_WORKERS) > 0
72
78
 
73
- conf = os.path.abspath(os.path.normpath(os.path.join(THIS_LIB_CWD, "commands", "start", "gunicorn.conf.py")))
74
79
  debug = (self.debug and self.env == ENV_LOCAL)
80
+ local_conf = os.path.abspath(os.path.normpath(os.path.join(THIS_LIB_CWD, "commands", "start", "gunicorn.conf.local.py")))
81
+ prod_conf = os.path.abspath(os.path.normpath(os.path.join(THIS_LIB_CWD, "commands", "start", "gunicorn.conf.py")))
82
+ gunicorn_config = prod_conf if self.freeze_gc and not debug else local_conf
75
83
 
76
84
  args = [
77
85
  f'-n={name}',
78
86
  f'-w={APPLICATION_GUNICORN_WORKERS}',
79
87
  f'--worker-class={self.worker_class}',
80
88
  f'-b=0.0.0.0:{self.port}',
81
- f'--config={conf}',
89
+ f'--config={gunicorn_config}',
82
90
  '--log-level=INFO',
83
91
  f'--max-requests={self.max_requests}',
84
92
  f'--max-requests-jitter={self.max_requests_jitter}',
@@ -0,0 +1,26 @@
1
+ import gc
2
+ from typing import Any
3
+
4
+ from ul_py_tool.utils.write_stdout import write_stdout
5
+
6
+
7
+ def when_ready(server: Any) -> None:
8
+ """
9
+ Use only with --preload option.
10
+ Called just after the server is started.
11
+ Freeze garbage collector objects after preloading the application.
12
+ https://docs.gunicorn.org/en/20.1.0/settings.html?highlight=preload#when-ready
13
+ """
14
+ gc.freeze()
15
+ write_stdout("Objects frozen in permanent generation: ", gc.get_freeze_count())
16
+
17
+
18
+ def post_fork(server: Any, worker: Any) -> None:
19
+ """
20
+ Works only with --preload.
21
+ Called just after a worker has been forked.
22
+ Enable garbage collection on each worker if it's not enabled for some reason.
23
+ https://docs.gunicorn.org/en/20.1.0/settings.html?highlight=preload#post-fork
24
+ """
25
+ write_stdout("Enabling GC for worker", worker.pid)
26
+ gc.enable()
@@ -488,7 +488,7 @@ class ApiSdk:
488
488
  elif api_resource._type == ApiResourceType.WEB:
489
489
  result = api_resource.response_web_error(e)
490
490
  elif api_resource._type == ApiResourceType.FILE:
491
- result = api_resource.response_web_error(e)
491
+ result = api_resource.response_api_error(e)
492
492
  else:
493
493
  result = api_resource.response_web_error(
494
494
  ResourceRuntimeApiError(f'unsupported type "{api_resource._type.value}" of error response'),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ul-api-utils
3
- Version: 7.11.7
3
+ Version: 7.11.9
4
4
  Summary: Python api utils
5
5
  Author: Unic-lab
6
6
  Author-email:
@@ -53,6 +53,7 @@ ul_api_utils/commands/cmd_generate_api_docs.py
53
53
  ul_api_utils/commands/cmd_start.py
54
54
  ul_api_utils/commands/cmd_worker_start.py
55
55
  ul_api_utils/commands/start/__init__.py
56
+ ul_api_utils/commands/start/gunicorn.conf.local.py
56
57
  ul_api_utils/commands/start/gunicorn.conf.py
57
58
  ul_api_utils/commands/start/wsgi.py
58
59
  ul_api_utils/conf/ul-debugger-main.js
File without changes
File without changes
File without changes