clear-skies 2.0.11__tar.gz → 2.0.13__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 (276) hide show
  1. {clear_skies-2.0.11 → clear_skies-2.0.13}/CHANGELOG.md +20 -0
  2. clear_skies-2.0.13/LATEST_CHANGELOG.md +10 -0
  3. {clear_skies-2.0.11 → clear_skies-2.0.13}/PKG-INFO +1 -1
  4. {clear_skies-2.0.11 → clear_skies-2.0.13}/pyproject.toml +1 -1
  5. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/callable_config.py +1 -1
  6. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/contexts/wsgi.py +1 -3
  7. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/contexts/wsgi_ref.py +1 -1
  8. clear_skies-2.0.13/src/clearskies/input_outputs/headers.py +54 -0
  9. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/input_outputs/wsgi.py +1 -0
  10. {clear_skies-2.0.11 → clear_skies-2.0.13}/uv.lock +1 -1
  11. clear_skies-2.0.11/LATEST_CHANGELOG.md +0 -6
  12. clear_skies-2.0.11/src/clearskies/input_outputs/headers.py +0 -48
  13. {clear_skies-2.0.11 → clear_skies-2.0.13}/.editorconfig +0 -0
  14. {clear_skies-2.0.11 → clear_skies-2.0.13}/.github/workflows/create-version.yaml +0 -0
  15. {clear_skies-2.0.11 → clear_skies-2.0.13}/.github/workflows/docs.yaml +0 -0
  16. {clear_skies-2.0.11 → clear_skies-2.0.13}/.github/workflows/run-tests.yml +0 -0
  17. {clear_skies-2.0.11 → clear_skies-2.0.13}/.github/workflows/tests-matrix.yaml +0 -0
  18. {clear_skies-2.0.11 → clear_skies-2.0.13}/.github/workflows/tests.yaml +0 -0
  19. {clear_skies-2.0.11 → clear_skies-2.0.13}/.gitignore +0 -0
  20. {clear_skies-2.0.11 → clear_skies-2.0.13}/.pre-commit-config.yaml +0 -0
  21. {clear_skies-2.0.11 → clear_skies-2.0.13}/.python-version +0 -0
  22. {clear_skies-2.0.11 → clear_skies-2.0.13}/.vscode/extensions.json +0 -0
  23. {clear_skies-2.0.11 → clear_skies-2.0.13}/.vscode/settings.json +0 -0
  24. {clear_skies-2.0.11 → clear_skies-2.0.13}/LICENSE +0 -0
  25. {clear_skies-2.0.11 → clear_skies-2.0.13}/README.md +0 -0
  26. {clear_skies-2.0.11 → clear_skies-2.0.13}/build.sh +0 -0
  27. {clear_skies-2.0.11 → clear_skies-2.0.13}/cliff.toml +0 -0
  28. {clear_skies-2.0.11 → clear_skies-2.0.13}/ruff.toml +0 -0
  29. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/__init__.py +0 -0
  30. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/action.py +0 -0
  31. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/authentication/__init__.py +0 -0
  32. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/authentication/authentication.py +0 -0
  33. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/authentication/authorization.py +0 -0
  34. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/authentication/authorization_pass_through.py +0 -0
  35. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/authentication/jwks.py +0 -0
  36. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/authentication/public.py +0 -0
  37. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/authentication/secret_bearer.py +0 -0
  38. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/__init__.py +0 -0
  39. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/formats/__init__.py +0 -0
  40. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/formats/oai3_json/__init__.py +0 -0
  41. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/formats/oai3_json/oai3_json.py +0 -0
  42. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/formats/oai3_json/oai3_schema_resolver.py +0 -0
  43. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/formats/oai3_json/parameter.py +0 -0
  44. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/formats/oai3_json/request.py +0 -0
  45. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/formats/oai3_json/response.py +0 -0
  46. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/formats/oai3_json/schema/__init__.py +0 -0
  47. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/formats/oai3_json/schema/array.py +0 -0
  48. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/formats/oai3_json/schema/default.py +0 -0
  49. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/formats/oai3_json/schema/enum.py +0 -0
  50. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/formats/oai3_json/schema/object.py +0 -0
  51. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/formats/oai3_json/test.json +0 -0
  52. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/py.typed +0 -0
  53. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/request/__init__.py +0 -0
  54. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/request/header.py +0 -0
  55. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/request/json_body.py +0 -0
  56. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/request/parameter.py +0 -0
  57. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/request/request.py +0 -0
  58. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/request/url_parameter.py +0 -0
  59. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/request/url_path.py +0 -0
  60. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/response/__init__.py +0 -0
  61. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/response/response.py +0 -0
  62. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/schema/__init__.py +0 -0
  63. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/schema/array.py +0 -0
  64. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/schema/base64.py +0 -0
  65. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/schema/boolean.py +0 -0
  66. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/schema/date.py +0 -0
  67. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/schema/datetime.py +0 -0
  68. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/schema/double.py +0 -0
  69. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/schema/enum.py +0 -0
  70. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/schema/integer.py +0 -0
  71. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/schema/long.py +0 -0
  72. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/schema/number.py +0 -0
  73. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/schema/object.py +0 -0
  74. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/schema/password.py +0 -0
  75. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/schema/schema.py +0 -0
  76. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/autodoc/schema/string.py +0 -0
  77. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/backends/__init__.py +0 -0
  78. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/backends/api_backend.py +0 -0
  79. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/backends/backend.py +0 -0
  80. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/backends/cursor_backend.py +0 -0
  81. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/backends/memory_backend.py +0 -0
  82. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/backends/secrets_backend.py +0 -0
  83. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/column.py +0 -0
  84. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/__init__.py +0 -0
  85. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/audit.py +0 -0
  86. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/belongs_to_id.py +0 -0
  87. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/belongs_to_model.py +0 -0
  88. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/belongs_to_self.py +0 -0
  89. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/boolean.py +0 -0
  90. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/category_tree.py +0 -0
  91. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/category_tree_ancestors.py +0 -0
  92. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/category_tree_children.py +0 -0
  93. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/category_tree_descendants.py +0 -0
  94. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/created.py +0 -0
  95. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/created_by_authorization_data.py +0 -0
  96. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/created_by_header.py +0 -0
  97. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/created_by_ip.py +0 -0
  98. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/created_by_routing_data.py +0 -0
  99. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/created_by_user_agent.py +0 -0
  100. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/date.py +0 -0
  101. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/datetime.py +0 -0
  102. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/email.py +0 -0
  103. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/float.py +0 -0
  104. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/has_many.py +0 -0
  105. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/has_many_self.py +0 -0
  106. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/has_one.py +0 -0
  107. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/integer.py +0 -0
  108. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/json.py +0 -0
  109. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/many_to_many_ids.py +0 -0
  110. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/many_to_many_ids_with_data.py +0 -0
  111. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/many_to_many_models.py +0 -0
  112. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/many_to_many_pivots.py +0 -0
  113. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/phone.py +0 -0
  114. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/select.py +0 -0
  115. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/string.py +0 -0
  116. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/timestamp.py +0 -0
  117. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/updated.py +0 -0
  118. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/columns/uuid.py +0 -0
  119. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/README.md +0 -0
  120. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/__init__.py +0 -0
  121. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/actions.py +0 -0
  122. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/any.py +0 -0
  123. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/any_dict.py +0 -0
  124. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/any_dict_or_callable.py +0 -0
  125. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/authentication.py +0 -0
  126. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/authorization.py +0 -0
  127. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/boolean.py +0 -0
  128. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/boolean_or_callable.py +0 -0
  129. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/columns.py +0 -0
  130. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/conditions.py +0 -0
  131. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/config.py +0 -0
  132. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/datetime.py +0 -0
  133. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/datetime_or_callable.py +0 -0
  134. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/email.py +0 -0
  135. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/email_list.py +0 -0
  136. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/email_list_or_callable.py +0 -0
  137. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/email_or_email_list_or_callable.py +0 -0
  138. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/endpoint.py +0 -0
  139. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/endpoint_list.py +0 -0
  140. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/float.py +0 -0
  141. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/float_or_callable.py +0 -0
  142. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/headers.py +0 -0
  143. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/integer.py +0 -0
  144. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/integer_or_callable.py +0 -0
  145. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/joins.py +0 -0
  146. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/list_any_dict.py +0 -0
  147. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/list_any_dict_or_callable.py +0 -0
  148. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/model_class.py +0 -0
  149. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/model_column.py +0 -0
  150. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/model_columns.py +0 -0
  151. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/model_destination_name.py +0 -0
  152. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/model_to_id_column.py +0 -0
  153. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/readable_model_column.py +0 -0
  154. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/readable_model_columns.py +0 -0
  155. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/schema.py +0 -0
  156. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/searchable_model_columns.py +0 -0
  157. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/security_headers.py +0 -0
  158. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/select.py +0 -0
  159. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/select_list.py +0 -0
  160. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/string.py +0 -0
  161. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/string_dict.py +0 -0
  162. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/string_list.py +0 -0
  163. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/string_list_or_callable.py +0 -0
  164. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/string_or_callable.py +0 -0
  165. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/timedelta.py +0 -0
  166. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/timezone.py +0 -0
  167. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/url.py +0 -0
  168. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/validators.py +0 -0
  169. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/writeable_model_column.py +0 -0
  170. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configs/writeable_model_columns.py +0 -0
  171. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/configurable.py +0 -0
  172. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/contexts/__init__.py +0 -0
  173. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/contexts/cli.py +0 -0
  174. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/contexts/context.py +0 -0
  175. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/decorators.py +0 -0
  176. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/decorators.pyi +0 -0
  177. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/di/__init__.py +0 -0
  178. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/di/additional_config.py +0 -0
  179. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/di/additional_config_auto_import.py +0 -0
  180. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/di/di.py +0 -0
  181. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/di/inject/__init__.py +0 -0
  182. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/di/inject/by_class.py +0 -0
  183. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/di/inject/by_name.py +0 -0
  184. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/di/inject/di.py +0 -0
  185. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/di/inject/environment.py +0 -0
  186. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/di/inject/input_output.py +0 -0
  187. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/di/inject/now.py +0 -0
  188. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/di/inject/requests.py +0 -0
  189. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/di/inject/secrets.py +0 -0
  190. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/di/inject/utcnow.py +0 -0
  191. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/di/inject/uuid.py +0 -0
  192. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/di/injectable.py +0 -0
  193. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/di/injectable_properties.py +0 -0
  194. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/di/test_module/__init__.py +0 -0
  195. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/di/test_module/another_module/__init__.py +0 -0
  196. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/di/test_module/module_class.py +0 -0
  197. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/end.py +0 -0
  198. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/endpoint.py +0 -0
  199. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/endpoint_group.py +0 -0
  200. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/endpoints/__init__.py +0 -0
  201. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/endpoints/advanced_search.py +0 -0
  202. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/endpoints/callable.py +0 -0
  203. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/endpoints/create.py +0 -0
  204. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/endpoints/delete.py +0 -0
  205. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/endpoints/get.py +0 -0
  206. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/endpoints/health_check.py +0 -0
  207. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/endpoints/list.py +0 -0
  208. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/endpoints/restful_api.py +0 -0
  209. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/endpoints/schema.py +0 -0
  210. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/endpoints/simple_search.py +0 -0
  211. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/endpoints/update.py +0 -0
  212. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/environment.py +0 -0
  213. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/exceptions/__init__.py +0 -0
  214. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/exceptions/authentication.py +0 -0
  215. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/exceptions/authorization.py +0 -0
  216. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/exceptions/client_error.py +0 -0
  217. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/exceptions/input_errors.py +0 -0
  218. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/exceptions/missing_dependency.py +0 -0
  219. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/exceptions/moved_permanently.py +0 -0
  220. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/exceptions/moved_temporarily.py +0 -0
  221. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/exceptions/not_found.py +0 -0
  222. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/functional/__init__.py +0 -0
  223. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/functional/routing.py +0 -0
  224. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/functional/string.py +0 -0
  225. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/functional/validations.py +0 -0
  226. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/input_outputs/__init__.py +0 -0
  227. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/input_outputs/cli.py +0 -0
  228. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/input_outputs/exceptions/__init__.py +0 -0
  229. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/input_outputs/exceptions/cli_input_error.py +0 -0
  230. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/input_outputs/exceptions/cli_not_found.py +0 -0
  231. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/input_outputs/input_output.py +0 -0
  232. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/input_outputs/programmatic.py +0 -0
  233. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/input_outputs/py.typed +0 -0
  234. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/model.py +0 -0
  235. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/py.typed +0 -0
  236. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/query/__init__.py +0 -0
  237. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/query/condition.py +0 -0
  238. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/query/join.py +0 -0
  239. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/query/query.py +0 -0
  240. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/query/sort.py +0 -0
  241. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/schema.py +0 -0
  242. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/secrets/__init__.py +0 -0
  243. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/secrets/additional_configs/__init__.py +0 -0
  244. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/secrets/additional_configs/mysql_connection_dynamic_producer.py +0 -0
  245. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/secrets/additional_configs/mysql_connection_dynamic_producer_via_ssh_cert_bastion.py +0 -0
  246. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/secrets/akeyless.py +0 -0
  247. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/secrets/exceptions/__init__.py +0 -0
  248. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/secrets/exceptions/not_found.py +0 -0
  249. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/secrets/secrets.py +0 -0
  250. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/security_header.py +0 -0
  251. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/security_headers/__init__.py +0 -0
  252. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/security_headers/cache_control.py +0 -0
  253. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/security_headers/cors.py +0 -0
  254. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/security_headers/csp.py +0 -0
  255. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/security_headers/hsts.py +0 -0
  256. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/security_headers/x_content_type_options.py +0 -0
  257. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/security_headers/x_frame_options.py +0 -0
  258. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/test_base.py +0 -0
  259. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/typing.py +0 -0
  260. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/validator.py +0 -0
  261. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/validators/__init__.py +0 -0
  262. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/validators/after_column.py +0 -0
  263. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/validators/before_column.py +0 -0
  264. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/validators/in_the_future.py +0 -0
  265. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/validators/in_the_future_at_least.py +0 -0
  266. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/validators/in_the_future_at_most.py +0 -0
  267. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/validators/in_the_past.py +0 -0
  268. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/validators/in_the_past_at_least.py +0 -0
  269. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/validators/in_the_past_at_most.py +0 -0
  270. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/validators/maximum_length.py +0 -0
  271. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/validators/maximum_value.py +0 -0
  272. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/validators/minimum_length.py +0 -0
  273. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/validators/minimum_value.py +0 -0
  274. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/validators/required.py +0 -0
  275. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/validators/timedelta.py +0 -0
  276. {clear_skies-2.0.11 → clear_skies-2.0.13}/src/clearskies/validators/unique.py +0 -0
