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.
- {clear_skies-2.0.5 → clear_skies-2.0.6}/.github/workflows/create-version.yaml +4 -30
- {clear_skies-2.0.5 → clear_skies-2.0.6}/.github/workflows/docs.yaml +9 -3
- {clear_skies-2.0.5 → clear_skies-2.0.6}/CHANGELOG.md +14 -0
- clear_skies-2.0.6/LATEST_CHANGELOG.md +10 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/PKG-INFO +1 -1
- {clear_skies-2.0.5 → clear_skies-2.0.6}/pyproject.toml +8 -5
- {clear_skies-2.0.5 → clear_skies-2.0.6}/uv.lock +17 -1
- clear_skies-2.0.5/LATEST_CHANGELOG.md +0 -30
- clear_skies-2.0.5/src/clearskies/authentication/public_test.py +0 -13
- clear_skies-2.0.5/src/clearskies/configs/actions_test.py +0 -39
- clear_skies-2.0.5/src/clearskies/configs/any_test.py +0 -22
- clear_skies-2.0.5/src/clearskies/configs/model_class_test.py +0 -39
- clear_skies-2.0.5/src/clearskies/configs/select_list_test.py +0 -39
- clear_skies-2.0.5/src/clearskies/configs/string_test.py +0 -45
- clear_skies-2.0.5/src/clearskies/configs/validators_test.py +0 -37
- clear_skies-2.0.5/src/clearskies/environment_test.py +0 -29
- clear_skies-2.0.5/src/clearskies/functional/string_test.py +0 -36
- clear_skies-2.0.5/src/clearskies/functional/validations_test.py +0 -21
- clear_skies-2.0.5/src/clearskies/integration_tests/__init__.py +0 -0
- clear_skies-2.0.5/src/clearskies/integration_tests/authentication/__init__.py +0 -0
- clear_skies-2.0.5/src/clearskies/integration_tests/authentication/secret_bearer_test.py +0 -143
- clear_skies-2.0.5/src/clearskies/integration_tests/backends/api_backend_test.py +0 -297
- clear_skies-2.0.5/src/clearskies/integration_tests/backends/cursor_backend_test.py +0 -50
- clear_skies-2.0.5/src/clearskies/integration_tests/backends/memory_backend_test.py +0 -85
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/__init__.py +0 -0
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/belongs_to_self_test.py +0 -41
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/belongs_to_test.py +0 -134
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/belongs_to_test_module/__init__.py +0 -2
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/belongs_to_test_module/category.py +0 -12
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/belongs_to_test_module/category_reference.py +0 -8
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/belongs_to_test_module/product.py +0 -13
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/belongs_to_test_module/product_reference.py +0 -8
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/category_tree_test.py +0 -58
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/column_test.py +0 -235
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/created_by_authorization_data_test.py +0 -37
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/created_by_header_test.py +0 -31
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/created_test.py +0 -30
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/date_test.py +0 -43
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/datetime_test.py +0 -43
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/email_test.py +0 -34
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/float_test.py +0 -32
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/has_many_test.py +0 -132
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/integer_test.py +0 -32
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/json_test.py +0 -30
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/many_to_many_ids_test.py +0 -71
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/many_to_many_ids_with_data_test.py +0 -74
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/phone_test.py +0 -40
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/select_test.py +0 -36
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/string_test.py +0 -37
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/timestamp_test.py +0 -44
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/updated_test.py +0 -33
- clear_skies-2.0.5/src/clearskies/integration_tests/columns/uuid_test.py +0 -30
- clear_skies-2.0.5/src/clearskies/integration_tests/di/__init__.py +0 -0
- clear_skies-2.0.5/src/clearskies/integration_tests/di/di_test.py +0 -224
- clear_skies-2.0.5/src/clearskies/integration_tests/di/my_module/__init__.py +0 -1
- clear_skies-2.0.5/src/clearskies/integration_tests/di/my_module/my_sub_module/__init__.py +0 -1
- clear_skies-2.0.5/src/clearskies/integration_tests/di/my_module/my_sub_module/my_class.py +0 -2
- clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/advanced_search_test.py +0 -101
- clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/callable_test.py +0 -95
- clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/create_test.py +0 -48
- clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/delete_test.py +0 -42
- clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/endpoint_group_test.py +0 -143
- clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/endpoint_test.py +0 -284
- clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/get_test.py +0 -86
- clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/health_check_test.py +0 -52
- clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/list_test.py +0 -101
- clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/restful_api_test.py +0 -84
- clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/simple_search_test.py +0 -77
- clear_skies-2.0.5/src/clearskies/integration_tests/endpoints/update_test.py +0 -56
- clear_skies-2.0.5/src/clearskies/integration_tests/model_test.py +0 -701
- clear_skies-2.0.5/src/clearskies/query/condition_test.py +0 -97
- clear_skies-2.0.5/src/clearskies/query/join_test.py +0 -50
- clear_skies-2.0.5/src/clearskies/security_headers/cache_control_test.py +0 -22
- clear_skies-2.0.5/src/clearskies/security_headers/cors_test.py +0 -27
- clear_skies-2.0.5/src/clearskies/security_headers/csp_test.py +0 -22
- clear_skies-2.0.5/src/clearskies/security_headers/hsts_test.py +0 -36
- clear_skies-2.0.5/src/clearskies/validators/after_column_test.py +0 -34
- clear_skies-2.0.5/src/clearskies/validators/before_column_test.py +0 -34
- clear_skies-2.0.5/src/clearskies/validators/in_the_future_at_least_test.py +0 -30
- clear_skies-2.0.5/src/clearskies/validators/in_the_future_at_most_test.py +0 -32
- clear_skies-2.0.5/src/clearskies/validators/in_the_past_at_least_test.py +0 -30
- clear_skies-2.0.5/src/clearskies/validators/in_the_past_at_most_test.py +0 -32
- clear_skies-2.0.5/src/clearskies/validators/maximum_length_test.py +0 -22
- clear_skies-2.0.5/src/clearskies/validators/maximum_value_test.py +0 -23
- clear_skies-2.0.5/src/clearskies/validators/minimum_length_test.py +0 -19
- clear_skies-2.0.5/src/clearskies/validators/minimum_value_test.py +0 -21
- clear_skies-2.0.5/src/clearskies/validators/required_test.py +0 -42
- clear_skies-2.0.5/src/clearskies/validators/unique_test.py +0 -40
- {clear_skies-2.0.5 → clear_skies-2.0.6}/.editorconfig +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/.github/workflows/run-tests.yml +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/.github/workflows/tests-matrix.yaml +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/.github/workflows/tests.yaml +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/.gitignore +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/.pre-commit-config.yaml +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/.python-version +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/.vscode/extensions.json +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/.vscode/settings.json +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/LICENSE +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/README.md +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/build.sh +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/cliff.toml +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/ruff.toml +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/action.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/authentication/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/authentication/authentication.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/authentication/authorization.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/authentication/authorization_pass_through.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/authentication/jwks.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/authentication/public.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/authentication/secret_bearer.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/oai3_json.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/oai3_schema_resolver.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/parameter.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/request.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/response.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/schema/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/schema/array.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/schema/default.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/schema/enum.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/schema/object.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/formats/oai3_json/test.json +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/py.typed +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/request/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/request/header.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/request/json_body.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/request/parameter.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/request/request.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/request/url_parameter.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/request/url_path.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/response/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/response/response.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/array.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/base64.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/boolean.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/date.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/datetime.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/double.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/enum.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/integer.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/long.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/number.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/object.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/password.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/schema.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/autodoc/schema/string.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/backends/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/backends/api_backend.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/backends/backend.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/backends/cursor_backend.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/backends/memory_backend.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/backends/secrets_backend.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/column.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/audit.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/belongs_to_id.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/belongs_to_model.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/belongs_to_self.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/boolean.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/category_tree.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/category_tree_ancestors.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/category_tree_children.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/category_tree_descendants.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/created.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/created_by_authorization_data.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/created_by_header.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/created_by_ip.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/created_by_routing_data.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/created_by_user_agent.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/date.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/datetime.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/email.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/float.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/has_many.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/has_many_self.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/has_one.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/integer.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/json.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/many_to_many_ids.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/many_to_many_ids_with_data.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/many_to_many_models.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/many_to_many_pivots.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/phone.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/select.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/string.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/timestamp.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/updated.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/columns/uuid.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/README.md +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/actions.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/any.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/any_dict.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/any_dict_or_callable.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/authentication.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/authorization.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/boolean.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/boolean_or_callable.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/callable_config.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/columns.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/conditions.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/config.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/datetime.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/datetime_or_callable.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/endpoint.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/endpoint_list.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/float.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/float_or_callable.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/integer.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/integer_or_callable.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/joins.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/list_any_dict.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/list_any_dict_or_callable.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/model_class.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/model_column.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/model_columns.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/model_destination_name.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/model_to_id_column.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/readable_model_column.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/readable_model_columns.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/schema.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/searchable_model_columns.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/security_headers.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/select.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/select_list.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/string.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/string_dict.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/string_list.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/string_list_or_callable.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/string_or_callable.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/timedelta.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/timezone.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/url.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/validators.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/writeable_model_column.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configs/writeable_model_columns.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/configurable.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/contexts/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/contexts/cli.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/contexts/context.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/contexts/wsgi.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/contexts/wsgi_ref.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/decorators.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/additional_config.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/additional_config_auto_import.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/di.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/inject/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/inject/by_class.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/inject/by_name.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/inject/di.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/inject/environment.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/inject/input_output.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/inject/now.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/inject/requests.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/inject/secrets.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/inject/utcnow.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/inject/uuid.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/injectable.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/injectable_properties.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/test_module/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/test_module/another_module/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/di/test_module/module_class.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/end.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoint.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoint_group.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/advanced_search.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/callable.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/create.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/delete.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/get.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/health_check.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/list.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/restful_api.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/schema.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/simple_search.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/endpoints/update.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/environment.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/exceptions/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/exceptions/authentication.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/exceptions/authorization.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/exceptions/client_error.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/exceptions/input_errors.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/exceptions/missing_dependency.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/exceptions/moved_permanently.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/exceptions/moved_temporarily.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/exceptions/not_found.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/functional/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/functional/routing.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/functional/string.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/functional/validations.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/input_outputs/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/input_outputs/cli.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/input_outputs/exceptions/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/input_outputs/exceptions/cli_input_error.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/input_outputs/exceptions/cli_not_found.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/input_outputs/headers.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/input_outputs/input_output.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/input_outputs/programmatic.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/input_outputs/py.typed +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/input_outputs/wsgi.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/model.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/py.typed +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/query/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/query/condition.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/query/join.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/query/query.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/query/sort.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/schema.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/secrets/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/secrets/additional_configs/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/secrets/additional_configs/mysql_connection_dynamic_producer.py +0 -0
- {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
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/secrets/akeyless.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/secrets/exceptions/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/secrets/exceptions/not_found.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/secrets/secrets.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/security_header.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/security_headers/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/security_headers/cache_control.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/security_headers/cors.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/security_headers/csp.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/security_headers/hsts.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/security_headers/x_content_type_options.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/security_headers/x_frame_options.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/test_base.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/typing.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validator.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/__init__.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/after_column.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/before_column.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/in_the_future.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/in_the_future_at_least.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/in_the_future_at_most.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/in_the_past.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/in_the_past_at_least.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/in_the_past_at_most.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/maximum_length.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/maximum_value.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/minimum_length.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/minimum_value.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/required.py +0 -0
- {clear_skies-2.0.5 → clear_skies-2.0.6}/src/clearskies/validators/timedelta.py +0 -0
- {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
|
-
|
|
138
|
-
|
|
139
|
-
|
|
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
|
-
-
|
|
16
|
+
- name: Checkout code
|
|
17
|
+
uses: actions/checkout@v4
|
|
16
18
|
with:
|
|
17
|
-
|
|
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
|
|
@@ -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.
|
|
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/
|
|
51
|
+
packages = ["src/clearskies"]
|
|
49
52
|
|
|
50
53
|
[tool.hatch.build]
|
|
51
54
|
exclude = [
|
|
52
|
-
"src/
|
|
53
|
-
"src/
|
|
54
|
-
"src/
|
|
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.
|
|
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("")
|
|
File without changes
|
|
File without changes
|