clear-skies 1.22.4__tar.gz → 1.22.6__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 clear-skies might be problematic. Click here for more details.

Files changed (214) hide show
  1. {clear_skies-1.22.4 → clear_skies-1.22.6}/PKG-INFO +1 -1
  2. {clear_skies-1.22.4 → clear_skies-1.22.6}/pyproject.toml +1 -1
  3. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/backends/__init__.py +2 -0
  4. clear_skies-1.22.6/src/clearskies/backends/api_get_only_backend.py +48 -0
  5. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/audit.py +1 -0
  6. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/has_many.py +5 -1
  7. clear_skies-1.22.4/src/clearskies/backends/api_get_only_backend.py +0 -101
  8. {clear_skies-1.22.4 → clear_skies-1.22.6}/LICENSE +0 -0
  9. {clear_skies-1.22.4 → clear_skies-1.22.6}/README.md +0 -0
  10. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/__init__.py +0 -0
  11. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/application.py +0 -0
  12. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/authentication/__init__.py +0 -0
  13. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/authentication/auth0_jwks.py +0 -0
  14. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/authentication/auth_exception.py +0 -0
  15. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/authentication/authorization.py +0 -0
  16. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/authentication/authorization_pass_through.py +0 -0
  17. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/authentication/jwks.py +0 -0
  18. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/authentication/jwks_jwcrypto.py +0 -0
  19. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/authentication/public.py +0 -0
  20. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/authentication/secret_bearer.py +0 -0
  21. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/__init__.py +0 -0
  22. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/formats/__init__.py +0 -0
  23. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/formats/oai3_json/__init__.py +0 -0
  24. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/formats/oai3_json/oai3_json.py +0 -0
  25. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/formats/oai3_json/oai3_schema_resolver.py +0 -0
  26. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/formats/oai3_json/parameter.py +0 -0
  27. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/formats/oai3_json/request.py +0 -0
  28. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/formats/oai3_json/response.py +0 -0
  29. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/formats/oai3_json/schema/__init__.py +0 -0
  30. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/formats/oai3_json/schema/array.py +0 -0
  31. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/formats/oai3_json/schema/default.py +0 -0
  32. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/formats/oai3_json/schema/enum.py +0 -0
  33. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/formats/oai3_json/schema/object.py +0 -0
  34. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/formats/oai3_json/test.json +0 -0
  35. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/request/__init__.py +0 -0
  36. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/request/header.py +0 -0
  37. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/request/json_body.py +0 -0
  38. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/request/request.py +0 -0
  39. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/request/url_parameter.py +0 -0
  40. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/request/url_path.py +0 -0
  41. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/response/__init__.py +0 -0
  42. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/response/response.py +0 -0
  43. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/schema/__init__.py +0 -0
  44. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/schema/array.py +0 -0
  45. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/schema/base64.py +0 -0
  46. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/schema/boolean.py +0 -0
  47. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/schema/date.py +0 -0
  48. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/schema/datetime.py +0 -0
  49. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/schema/double.py +0 -0
  50. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/schema/enum.py +0 -0
  51. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/schema/integer.py +0 -0
  52. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/schema/long.py +0 -0
  53. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/schema/number.py +0 -0
  54. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/schema/object.py +0 -0
  55. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/schema/password.py +0 -0
  56. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/autodoc/schema/string.py +0 -0
  57. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/backends/api_backend.py +0 -0
  58. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/backends/backend.py +0 -0
  59. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/backends/cursor_backend.py +0 -0
  60. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/backends/example_backend.py +0 -0
  61. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/backends/file_backend.py +0 -0
  62. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/backends/json_backend.py +0 -0
  63. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/backends/memory_backend.py +0 -0
  64. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/backends/restful_api_advanced_search_backend.py +0 -0
  65. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/backends/secrets_backend.py +0 -0
  66. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/binding_config.py +0 -0
  67. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/__init__.py +0 -0
  68. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/belongs_to.py +0 -0
  69. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/boolean.py +0 -0
  70. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/category_tree.py +0 -0
  71. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/column.py +0 -0
  72. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/created.py +0 -0
  73. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/created_by_authorization_data.py +0 -0
  74. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/created_by_header.py +0 -0
  75. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/created_by_ip.py +0 -0
  76. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/created_by_routing_data.py +0 -0
  77. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/created_by_user_agent.py +0 -0
  78. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/created_micro.py +0 -0
  79. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/datetime.py +0 -0
  80. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/datetime_micro.py +0 -0
  81. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/email.py +0 -0
  82. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/float.py +0 -0
  83. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/has_one.py +0 -0
  84. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/integer.py +0 -0
  85. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/json.py +0 -0
  86. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/many_to_many.py +0 -0
  87. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/many_to_many_with_data.py +0 -0
  88. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/phone.py +0 -0
  89. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/select.py +0 -0
  90. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/string.py +0 -0
  91. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/timestamp.py +0 -0
  92. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/updated.py +0 -0
  93. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/updated_micro.py +0 -0
  94. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/column_types/uuid.py +0 -0
  95. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/columns.py +0 -0
  96. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/condition_parser.py +0 -0
  97. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/contexts/__init__.py +0 -0
  98. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/contexts/bash.py +0 -0
  99. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/contexts/build_context.py +0 -0
  100. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/contexts/cli.py +0 -0
  101. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/contexts/context.py +0 -0
  102. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/contexts/convert_to_application.py +0 -0
  103. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/contexts/extract_handler.py +0 -0
  104. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/contexts/test.py +0 -0
  105. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/contexts/wsgi.py +0 -0
  106. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/decorators/__init__.py +0 -0
  107. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/decorators/auth0_jwks.py +0 -0
  108. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/decorators/authorization.py +0 -0
  109. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/decorators/binding_classes.py +0 -0
  110. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/decorators/binding_modules.py +0 -0
  111. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/decorators/bindings.py +0 -0
  112. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/decorators/create.py +0 -0
  113. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/decorators/delete.py +0 -0
  114. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/decorators/docs.py +0 -0
  115. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/decorators/get.py +0 -0
  116. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/decorators/jwks.py +0 -0
  117. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/decorators/merge.py +0 -0
  118. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/decorators/patch.py +0 -0
  119. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/decorators/post.py +0 -0
  120. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/decorators/public.py +0 -0
  121. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/decorators/response_headers.py +0 -0
  122. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/decorators/return_raw_response.py +0 -0
  123. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/decorators/schema.py +0 -0
  124. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/decorators/secret_bearer.py +0 -0
  125. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/decorators/security_headers.py +0 -0
  126. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/di/__init__.py +0 -0
  127. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/di/additional_config.py +0 -0
  128. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/di/additional_config_auto_import.py +0 -0
  129. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/di/di.py +0 -0
  130. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/di/standard_dependencies.py +0 -0
  131. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/di/test_module/__init__.py +0 -0
  132. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/di/test_module/another_module/__init__.py +0 -0
  133. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/di/test_module/module_class.py +0 -0
  134. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/environment.py +0 -0
  135. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/functional/__init__.py +0 -0
  136. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/functional/string.py +0 -0
  137. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/functional/validations.py +0 -0
  138. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/__init__.py +0 -0
  139. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/advanced_search.py +0 -0
  140. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/base.py +0 -0
  141. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/callable.py +0 -0
  142. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/create.py +0 -0
  143. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/crud_by_method.py +0 -0
  144. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/database_connector.py +0 -0
  145. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/delete.py +0 -0
  146. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/exceptions/__init__.py +0 -0
  147. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/exceptions/authentication.py +0 -0
  148. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/exceptions/authorization.py +0 -0
  149. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/exceptions/client_error.py +0 -0
  150. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/exceptions/input_error.py +0 -0
  151. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/exceptions/not_found.py +0 -0
  152. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/get.py +0 -0
  153. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/health_check.py +0 -0
  154. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/input_processing.py +0 -0
  155. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/list.py +0 -0
  156. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/mygrations.py +0 -0
  157. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/request_method_routing.py +0 -0
  158. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/restful_api.py +0 -0
  159. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/routing.py +0 -0
  160. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/schema_helper.py +0 -0
  161. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/simple_routing.py +0 -0
  162. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/simple_routing_route.py +0 -0
  163. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/simple_search.py +0 -0
  164. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/update.py +0 -0
  165. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/handlers/write.py +0 -0
  166. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/input_outputs/__init__.py +0 -0
  167. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/input_outputs/cli.py +0 -0
  168. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/input_outputs/exceptions/__init__.py +0 -0
  169. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/input_outputs/exceptions/cli_input_error.py +0 -0
  170. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/input_outputs/exceptions/cli_not_found.py +0 -0
  171. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/input_outputs/input_output.py +0 -0
  172. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/input_outputs/wsgi.py +0 -0
  173. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/input_requirements/__init__.py +0 -0
  174. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/input_requirements/after.py +0 -0
  175. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/input_requirements/before.py +0 -0
  176. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/input_requirements/in_the_future_at_least.py +0 -0
  177. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/input_requirements/in_the_future_at_most.py +0 -0
  178. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/input_requirements/in_the_past_at_least.py +0 -0
  179. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/input_requirements/in_the_past_at_most.py +0 -0
  180. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/input_requirements/maximum_length.py +0 -0
  181. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/input_requirements/maximum_value.py +0 -0
  182. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/input_requirements/minimum_length.py +0 -0
  183. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/input_requirements/minimum_value.py +0 -0
  184. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/input_requirements/required.py +0 -0
  185. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/input_requirements/requirement.py +0 -0
  186. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/input_requirements/time_delta.py +0 -0
  187. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/input_requirements/unique.py +0 -0
  188. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/mocks/__init__.py +0 -0
  189. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/mocks/input_output.py +0 -0
  190. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/mocks/models.py +0 -0
  191. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/model.py +0 -0
  192. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/models.py +0 -0
  193. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/secrets/__init__.py +0 -0
  194. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/secrets/additional_configs/__init__.py +0 -0
  195. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/secrets/additional_configs/mysql_connection_dynamic_producer.py +0 -0
  196. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/secrets/additional_configs/mysql_connection_dynamic_producer_via_ssh_cert_bastion.py +0 -0
  197. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/secrets/akeyless.py +0 -0
  198. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/secrets/exceptions/__init__.py +0 -0
  199. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/secrets/exceptions/not_found.py +0 -0
  200. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/secrets/secrets.py +0 -0
  201. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/security_headers/__init__.py +0 -0
  202. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/security_headers/base.py +0 -0
  203. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/security_headers/cache_control.py +0 -0
  204. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/security_headers/cors.py +0 -0
  205. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/security_headers/csp.py +0 -0
  206. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/security_headers/hsts.py +0 -0
  207. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/security_headers/x_content_type_options.py +0 -0
  208. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/security_headers/x_frame_options.py +0 -0
  209. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/tests/__init__.py +0 -0
  210. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/tests/simple_api/__init__.py +0 -0
  211. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/tests/simple_api/models/__init__.py +0 -0
  212. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/tests/simple_api/models/status.py +0 -0
  213. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/tests/simple_api/models/user.py +0 -0
  214. {clear_skies-1.22.4 → clear_skies-1.22.6}/src/clearskies/tests/simple_api/users_api.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: clear-skies