@@ -5,9 +5,27 @@ 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.13] - 2025-10-10
9
+
10
+ ### Changed
11
+ - Broken imports by @cmancone in [#25](https://github.com/clearskies-py/clearskies/pull/25)
12
+ - Broken imports by @cmancone
13
+
14
+ ### Fixed
15
+ - Callable be none by @cmancone in [#26](https://github.com/clearskies-py/clearskies/pull/26)
16
+ - Callable be none
17
+
18
+ ## [2.0.12] - 2025-10-09
19
+
20
+ ### Changed
21
+ - Bump version to v2.0.12 by @github-actions[bot]
22
+ - Use dict for Header class by @cmancone in [#23](https://github.com/clearskies-py/clearskies/pull/23)
23
+ - Make headers a dict
24
+
8
25
  ## [2.0.11] - 2025-10-09
9
26
 
10
27
  ### Changed
28
+ - Bump version to v2.0.11 by @github-actions[bot]
11
29
  - Typos by @cmancone in [#24](https://github.com/clearskies-py/clearskies/pull/24)
12
30
  - Input Output reorg by @cmancone
13
31
 
@@ -806,6 +824,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
806
824
  * @ made their first contribution
807
825
  * @tnijboer made their first contribution
808
826
  * @conormancone-cimpress made their first contribution
827
+ [2.0.13]: https://github.com/clearskies-py/clearskies/compare/v2.0.12..v2.0.13
828
+ [2.0.12]: https://github.com/clearskies-py/clearskies/compare/v2.0.11..v2.0.12
809
829
  [2.0.11]: https://github.com/clearskies-py/clearskies/compare/v2.0.10..v2.0.11
810
830
  [2.0.10]: https://github.com/clearskies-py/clearskies/compare/v2.0.9..v2.0.10
811
831
  [2.0.9]: https://github.com/clearskies-py/clearskies/compare/v2.0.8..v2.0.9
@@ -0,0 +1,10 @@
1
+ ## [2.0.13] - 2025-10-10
2
+
3
+ ### Changed
4
+ - Broken imports by @cmancone in [#25](https://github.com/clearskies-py/clearskies/pull/25)
5
+ - Broken imports by @cmancone
6
+
7
+ ### Fixed
8
+ - Callable be none by @cmancone in [#26](https://github.com/clearskies-py/clearskies/pull/26)
9
+ - Callable be none
10
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clear-skies
3
- Version: 2.0.11
3
+ Version: 2.0.13
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.11"
4
+ version = "2.0.13"
5
5
  license = "MIT"
6
6
  readme = "./README.md"
7
7
  authors = [{name = "Conor Mancone", email = "cmancone@gmail.com"}]
@@ -7,7 +7,7 @@ from clearskies.configs import config
7
7
 
8
8
  class Callable(config.Config):
9
9
  def __set__(self, instance, value: CallableType):
10
- if not callable(value):
10
+ if value is not None and not callable(value):
11
11
  error_prefix = self._error_prefix(instance)
12
12
  raise TypeError(
13
13
  f"{error_prefix} attempt to set a value of type '{value.__class__.__name__}' to a parameter that requries a Callable."
@@ -3,9 +3,7 @@ from __future__ import annotations
3
3
  from typing import TYPE_CHECKING
4
4
 
5
5
  from clearskies.contexts.context import Context
6
-
7
- if TYPE_CHECKING:
8
- from clearskies.input_outputs import Wsgi as WsgiInputOutput
6
+ from clearskies.input_outputs import Wsgi as WsgiInputOutput
9
7
 
10
8
 
11
9
  class Wsgi(Context):
@@ -7,12 +7,12 @@ from wsgiref.simple_server import make_server
7
7
  from wsgiref.util import setup_testing_defaults
8
8
 
9
9
  from clearskies.contexts.context import Context
10
+ from clearskies.input_outputs import Wsgi as WsgiInputOutput
10
11
 
11
12
  if TYPE_CHECKING:
12
13
  from clearskies.di import AdditionalConfig
13
14
  from clearskies.endpoint import Endpoint
14
15
  from clearskies.endpoint_group import EndpointGroup
15
- from clearskies.input_outputs import Wsgi as WsgiInputOutput
16
16
 
17
17
 
18
18
  class WsgiRef(Context):
@@ -0,0 +1,54 @@
1
+ from __future__ import annotations
2
+
3
+ import re
4
+ from typing import TypeVar
5
+
6
+ _T = TypeVar("_T")
7
+
8
+
9
+ class Headers(dict[str, str]):
10
+ _duck_cheat = "headers"
11
+
12
+ def __init__(self, headers: dict[str, str] = {}) -> None:
13
+ normalized_headers = (
14
+ {key.upper().replace("_", "-"): value for (key, value) in headers.items()} if headers else {}
15
+ )
16
+ super().__init__(normalized_headers)
17
+
18
+ def __contains__(self, key: object) -> bool:
19
+ if not isinstance(key, str):
20
+ return False
21
+ return super().__contains__(key.upper().replace("_", "-"))
22
+
23
+ def __getitem__(self, key: str) -> str:
24
+ return super().__getitem__(key.upper().replace("_", "-"))
25
+
26
+ def __setitem__(self, key: str, value: str) -> None:
27
+ if not isinstance(key, str):
28
+ raise TypeError(
29
+ f"Header keys must be strings, but an object of type '{key.__class__.__name__}' was provided."
30
+ )
31
+ if not isinstance(value, str):
32
+ raise TypeError(
33
+ f"Header values must be strings, but an object of type '{value.__class__.__name__}' was provided."
34
+ )
35
+ normalized_key = re.sub("\\s+", " ", key.upper().replace("_", "-"))
36
+ normalized_value = re.sub("\\s+", " ", value.strip())
37
+ super().__setitem__(normalized_key, normalized_value)
38
+
39
+ def __getattr__(self, key: str) -> str | None:
40
+ return self.get(key.upper().replace("_", "-"), None)
41
+
42
+ def __setattr__(self, key: str, value: str) -> None:
43
+ if key.startswith("_") or key == "_duck_cheat":
44
+ # Allow setting private attributes and special attributes normally
45
+ super().__setattr__(key, value)
46
+ else:
47
+ self.__setitem__(key, value)
48
+
49
+ def get(self, key: str, default: _T = None) -> str | _T: # type: ignore[assignment]
50
+ return super().get(key.upper().replace("_", "-"), default)
51
+
52
+ def add(self, key: str, value: str) -> None:
53
+ """Add a header. This expects a string with a colon separating the key and value."""
54
+ setattr(self, key, value)
@@ -1,4 +1,5 @@
1
1
  from __future__ import annotations
2
+ from urllib.parse import parse_qs
2
3
 
3
4
  import json
4
5
  from typing import Callable
@@ -202,7 +202,7 @@ wheels = [
202
202
 
203
203
  [[package]]
204
204
  name = "clear-skies"
205
- version = "2.0.11"
205
+ version = "2.0.13"
206
206
  source = { editable = "." }
207
207
  dependencies = [
208
208
  { name = "dateparser" },
@@ -1,6 +0,0 @@
1
- ## [2.0.11] - 2025-10-09
2
-
3
- ### Changed
4
- - Typos by @cmancone in [#24](https://github.com/clearskies-py/clearskies/pull/24)
5
- - Input Output reorg by @cmancone
6
-
@@ -1,48 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import re
4
-
5
-
6
- class Headers:
7
- _headers: dict[str, str] = {}
8
- _duck_cheat = "headers"
9
-
10
- def __init__(self, headers: dict[str, str] = {}):
11
- self.__dict__["_headers"] = (
12
- {key.upper().replace("_", "-"): value for (key, value) in headers.items()} if headers else {}
13
- )
14
-
15
- def __contains__(self, key: str):
16
- return key.upper().replace("_", "-") in self._headers
17
-
18
- def __getattr__(self, key: str) -> str | None:
19
- return self._headers.get(key.upper().replace("_", "-"), None)
20
-
21
- def __setattr__(self, key: str, value: str) -> None:
22
- if not isinstance(key, str):
23
- raise TypeError(
24
- f"Header keys must be strings, but an object of type '{value.__class__.__name__}' was provided."
25
- )
26
- if not isinstance(value, str):
27
- raise TypeError(
28
- f"Header values must be strings, but an object of type '{value.__class__.__name__}' was provided."
29
- )
30
- self._headers[re.sub("\\s+", " ", key.upper().replace("_", "-"))] = re.sub("\\s+", " ", value.strip())
31
-
32
- def get(self, key, default=None):
33
- if key not in self:
34
- return default
35
- return self.__getattr__(key)
36
-
37
- def keys(self) -> list[str]:
38
- return list(self._headers.keys())
39
-
40
- def values(self) -> list[str]:
41
- return list(self._headers.keys())
42
-
43
- def items(self) -> list[tuple[str]]:
44
- return list(self._headers.items()) # type: ignore
45
-
46
- def add(self, key: str, value: str) -> None:
47
- """Add a header. This expects a string with a colon separating the key and value."""
48
- setattr(self, key, value)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes