clear-skies 2.0.5__tar.gz → 2.0.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 (349) hide show
  1. {clear_skies-2.0.5 → clear_skies-2.0.6}/.github/workflows/create-version.yaml +4 -30
  2. {clear_skies-2.0.5 → clear_skies-2.0.6}/.github/workflows/docs.yaml +9 -3
  3. {clear_skies-2.0.5 → clear_skies-2.0.6}/CHANGELOG.md +14 -0
  4. clear_skies-2.0.6/LATEST_CHANGELOG.md +10 -0
  5. {clear_skies-2.0.5 → clear_skies-2.0.6}/PKG-INFO +1 -1
  6. {clear_skies-2.0.5 → clear_skies-2.0.6}/pyproject.toml +8 -5
  7. {clear_skies-2.0.5 → clear_skies-2.0.6}/uv.lock +17 -1
  8. clear_skies-2.0.5/LATEST_CHANGELOG.md +0 -30
  9. clear_skies-2.0.5/src/clearskies/authentication/public_test.py +0 -13
  10. clear_skies-2.0.5/src/clearskies/configs/actions_test.py +0 -39
  11. clear_skies-2.0.5/src/clearskies/configs/any_test.py +0 -22
  12. clear_skies-2.0.5/src/clearskies/configs/model_class_test.py +0 -39
  13. clear_skies-2.0.5/src/clearskies/configs/select_list_test.py +0 -39
  14. clear_skies-2.0.5/src/clearskies/configs/string_test.py +0 -45
  15. clear_skies-2.0.5/src/clearskies/configs/validators_test.py +0 -37
  16. clear_skies-2.0.5/src/clearskies/environment_test.py +0 -29
  17. clear_skies-2.0.5/src/clearskies/functional/string_test.py +0 -36
  18. clear_skies-2.0.5/src/clearskies/functional/validations_test.py +0 -21
  19. clear_skies-2.0.5/src/clearskies/integration_tests/__init__.py +0 -0
  20. clear_skies-2.0.5/src/clearskies/integration_tests/authentication/__init__.py +0 -0
  21. clear_skies-2.0.5/src/clearskies/integration_tests/authentication/secret_bearer_test.py +0 -143
  22. clear_skies-2.0.5/src/clearskies/integration_tests/backends/api_backend_test.py +0 -297
  23. clear_skies-2.0.5/src/clearskies/integration_tests/backends/cursor_backend_test.py +0 -50
  24. clear_skies-2.0.5/src/clearskies/integration_tests/backends/memory_backend_test.py +0 -85
  25. clear_skies-2.0.5/src/clearskies/integration_tests/columns/__init__.py +0 -0
  26. clear_skies-2.0.5/src/clearskies/integration_tests/columns/belongs_to_self_test.py +0 -41
  27. clear_skies-2.0.5/src/clearskies/integration_tests/columns/belongs_to_test.py +0 -134
  28. clear_skies-2.0.5/src/clearskies/integration_tests/columns/belongs_to_test_module/__init__.py +0 -2
  29. clear_skies-2.0.5/src/clearskies/integration_tests/columns/belongs_to_test_module/category.py +0 -12
  30. clear_skies-2.0.5/src/clearskies/integration_tests/columns/belongs_to_test_module/category_reference.py +0 -8
  31. clear_skies-2.0.5/src/clearskies/integration_tests/columns/belongs_to_test_module/product.py +0 -13
  32. clear_skies-2.0.5/src/clearskies/integration_tests/columns/belongs_to_test_module/product_reference.py +0 -8
  33. clear_skies-2.0.5/src/clearskies/integration_tests/columns/category_tree_test.py +0 -58
  34. clear_skies-2.0.5/src/clearskies/integration_tests/columns/column_test.py +0 -235
  35. clear_skies-2.0.5/src/clearskies/integration_tests/columns/created_by_authorization_data_test.py +0 -37
  36. clear_skies-2.0.5/src/clearskies/integration_tests/columns/created_by_header_test.py +0 -31
  37. clear_skies-2.0.5/src/clearskies/integration_tests/columns/created_test.py +0 -30
  38. clear_skies-2.0.5/src/clearskies/integration_tests/columns/date_test.py +0 -43
  39. clear_skies-2.0.5/src/clearskies/integration_tests/columns/datetime_test.py +0 -43
  40. clear_skies-2.0.5/src/clearskies/integration_tests/columns/email_test.py +0 -34
  41. clear_skies-2.0.5/src/clearskies/integration_tests/columns/float_test.py +0 -32
  42. clear_skies-2.0.5/src/clearskies/integration_tests/columns/has_many_test.py +0 -132
  43. clear_skies-2.0.5/src/clearskies/integration_tests/columns/integer_test.py +0 -32
  44. clear_skies-2.0.5/src/clearskies/integration_tests/columns/json_test.py +0 -30
  45. clear_skies-2.0.5/src/clearskies/integration_tests/columns/many_to_many_ids_test.py +0 -71
  46. clear_skies-2.0.5/src/clearskies/integration_tests/columns/many_to_many_ids_with_data_test.py +0 -74
  47. clear_skies-2.0.5/src/clearskies/integration_tests/columns/phone_test.py +0 -40
  48. clear_skies-2.0.5/src/clearskies/integration_tests/columns/select_test.py +0 -36
  49. clear_skies-2.0.5/src/clearskies/integration_tests/columns/string_test.py +0 -37
  50. clear_skies-2.0.5/src/clearskies/integration_tests/columns/timestamp_test.py +0 -44
  51. clear_skies-2.0.5/src/clearskies/integration_tests/columns/updated_test.py +0 -33
  52. clear_skies-2.0.5/src/clearskies/integration_tests/columns/uuid_test.py +0 -30
  53. clear_skies-2.0.5/src/clearskies/integration_tests/di/__init__.py +0 -0
  54. clear_skies-2.0.5/src/clearskies/integration_tests/di/di_test.py +0 -224
  55. clear_skies-2.0.5/src/clearskies/integration_tests/di/my_module/__init__.py +0 -1
  56. clear_skies-2.0.5/src/clearskies/integration_tests/di/my_module/my_sub_module/__init__.py +0 -1
  57. clear_skies-2.0.5/src/clearskies/integration_tests/di/my_module/my_sub_module/my_class.py +0 -2
  58. clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/advanced_search_test.py +0 -101
  59. clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/callable_test.py +0 -95
  60. clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/create_test.py +0 -48
  61. clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/delete_test.py +0 -42
  62. clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/endpoint_group_test.py +0 -143
  63. clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/endpoint_test.py +0 -284
  64. clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/get_test.py +0 -86
  65. clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/health_check_test.py +0 -52
  66. clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/list_test.py +0 -101
  67. clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/restful_api_test.py +0 -84
  68. clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/simple_search_test.py +0 -77
  69. clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/update_test.py +0 -56
  70. clear_skies-2.0.5/src/clearskies/integration_tests/model_test.py +0 -701
  71. clear_skies-2.0.5/src/clearskies/query/condition_test.py +0 -97
  72. clear_skies-2.0.5/src/clearskies/query/join_test.py +0 -50
  73. clear_skies-2.0.5/src/clearskies/security_headers/cache_control_test.py +0 -22
  74. clear_skies-2.0.5/src/clearskies/security_headers/cors_test.py +0 -27
  75. clear_skies-2.0.5/src/clearskies/security_headers/csp_test.py +0 -22
  76. clear_skies-2.0.5/src/clearskies/security_headers/hsts_test.py +0 -36
  77. clear_skies-2.0.5/src/clearskies/validators/after_column_test.py +0 -34
  78. clear_skies-2.0.5/src/clearskies/validators/before_column_test.py +0 -34
  79. clear_skies-2.0.5/src/clearskies/validators/in_the_future_at_least_test.py +0 -30
  80. clear_skies-2.0.5/src/clearskies/validators/in_the_future_at_most_test.py +0 -32
  81. clear_skies-2.0.5/src/clearskies/validators/in_the_past_at_least_test.py +0 -30
  82. clear_skies-2.0.5/src/clearskies/validators/in_the_past_at_most_test.py +0 -32
  83. clear_skies-2.0.5/src/clearskies/validators/maximum_length_test.py +0 -22
  84. clear_skies-2.0.5/src/clearskies/validators/maximum_value_test.py +0 -23
  85. clear_skies-2.0.5/src/clearskies/validators/minimum_length_test.py +0 -19
  86. clear_skies-2.0.5/src/clearskies/validators/minimum_value_test.py +0 -21
  87. clear_skies-2.0.5/src/clearskies/validators/required_test.py +0 -42
  88. clear_skies-2.0.5/src/clearskies/validators/unique_test.py +0 -40
  89. {clear_skies-2.0.5 → clear_skies-2.0.6}/.editorconfig +0 -0
  90. {clear_skies-2.0.5 → clear_skies-2.0.6}/.github/workflows/run-tests.yml +0 -0
  91. {clear_skies-2.0.5 → clear_skies-2.0.6}/.github/workflows/tests-matrix.yaml +0 -0
  92. {clear_skies-2.0.5 → clear_skies-2.0.6}/.github/workflows/tests.yaml +0 -0
  93. {clear_skies-2.0.5 → clear_skies-2.0.6}/.gitignore +0 -0
  94. {clear_skies-2.0.5 → clear_skies-2.0.6}/.pre-commit-config.yaml +0 -0
  95. {clear_skies-2.0.5 → clear_skies-2.0.6}/.python-version +0 -0
  96. {clear_skies-2.0.5 → clear_skies-2.0.6}/.vscode/extensions.json +0 -0
  97. {clear_skies-2.0.5 → clear_skies-2.0.6}/.vscode/settings.json +0 -0
  98. {clear_skies-2.0.5 → clear_skies-2.0.6}/LICENSE +0 -0
  99. {clear_skies-2.0.5 → clear_skies-2.0.6}/README.md +0 -0
  100. {clear_skies-2.0.5 → clear_skies-2.0.6}/build.sh +0 -0
  101. {clear_skies-2.0.5 → clear_skies-2.0.6}/cliff.toml +0 -0
  102. {clear_skies-2.0.5 → clear_skies-2.0.6}/ruff.toml +0 -0
  103. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/__init__.py +0 -0
  104. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/action.py +0 -0
  105. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/authentication/__init__.py +0 -0
  106. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/authentication/authentication.py +0 -0
  107. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/authentication/authorization.py +0 -0
  108. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/authentication/authorization_pass_through.py +0 -0
  109. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/authentication/jwks.py +0 -0
  110. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/authentication/public.py +0 -0
  111. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/authentication/secret_bearer.py +0 -0
  112. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/__init__.py +0 -0
  113. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/__init__.py +0 -0
  114. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/__init__.py +0 -0
  115. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/oai3_json.py +0 -0
  116. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/oai3_schema_resolver.py +0 -0
  117. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/parameter.py +0 -0
  118. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/request.py +0 -0
  119. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/response.py +0 -0
  120. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/schema/__init__.py +0 -0
  121. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/schema/array.py +0 -0
  122. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/schema/default.py +0 -0
  123. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/schema/enum.py +0 -0
  124. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/schema/object.py +0 -0
  125. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/test.json +0 -0
  126. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/py.typed +0 -0
  127. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/request/__init__.py +0 -0
  128. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/request/header.py +0 -0
  129. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/request/json_body.py +0 -0
  130. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/request/parameter.py +0 -0
  131. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/request/request.py +0 -0
  132. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/request/url_parameter.py +0 -0
  133. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/request/url_path.py +0 -0
  134. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/response/__init__.py +0 -0
  135. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/response/response.py +0 -0
  136. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/__init__.py +0 -0
  137. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/array.py +0 -0
  138. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/base64.py +0 -0
  139. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/boolean.py +0 -0
  140. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/date.py +0 -0
  141. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/datetime.py +0 -0
  142. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/double.py +0 -0
  143. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/enum.py +0 -0
  144. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/integer.py +0 -0
  145. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/long.py +0 -0
  146. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/number.py +0 -0
  147. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/object.py +0 -0
  148. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/password.py +0 -0
  149. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/schema.py +0 -0
  150. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/string.py +0 -0
  151. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/backends/__init__.py +0 -0
  152. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/backends/api_backend.py +0 -0
  153. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/backends/backend.py +0 -0
  154. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/backends/cursor_backend.py +0 -0
  155. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/backends/memory_backend.py +0 -0
  156. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/backends/secrets_backend.py +0 -0
  157. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/column.py +0 -0
  158. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/__init__.py +0 -0
  159. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/audit.py +0 -0
  160. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/belongs_to_id.py +0 -0
  161. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/belongs_to_model.py +0 -0
  162. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/belongs_to_self.py +0 -0
  163. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/boolean.py +0 -0
  164. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/category_tree.py +0 -0
  165. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/category_tree_ancestors.py +0 -0
  166. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/category_tree_children.py +0 -0
  167. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/category_tree_descendants.py +0 -0
  168. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/created.py +0 -0
  169. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/created_by_authorization_data.py +0 -0
  170. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/created_by_header.py +0 -0
  171. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/created_by_ip.py +0 -0
  172. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/created_by_routing_data.py +0 -0
  173. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/created_by_user_agent.py +0 -0
  174. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/date.py +0 -0
  175. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/datetime.py +0 -0
  176. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/email.py +0 -0
  177. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/float.py +0 -0
  178. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/has_many.py +0 -0
  179. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/has_many_self.py +0 -0
  180. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/has_one.py +0 -0
  181. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/integer.py +0 -0
  182. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/json.py +0 -0
  183. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/many_to_many_ids.py +0 -0
  184. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/many_to_many_ids_with_data.py +0 -0
  185. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/many_to_many_models.py +0 -0
  186. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/many_to_many_pivots.py +0 -0
  187. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/phone.py +0 -0
  188. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/select.py +0 -0
  189. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/string.py +0 -0
  190. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/timestamp.py +0 -0
  191. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/updated.py +0 -0
  192. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/uuid.py +0 -0
  193. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/README.md +0 -0
  194. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/__init__.py +0 -0
  195. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/actions.py +0 -0
  196. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/any.py +0 -0
  197. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/any_dict.py +0 -0
  198. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/any_dict_or_callable.py +0 -0
  199. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/authentication.py +0 -0
  200. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/authorization.py +0 -0
  201. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/boolean.py +0 -0
  202. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/boolean_or_callable.py +0 -0
  203. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/callable_config.py +0 -0
  204. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/columns.py +0 -0
  205. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/conditions.py +0 -0
  206. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/config.py +0 -0
  207. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/datetime.py +0 -0
  208. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/datetime_or_callable.py +0 -0
  209. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/endpoint.py +0 -0
  210. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/endpoint_list.py +0 -0
  211. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/float.py +0 -0
  212. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/float_or_callable.py +0 -0
  213. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/integer.py +0 -0
  214. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/integer_or_callable.py +0 -0
  215. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/joins.py +0 -0
  216. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/list_any_dict.py +0 -0
  217. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/list_any_dict_or_callable.py +0 -0
  218. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/model_class.py +0 -0
  219. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/model_column.py +0 -0
  220. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/model_columns.py +0 -0
  221. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/model_destination_name.py +0 -0
  222. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/model_to_id_column.py +0 -0
  223. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/readable_model_column.py +0 -0
  224. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/readable_model_columns.py +0 -0
  225. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/schema.py +0 -0
  226. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/searchable_model_columns.py +0 -0
  227. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/security_headers.py +0 -0
  228. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/select.py +0 -0
  229. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/select_list.py +0 -0
  230. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/string.py +0 -0
  231. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/string_dict.py +0 -0
  232. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/string_list.py +0 -0
  233. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/string_list_or_callable.py +0 -0
  234. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/string_or_callable.py +0 -0
  235. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/timedelta.py +0 -0
  236. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/timezone.py +0 -0
  237. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/url.py +0 -0
  238. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/validators.py +0 -0
  239. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/writeable_model_column.py +0 -0
  240. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/writeable_model_columns.py +0 -0
  241. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configurable.py +0 -0
  242. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/contexts/__init__.py +0 -0
  243. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/contexts/cli.py +0 -0
  244. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/contexts/context.py +0 -0
  245. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/contexts/wsgi.py +0 -0
  246. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/contexts/wsgi_ref.py +0 -0
  247. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/decorators.py +0 -0
  248. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/__init__.py +0 -0
  249. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/additional_config.py +0 -0
  250. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/additional_config_auto_import.py +0 -0
  251. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/di.py +0 -0
  252. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/inject/__init__.py +0 -0
  253. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/inject/by_class.py +0 -0
  254. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/inject/by_name.py +0 -0
  255. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/inject/di.py +0 -0
  256. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/inject/environment.py +0 -0
  257. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/inject/input_output.py +0 -0
  258. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/inject/now.py +0 -0
  259. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/inject/requests.py +0 -0
  260. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/inject/secrets.py +0 -0
  261. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/inject/utcnow.py +0 -0
  262. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/inject/uuid.py +0 -0
  263. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/injectable.py +0 -0
  264. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/injectable_properties.py +0 -0
  265. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/test_module/__init__.py +0 -0
  266. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/test_module/another_module/__init__.py +0 -0
  267. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/test_module/module_class.py +0 -0
  268. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/end.py +0 -0
  269. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoint.py +0 -0
  270. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoint_group.py +0 -0
  271. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/__init__.py +0 -0
  272. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/advanced_search.py +0 -0
  273. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/callable.py +0 -0
  274. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/create.py +0 -0
  275. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/delete.py +0 -0
  276. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/get.py +0 -0
  277. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/health_check.py +0 -0
  278. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/list.py +0 -0
  279. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/restful_api.py +0 -0
  280. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/schema.py +0 -0
  281. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/simple_search.py +0 -0
  282. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/update.py +0 -0
  283. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/environment.py +0 -0
  284. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/exceptions/__init__.py +0 -0
  285. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/exceptions/authentication.py +0 -0
  286. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/exceptions/authorization.py +0 -0
  287. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/exceptions/client_error.py +0 -0
  288. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/exceptions/input_errors.py +0 -0
  289. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/exceptions/missing_dependency.py +0 -0
  290. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/exceptions/moved_permanently.py +0 -0
  291. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/exceptions/moved_temporarily.py +0 -0
  292. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/exceptions/not_found.py +0 -0
  293. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/functional/__init__.py +0 -0
  294. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/functional/routing.py +0 -0
  295. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/functional/string.py +0 -0
  296. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/functional/validations.py +0 -0
  297. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/input_outputs/__init__.py +0 -0
  298. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/input_outputs/cli.py +0 -0
  299. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/input_outputs/exceptions/__init__.py +0 -0
  300. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/input_outputs/exceptions/cli_input_error.py +0 -0
  301. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/input_outputs/exceptions/cli_not_found.py +0 -0
  302. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/input_outputs/headers.py +0 -0
  303. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/input_outputs/input_output.py +0 -0
  304. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/input_outputs/programmatic.py +0 -0
  305. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/input_outputs/py.typed +0 -0
  306. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/input_outputs/wsgi.py +0 -0
  307. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/model.py +0 -0
  308. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/py.typed +0 -0
  309. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/query/__init__.py +0 -0
  310. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/query/condition.py +0 -0
  311. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/query/join.py +0 -0
  312. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/query/query.py +0 -0
  313. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/query/sort.py +0 -0
  314. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/schema.py +0 -0
  315. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/secrets/__init__.py +0 -0
  316. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/secrets/additional_configs/__init__.py +0 -0
  317. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/secrets/additional_configs/mysql_connection_dynamic_producer.py +0 -0
  318. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/secrets/additional_configs/mysql_connection_dynamic_producer_via_ssh_cert_bastion.py +0 -0
  319. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/secrets/akeyless.py +0 -0
  320. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/secrets/exceptions/__init__.py +0 -0
  321. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/secrets/exceptions/not_found.py +0 -0
  322. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/secrets/secrets.py +0 -0
  323. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/security_header.py +0 -0
  324. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/security_headers/__init__.py +0 -0
  325. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/security_headers/cache_control.py +0 -0
  326. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/security_headers/cors.py +0 -0
  327. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/security_headers/csp.py +0 -0
  328. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/security_headers/hsts.py +0 -0
  329. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/security_headers/x_content_type_options.py +0 -0
  330. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/security_headers/x_frame_options.py +0 -0
  331. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/test_base.py +0 -0
  332. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/typing.py +0 -0
  333. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validator.py +0 -0
  334. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/__init__.py +0 -0
  335. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/after_column.py +0 -0
  336. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/before_column.py +0 -0
  337. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/in_the_future.py +0 -0
  338. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/in_the_future_at_least.py +0 -0
  339. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/in_the_future_at_most.py +0 -0
  340. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/in_the_past.py +0 -0
  341. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/in_the_past_at_least.py +0 -0
  342. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/in_the_past_at_most.py +0 -0
  343. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/maximum_length.py +0 -0
  344. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/maximum_value.py +0 -0
  345. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/minimum_length.py +0 -0
  346. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/minimum_value.py +0 -0
  347. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/required.py +0 -0
  348. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/timedelta.py +0 -0
  349. {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/unique.py +0 -0
@@ -129,36 +129,10 @@ jobs:
129
129
  run: |
130
130
  uv publish --token ${{ steps.fetch-secrets.outputs.pypi }}
131
131
 
132
- publish:
132
+ publish-docs:
133
133
  name: Publish Doc Site to S3
134
- runs-on: ubuntu-latest
135
134
  needs: bump-version
136
135
  permissions:
137
- id-token: write
138
- contents: read
139
- steps:
140
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
141
- with:
142
- persist-credentials: false
143
- - name: configure aws credentials
144
- uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502
145
- with:
146
- role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
147
- role-session-name: docs-deploy
148
- aws-region: us-east-1
149
- - name: Install uv
150
- uses: astral-sh/setup-uv@v6
151
- - name: Publish
152
- run: |
153
- cd docs/python
154
- uv run build.py
155
- sudo apt update
156
- sudo apt-get install -y ruby ruby-dev jq
157
- sudo gem install bundler
158
- cd ../build
159
- cp ../../README.md _includes/project_readme.md
160
- cp ../../CHANGELOG.md _includes/project_changelog.md
161
- sudo bundle install
162
- sudo bundle exec jekyll build
163
- cd _site
164
- aws s3 cp . s3://clearskies.info --recursive
136
+ id-token: write
137
+ contents: read
138
+ uses: ./.github/workflows/docs.yaml
@@ -2,6 +2,7 @@ name: Doc Publish
2
2
 
3
3
  on:
4
4
  workflow_dispatch:
5
+ workflow_call:
5
6
 
6
7
  jobs:
7
8
  publish:
@@ -12,17 +13,22 @@ jobs:
12
13
  id-token: write
13
14
  contents: read
14
15
  steps:
15
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
16
+ - name: Checkout code
17
+ uses: actions/checkout@v4
16
18
  with:
17
- persist-credentials: false
19
+ fetch-depth: 0
20
+ token: ${{ secrets.GITHUB_TOKEN }}
18
21
  - name: configure aws credentials
19
22
  uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502
20
23
  with:
21
24
  role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
22
25
  role-session-name: docs-deploy
23
26
  aws-region: us-east-1
24
- - name: Install uv
27
+ - name: Install uv and set the python version
25
28
  uses: astral-sh/setup-uv@v6
29
+ with:
30
+ python-version: '3.12'
31
+ enable-cache: true
26
32
  - name: Publish
27
33
  run: |
28
34
  cd docs/python
@@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [2.0.6] - 2025-09-09
9
+
10
+ ### Changed
11
+ - Undo local dep
12
+
13
+ ### Fixed
14
+ - Fix local dependencies
15
+ - Fix docs dependency
16
+ - Fix docs use latest changelog;
17
+
8
18
  ## [2.0.5] - 2025-09-09
9
19
 
10
20
  ### Added
@@ -13,6 +23,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
13
23
  - Add uv and release workflow
14
24
 
15
25
  ### Changed
26
+ - Bump version to v2.0.5 by @github-actions[bot]
16
27
  - Switch build to uv by @tnijboer in [#18](https://github.com/clearskies-py/clearskies/pull/18)
17
28
  - Reuse readme.md
18
29
  - Switch build to uv by @cmancone
@@ -35,6 +46,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
35
46
  ### Removed
36
47
  - Remove dupes by @cmancone
37
48
 
49
+ ## New Contributors
50
+ * @github-actions[bot] made their first contribution
38
51
  ## [2.0.4] - 2025-08-27
39
52
 
40
53
  ### Added
@@ -742,6 +755,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
742
755
  * @ made their first contribution
743
756
  * @tnijboer made their first contribution
744
757
  * @conormancone-cimpress made their first contribution
758
+ [2.0.6]: https://github.com/clearskies-py/clearskies/compare/v2.0.5..v2.0.6
745
759
  [2.0.5]: https://github.com/clearskies-py/clearskies/compare/v2.0.4..v2.0.5
746
760
  [2.0.4]: https://github.com/clearskies-py/clearskies/compare/v2.0.3..v2.0.4
747
761
  [2.0.3]: https://github.com/clearskies-py/clearskies/compare/v2.0.2..v2.0.3
@@ -0,0 +1,10 @@
1
+ ## [2.0.6] - 2025-09-09
2
+
3
+ ### Changed
4
+ - Undo local dep
5
+
6
+ ### Fixed
7
+ - Fix local dependencies
8
+ - Fix docs dependency
9
+ - Fix docs use latest changelog;
10
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clear-skies
3
- Version: 2.0.5
3
+ Version: 2.0.6
4
4
  Summary: A framework for building backends in the cloud
5
5
  Project-URL: Documentation, https://clearskies.io/
6
6
  Project-URL: Repository, https://github.com/clearskies-py/clearskies
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "clear-skies"
3
3
  description = "A framework for building backends in the cloud"
4
- version = "2.0.5"
4
+ version = "2.0.6"
5
5
  license = "MIT"
6
6
  readme = "./README.md"
7
7
  authors = [{name = "Conor Mancone", email = "cmancone@gmail.com"}]
@@ -39,19 +39,22 @@ dev = [
39
39
  "types-jwcrypto>=1.5.0.20250516",
40
40
  "types-pymysql>=1.1.0.20250516",
41
41
  ]
42
+ docs = [
43
+ "clear-skies-doc-builder>=2.0.4",
44
+ ]
42
45
 
43
46
  [build-system]
44
47
  requires = ["hatchling"]
45
48
  build-backend = "hatchling.build"
46
49
 
47
50
  [tool.hatch.build.targets.wheel]
48
- packages = ["src/clearskies_akeyless_custom_gitlab"]
51
+ packages = ["src/clearskies"]
49
52
 
50
53
  [tool.hatch.build]
51
54
  exclude = [
52
- "src/clearskies_akeyless_custom_gitlab/*_test.py",
53
- "src/clearskies_akeyless_custom_gitlab/**/*_test.py",
54
- "src/clearskies_akeyless_custom_gitlab/integration_tests/*",
55
+ "src/clearskies/*_test.py",
56
+ "src/clearskies/**/*_test.py",
57
+ "src/clearskies/integration_tests/*",
55
58
  "docs/**"
56
59
  ]
57
60
 
@@ -177,7 +177,7 @@ wheels = [
177
177
 
178
178
  [[package]]
179
179
  name = "clear-skies"
180
- version = "2.0.5"
180
+ version = "2.0.6"
181
181
  source = { editable = "." }
182
182
  dependencies = [
183
183
  { name = "dateparser" },
@@ -210,6 +210,9 @@ dev = [
210
210
  { name = "types-pymysql" },
211
211
  { name = "types-requests" },
212
212
  ]
213
+ docs = [
214
+ { name = "clear-skies-doc-builder" },
215
+ ]
213
216
 
214
217
  [package.metadata]
215
218
  requires-dist = [
@@ -237,6 +240,19 @@ dev = [
237
240
  { name = "types-pymysql", specifier = ">=1.1.0.20250516" },
238
241
  { name = "types-requests", specifier = ">=2.32.4" },
239
242
  ]
243
+ docs = [{ name = "clear-skies-doc-builder", specifier = ">=2.0.4" }]
244
+
245
+ [[package]]
246
+ name = "clear-skies-doc-builder"
247
+ version = "2.0.4"
248
+ source = { registry = "https://pypi.org/simple" }
249
+ dependencies = [
250
+ { name = "clear-skies" },
251
+ ]
252
+ sdist = { url = "https://files.pythonhosted.org/packages/25/eb/7ff048f2a24d1d4e0b5610582eafb89c2d8edf16ecb0ab15c0dddae64579/clear_skies_doc_builder-2.0.4.tar.gz", hash = "sha256:3a04f51e700a3badb6fd561d6ee46b2d302523efb9ac8a79839db52ca433d72a", size = 59658, upload-time = "2025-09-03T16:44:50.106Z" }
253
+ wheels = [
254
+ { url = "https://files.pythonhosted.org/packages/d3/b4/3602529c88aa8148502523dcbd12337dd4e33d3f1084b192f8461237951c/clear_skies_doc_builder-2.0.4-py3-none-any.whl", hash = "sha256:094fec117f37b0f8a67b705103e68f8e34691873b588f636e672d8b81e8edac6", size = 25206, upload-time = "2025-09-03T16:44:48.889Z" },
255
+ ]
240
256
 
241
257
  [[package]]
242
258
  name = "click"
@@ -1,30 +0,0 @@
1
- ## [2.0.5] - 2025-09-09
2
-
3
- ### Added
4
- - Add changelog.md
5
- - Add uv and release workflow
6
- - Add uv and release workflow
7
-
8
- ### Changed
9
- - Switch build to uv by @tnijboer in [#18](https://github.com/clearskies-py/clearskies/pull/18)
10
- - Reuse readme.md
11
- - Switch build to uv by @cmancone
12
- - Workflows by @cmancone in [#17](https://github.com/clearskies-py/clearskies/pull/17)
13
- - Merge pull request #14 from clearskies-py/docs-switch by @cmancone in [#14](https://github.com/clearskies-py/clearskies/pull/14)
14
- - R2G? by @cmancone
15
- - Moving along by @cmancone
16
- - Bug fix for error message by @cmancone
17
-
18
- ### Fixed
19
- - Allow list for json default and setable by @cmancone in [#16](https://github.com/clearskies-py/clearskies/pull/16)
20
- - Set default and setable for json column to any config
21
- - Allow list for json default and setable
22
- - Right include for readme
23
- - Docs missing folder
24
- - Pyproject.toml
25
- - Set input/output schema to type[Schema] by @cmancone in [#15](https://github.com/clearskies-py/clearskies/pull/15)
26
- - Set input/output schema to type[Schema]
27
-
28
- ### Removed
29
- - Remove dupes by @cmancone
30
-
@@ -1,13 +0,0 @@
1
- import unittest
2
- from unittest.mock import MagicMock
3
-
4
- from .public import Public
5
-
6
-
7
- class PublicTest(unittest.TestCase):
8
- def test_headers(self):
9
- public = Public()
10
- self.assertEqual({}, public.headers())
11
-
12
- def test_good_auth(self):
13
- self.assertTrue(Public().authenticate(None))
@@ -1,39 +0,0 @@
1
- import unittest
2
- from unittest.mock import MagicMock
3
-
4
- from clearskies import Configurable, configs
5
- import clearskies.decorators
6
-
7
- from .. import action
8
-
9
-
10
- class FakeAction(action.Action):
11
- def __call__(self): # type: ignore
12
- pass
13
-
14
-
15
- class HasConfigs(Configurable):
16
- actions = configs.Actions()
17
-
18
- @clearskies.decorators.parameters_to_properties
19
- def __init__(self, actions):
20
- self.finalize_and_validate_configuration()
21
-
22
-
23
- class ActionsTest(unittest.TestCase):
24
- def test_allow(self):
25
- has_configs = HasConfigs(self.test_allow)
26
- assert has_configs.actions == [self.test_allow]
27
-
28
- fake_action = FakeAction()
29
- more_configs = HasConfigs([self.test_allow, fake_action])
30
- assert more_configs.actions == [self.test_allow, fake_action]
31
-
32
- def test_raise_non_action(self):
33
- with self.assertRaises(TypeError) as context:
34
- fake_action = FakeAction()
35
- has_configs = HasConfigs([self.test_allow, fake_action, "sup"])
36
- assert (
37
- "Error with 'HasConfigs.actions': attempt to set a value of type 'str' for item #3 when a callable or Action is required"
38
- == str(context.exception)
39
- )
@@ -1,22 +0,0 @@
1
- import unittest
2
- from unittest.mock import MagicMock
3
- import clearskies.decorators
4
-
5
- from clearskies import Configurable, configs
6
-
7
-
8
- class HasConfigs(Configurable):
9
- anything = configs.Any()
10
-
11
- @clearskies.decorators.parameters_to_properties
12
- def __init__(self, anything):
13
- self.finalize_and_validate_configuration()
14
-
15
-
16
- class AnyTest(unittest.TestCase):
17
- def test_allow(self):
18
- has_configs = HasConfigs("blahblahblah")
19
- assert has_configs.anything == "blahblahblah"
20
-
21
- more_configs = HasConfigs(5)
22
- assert more_configs.anything == 5
@@ -1,39 +0,0 @@
1
- import unittest
2
- from unittest.mock import MagicMock
3
- import clearskies.decorators
4
- from clearskies import Configurable, Model, configs
5
-
6
-
7
- class MyModel(Model):
8
- destination_name = "asdf" # type: ignore
9
-
10
-
11
- class HasConfigs(Configurable):
12
- some_model_class = configs.ModelClass()
13
-
14
- @clearskies.decorators.parameters_to_properties
15
- def __init__(self, some_model_class):
16
- self.finalize_and_validate_configuration()
17
-
18
-
19
- class ModelReference:
20
- def get_model_class(self):
21
- return MyModel
22
-
23
-
24
- class ModelClassTest(unittest.TestCase):
25
- def test_allow_model(self):
26
- has_configs = HasConfigs(MyModel)
27
- assert has_configs.some_model_class == MyModel
28
-
29
- def test_allow_model_reference(self):
30
- has_configs = HasConfigs(ModelReference)
31
- assert has_configs.some_model_class == MyModel
32
-
33
- def test_raise_non_model(self):
34
- with self.assertRaises(TypeError) as context:
35
- has_configs = HasConfigs("hey")
36
- assert (
37
- "Error with 'HasConfigs.some_model_class': I expected a model class or reference, but instead I received something of type 'str'"
38
- == str(context.exception)
39
- )
@@ -1,39 +0,0 @@
1
- import unittest
2
- from unittest.mock import MagicMock
3
-
4
- import clearskies.decorators
5
- from clearskies import Configurable, configs
6
-
7
-
8
- class HasConfigs(Configurable):
9
- my_select_list = configs.SelectList(["asdf", "qwerty", "bob", "jane"], default=["asdf", "bob"])
10
-
11
- @clearskies.decorators.parameters_to_properties
12
- def __init__(self, my_select_list=None):
13
- self.finalize_and_validate_configuration()
14
-
15
-
16
- class SelectListTest(unittest.TestCase):
17
- def test_allow(self):
18
- has_configs = HasConfigs(["qwerty", "bob"])
19
- assert has_configs.my_select_list == ["qwerty", "bob"]
20
-
21
- def test_raise_wrong_type(self):
22
- with self.assertRaises(TypeError) as context:
23
- has_configs = HasConfigs(5)
24
- assert (
25
- "Error with 'HasConfigs.my_select_list': attempt to set a value of type 'int' to a list parameter"
26
- == str(context.exception)
27
- )
28
-
29
- def test_raise_invalid_value(self):
30
- with self.assertRaises(ValueError) as context:
31
- has_configs = HasConfigs(["asdf", "12345"])
32
- assert (
33
- "Error with 'HasConfigs.my_select_list': attempt to set a value of '12345' for item #2. This is not in the list of allowed values. It must be one of 'asdf', 'qwerty', 'bob', 'jane'"
34
- == str(context.exception)
35
- )
36
-
37
- def test_default(self):
38
- has_configs = HasConfigs()
39
- assert has_configs.my_select_list == ["asdf", "bob"]
@@ -1,45 +0,0 @@
1
- import unittest
2
- from unittest.mock import MagicMock
3
- import clearskies.decorators
4
- from clearskies import Configurable, configs
5
-
6
-
7
- class HasConfigs(Configurable):
8
- my_string = configs.String(default="asdf")
9
-
10
- @clearskies.decorators.parameters_to_properties
11
- def __init__(self, my_string=None):
12
- self.finalize_and_validate_configuration()
13
-
14
-
15
- class HasConfigsRequired(Configurable):
16
- my_string = configs.String(required=True)
17
-
18
- @clearskies.decorators.parameters_to_properties
19
- def __init__(self, my_string=None):
20
- self.finalize_and_validate_configuration()
21
-
22
-
23
- class StringTest(unittest.TestCase):
24
- def test_allow(self):
25
- has_configs = HasConfigs("something")
26
- assert has_configs.my_string == "something"
27
-
28
- def test_raise_wrong_type(self):
29
- with self.assertRaises(TypeError) as context:
30
- has_configs = HasConfigs(5)
31
- assert (
32
- "Error with 'HasConfigs.my_string': attempt to set a value of type 'int' to a parameter that requires a string."
33
- == str(context.exception)
34
- )
35
-
36
- def test_default(self):
37
- has_configs = HasConfigs()
38
- assert has_configs.my_string == "asdf"
39
-
40
- def test_required(self):
41
- with self.assertRaises(ValueError) as context:
42
- has_configs = HasConfigsRequired()
43
- assert "Missing required configuration property 'my_string' for class 'HasConfigsRequired'" == str(
44
- context.exception
45
- )
@@ -1,37 +0,0 @@
1
- import unittest
2
- from unittest.mock import MagicMock
3
-
4
- import clearskies.decorators
5
- from clearskies import Configurable, configs
6
-
7
- from .. import validator
8
-
9
-
10
- class FakeValidator(validator.Validator):
11
- def check(self, data): # type: ignore
12
- pass
13
-
14
-
15
- class HasConfigs(Configurable):
16
- validators = configs.Validators()
17
-
18
- @clearskies.decorators.parameters_to_properties
19
- def __init__(self, validators):
20
- self.finalize_and_validate_configuration()
21
-
22
-
23
- class ValidatorsTest(unittest.TestCase):
24
- def test_allow(self):
25
- fake_validator = FakeValidator()
26
-
27
- has_configs = HasConfigs(fake_validator)
28
- assert has_configs.validators == [fake_validator]
29
-
30
- def test_raise_non_validator(self):
31
- with self.assertRaises(TypeError) as context:
32
- fake_validator = FakeValidator()
33
- has_configs = HasConfigs([fake_validator, "sup"])
34
- assert (
35
- "Error with 'HasConfigs.validators': attempt to set a value of type 'str' for item #2 when a Validator is required"
36
- == str(context.exception)
37
- )
@@ -1,29 +0,0 @@
1
- import os
2
- import unittest
3
- from unittest.mock import MagicMock, call
4
-
5
- from .environment import Environment
6
-
7
-
8
- class EnvironmentTest(unittest.TestCase):
9
- def setUp(self):
10
- self.secrets = type("", (), {"get": MagicMock(return_value="my_secret")})
11
- self.environment = Environment(
12
- "",
13
- {
14
- "env_in_environment": "yup",
15
- "also": "secret:///another/secret/path",
16
- "an_integer": 5,
17
- },
18
- self.secrets,
19
- )
20
-
21
- def test_get_from_env(self):
22
- self.assertEqual("yup", self.environment.get("env_in_environment"))
23
-
24
- def test_get_from_env_resolve_secret(self):
25
- self.assertEqual("my_secret", self.environment.get("also"))
26
- self.secrets.get.assert_called_with("/another/secret/path") # type: ignore
27
-
28
- def test_no_crash_for_ints(self):
29
- self.assertEqual(5, self.environment.get("an_integer"))
@@ -1,36 +0,0 @@
1
- import datetime
2
- import unittest
3
-
4
- from . import string
5
-
6
-
7
- class StringTest(unittest.TestCase):
8
- def test_camel_case_to_snake_case(self):
9
- self.assertEqual("dynamo_db_backend", string.camel_case_to_snake_case("DynamoDBBackend"))
10
- self.assertEqual("dynamo_db_backend", string.camel_case_to_snake_case("dynamoDBBackend"))
11
- self.assertEqual("dynamo_db_backend", string.camel_case_to_snake_case("DynamoDbBackend"))
12
- self.assertEqual("dyn9amo_db_backend", string.camel_case_to_snake_case("Dyn9amoDbBackend"))
13
-
14
- def test_snake_case_to_camel_case(self):
15
- self.assertEqual("dynamoDbBackend", string.snake_case_to_camel_case("dYNamo_db_backend"))
16
- self.assertEqual("dynamoDbBackend", string.snake_case_to_camel_case("dynamo__db_backend"))
17
-
18
- def test_snake_case_to_title_case(self):
19
- self.assertEqual("DynamoDbBackend", string.snake_case_to_title_case("dYNamo_db_backend"))
20
- self.assertEqual("DynamoDbBackend", string.snake_case_to_title_case("dynamo__db_backend"))
21
-
22
- def test_swap_casing(self):
23
- self.assertEqual("DynamoDbBackend", string.swap_casing("dYNamo_db_backend", "snake_case", "TitleCase"))
24
- self.assertEqual("dynamoDbBackend", string.swap_casing("dYNamo_db_backend", "snake_case", "camelCase"))
25
- self.assertEqual("dynamo_db_backend", string.swap_casing("DynamoDBBackend", "camelCase", "snake_case"))
26
- self.assertEqual("dynamoDbBackend", string.swap_casing("DynamoDbBackend", "TitleCase", "camelCase"))
27
-
28
- def test_make_plural(self):
29
- self.assertEqual("doggies", string.make_plural("doggy"))
30
- self.assertEqual("dogs", string.make_plural("dog"))
31
- self.assertEqual("classes", string.make_plural("class"))
32
-
33
- def test_convert_datetime(self):
34
- self.assertEqual("hey", string.datetime_to_iso("hey"))
35
- self.assertEqual(5, string.datetime_to_iso(5))
36
- self.assertEqual("2024-03-19", string.datetime_to_iso(datetime.date(2024, 3, 19)))
@@ -1,21 +0,0 @@
1
- import unittest
2
- from types import SimpleNamespace
3
-
4
- from clearskies import Model
5
-
6
- from . import validations
7
-
8
-
9
- class ValidationsTest(unittest.TestCase):
10
- def test_is_model(self):
11
- assert validations.is_model(SimpleNamespace(destination_name=True))
12
- assert not validations.is_model("")
13
-
14
- def test_is_model_class(self):
15
- assert validations.is_model_class(Model)
16
- assert not validations.is_model_class("")
17
-
18
- def test_is_model_or_class(self):
19
- assert validations.is_model_or_class(Model)
20
- assert validations.is_model_or_class(SimpleNamespace(destination_name=True))
21
- assert not validations.is_model_or_class("")