3
- Version: 1.22.4
3
+ Version: 1.22.6
4
4
  Summary: A framework for building backends in the cloud
5
5
  Home-page: https://github.com/cmancone/clearskies
6
6
  License: MIT
@@ -2,7 +2,7 @@
2
2
 
3
3
  [tool.poetry]
4
4
  name = "clear-skies"
5
- version = "1.22.4"
5
+ version = "1.22.6"
6
6
  description = "A framework for building backends in the cloud"
7
7
  authors = [
8
8
  "Conor Mancone <cmancone@gmail.com>",
@@ -1,5 +1,6 @@
1
1
  from .. import binding_config
2
2
  from .api_backend import ApiBackend
3
+ from .api_get_only_backend import ApiGetOnlyBackend
3
4
  from .backend import Backend
4
5
  from .cursor_backend import CursorBackend
5
6
  from .example_backend import ExampleBackend
@@ -16,6 +17,7 @@ def example_backend(data):
16
17
 
17
18
  __all__ = [
18
19
  "ApiBackend",
20
+ "ApiGetOnlyBackend",
19
21
  "Backend",
20
22
  "CursorBackend",
21
23
  "ExampleBackend",
@@ -0,0 +1,48 @@
1
+ from .api_backend import ApiBackend
2
+ from typing import Any, Dict
3
+
4
+
5
+ class ApiGetOnlyBackend(ApiBackend):
6
+ _requests = None
7
+ _auth = None
8
+ _id_column_name = None
9
+
10
+ _allowed_configs = [
11
+ "wheres",
12
+ "table_name",
13
+ "model_columns",
14
+ "select_all",
15
+ ]
16
+
17
+ def __init__(self, requests):
18
+ self._requests = requests
19
+
20
+ def configure(self, auth=None, origin="", id_column_name="id"):
21
+ self._auth = auth
22
+ self._origin = origin
23
+ self._id_column_name = id_column_name
24
+
25
+ def records_url(self, configuration):
26
+ if not len(configuration["wheres"]):
27
+ raise ValueError(
28
+ f"When using the {self.__class__.__name__} backend, you must search the model by the id column. A records request was executed but no search conditions were found."
29
+ )
30
+ record_id = None
31
+ for where in configuration["wheres"]:
32
+ if where["column"] == self._id_column_name:
33
+ record_id = where["values"][0]
34
+ if not record_id:
35
+ raise ValueError(
36
+ f"When using the {self.__class__.__name__} backend, you must search by the id column ('{self._id_column_name}'). A records request was executed but there was no condition set for the '{self._id_column_name}' column"
37
+ )
38
+
39
+ return self._origin + configuration["table_name"].strip("/") + f"/{record_id}"
40
+
41
+ def records_method(self, configuration: Dict[str, Any]) -> str:
42
+ return "GET"
43
+
44
+ def _map_records_response(self, json):
45
+ response = super()._map_records_response(json)
46
+ if isinstance(response, dict):
47
+ return [response]
48
+ return response
@@ -49,6 +49,7 @@ class Audit(has_many.HasMany):
49
49
  "readable_child_columns",
50
50
  "parent_class_name",
51
51
  "parent_id_column_name",
52
+ "where",
52
53
  ]
53
54
 
54
55
  def __init__(self, di):
@@ -143,7 +143,11 @@ class HasMany(Column):
143
143
  @property
144
144
  def child_models(self):
145
145
  children = self.di.build(self.config("child_models_class"), cache=True)
146
- for index, where in enumerate(self.config("where")):
146
+ wheres = self.config("where", silent=True)
147
+ if not wheres:
148
+ return children
149
+
150
+ for index, where in enumerate(wheres):
147
151
  if callable(where):
148
152
  children = self.di.call_function(where, model=children)
149
153
  if not children:
@@ -1,101 +0,0 @@
1
- from .api_backend import ApiBackend
2
- from typing import Any, Callable, Dict, List, Tuple
3
- from .. import model
4
-
5
-
6
- class ApiGetOnlyBackend(ApiBackend):
7
- _requests = None
8
- _auth = None
9
- _id_column_name = None
10
-
11
- _allowed_configs = [
12
- "wheres",
13
- "table_name",
14
- "model_columns",
15
- "select_all",
16
- ]
17
-
18
- def __init__(self, requests):
19
- self._requests = requests
20
-
21
- def configure(self, auth=None, origin=None, id_column_name="id"):
22
- self._auth = auth
23
- self._origin = origin
24
- self._id_column_name = id_column_name
25
-
26
- def records_url(self, configuration):
27
- record_id = None
28
- for where in configuration["wheres"]:
29
- if where["column"] == "id":
30
- record_id = where["values"][0]
31
- if record_id:
32
- return self.auth_origin + configuration["table_name"].strip("/") + f"/{record_id}"
33
- return self.auth_origin + configuration["table_name"].strip("/") + "/search"
34
-
35
- def delete_url(self, id: str, model: model.Model) -> str:
36
- table_name = model.table_name().rstrip("/")
37
- return f"{table_name}/{id}"
38
-
39
- def update_url(self, id: str, model: model.Model) -> str:
40
- table_name = model.table_name().rstrip("/")
41
- return f"{table_name}/{id}"
42
-
43
- def create_url(self, data: Dict[str, Any], model: model.Model) -> str:
44
- return model.table_name().rstrip("/")
45
-
46
- def records_method(self, configuration: Dict[str, Any]) -> str:
47
- return "POST"
48
-
49
- def count_method(self, configuration: Dict[str, Any]) -> str:
50
- return "POST"
51
-
52
- def _build_delete_request(self, id, model):
53
- data = model.data
54
- (url, data) = self._finalize_url_and_data(self.delete_url(id, model), data)
55
- return [url, self.delete_method(id, model), {}, {}]
56
-
57
- def _build_count_request(self, configuration):
58
- [url, method, json_data, headers] = super()._build_count_request(configuration)
59
- json_data["count_only"] = True
60
- return [url, method, json_data, headers]
61
-
62
- def records(self, configuration, model, next_page_data={}):
63
- configuration = self._check_query_configuration(configuration)
64
- [url, method, json_data, headers] = self._build_records_request(configuration)
65
- response = self._execute_request(url, method, json=json_data, headers=headers).json()
66
- records = self._map_records_response(response)
67
- for next_page_key in ["nextPage", "NextPage", "next_page"]:
68
- if response.get("pagination", {}).get(next_page_key):
69
- for key, value in response["pagination"][next_page_key].items():
70
- next_page_data[key] = value
71
- return records
72
-
73
- def _as_post_data(self, configuration):
74
- data = {
75
- "where": list(
76
- map(lambda where: self._where_for_post(where, configuration["model_columns"]), configuration["wheres"])
77
- ),
78
- "sort": configuration["sorts"],
79
- "start": configuration["pagination"].get("start", 0),
80
- "limit": configuration["limit"],
81
- }
82
- return {key: value for (key, value) in data.items() if value}
83
-
84
- def _where_for_post(self, where, columns):
85
- prefix = ""
86
- if where.get("table"):
87
- prefix = where["table"] + "."
88
- return {
89
- "column": prefix + where["column"],
90
- "operator": where["operator"],
91
- "value": self.normalize_outgoing_value(where, columns, where["values"][0]),
92
- }
93
-
94
- def normalize_outgoing_value(self, where, columns, value):
95
- column_name = where["column"]
96
- if where.get("table") or column_name not in columns:
97
- return value
98
- normalized_data = self.column_to_backend(columns[column_name], {column_name: value})
99
- if column_name in normalized_data:
100
- return normalized_data[column_name]
101
- return value
File without changes
File without changes