clear-skies 1.21.1__tar.gz → 1.21.2__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-1.21.1 → clear_skies-1.21.2}/PKG-INFO +1 -1
- {clear_skies-1.21.1 → clear_skies-1.21.2}/pyproject.toml +1 -1
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/category_tree.py +79 -1
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/datetime.py +1 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/di/standard_dependencies.py +2 -1
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/model.py +2 -1
- {clear_skies-1.21.1 → clear_skies-1.21.2}/LICENSE +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/README.md +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/application.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/authentication/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/authentication/auth0_jwks.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/authentication/auth_exception.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/authentication/authorization.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/authentication/jwks.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/authentication/jwks_jwcrypto.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/authentication/public.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/authentication/secret_bearer.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/formats/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/formats/oai3_json/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/formats/oai3_json/oai3_json.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/formats/oai3_json/oai3_schema_resolver.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/formats/oai3_json/parameter.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/formats/oai3_json/request.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/formats/oai3_json/response.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/formats/oai3_json/schema/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/formats/oai3_json/schema/array.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/formats/oai3_json/schema/default.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/formats/oai3_json/schema/enum.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/formats/oai3_json/schema/object.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/formats/oai3_json/test.json +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/request/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/request/header.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/request/json_body.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/request/request.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/request/url_parameter.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/request/url_path.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/response/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/response/response.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/schema/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/schema/array.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/schema/base64.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/schema/boolean.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/schema/date.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/schema/datetime.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/schema/double.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/schema/enum.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/schema/integer.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/schema/long.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/schema/number.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/schema/object.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/schema/password.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/schema/string.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/backends/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/backends/api_backend.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/backends/backend.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/backends/cursor_backend.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/backends/example_backend.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/backends/file_backend.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/backends/json_backend.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/backends/memory_backend.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/backends/restful_api_advanced_search_backend.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/backends/secrets_backend.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/binding_config.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/audit.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/belongs_to.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/boolean.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/column.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/created.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/created_by_authorization_data.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/created_by_header.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/created_by_ip.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/created_by_routing_data.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/created_by_user_agent.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/created_micro.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/datetime_micro.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/email.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/float.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/has_many.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/has_one.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/integer.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/json.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/many_to_many.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/many_to_many_with_data.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/phone.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/select.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/string.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/timestamp.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/updated.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/updated_micro.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/uuid.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/columns.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/condition_parser.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/contexts/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/contexts/bash.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/contexts/build_context.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/contexts/cli.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/contexts/context.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/contexts/convert_to_application.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/contexts/extract_handler.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/contexts/test.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/contexts/wsgi.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/decorators/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/decorators/auth0_jwks.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/decorators/authorization.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/decorators/binding_classes.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/decorators/binding_modules.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/decorators/bindings.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/decorators/create.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/decorators/delete.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/decorators/docs.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/decorators/get.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/decorators/jwks.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/decorators/merge.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/decorators/patch.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/decorators/post.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/decorators/public.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/decorators/response_headers.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/decorators/return_raw_response.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/decorators/schema.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/decorators/secret_bearer.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/decorators/security_headers.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/di/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/di/additional_config.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/di/additional_config_auto_import.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/di/di.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/di/test_module/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/di/test_module/another_module/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/di/test_module/module_class.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/environment.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/functional/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/functional/string.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/functional/validations.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/advanced_search.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/base.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/callable.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/create.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/crud_by_method.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/database_connector.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/delete.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/exceptions/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/exceptions/authentication.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/exceptions/authorization.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/exceptions/client_error.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/exceptions/input_error.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/exceptions/not_found.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/get.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/health_check.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/input_processing.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/list.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/mygrations.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/request_method_routing.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/restful_api.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/routing.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/schema_helper.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/simple_routing.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/simple_routing_route.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/simple_search.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/update.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/write.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_outputs/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_outputs/cli.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_outputs/exceptions/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_outputs/exceptions/cli_input_error.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_outputs/exceptions/cli_not_found.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_outputs/input_output.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_outputs/wsgi.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_requirements/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_requirements/after.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_requirements/before.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_requirements/in_the_future_at_least.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_requirements/in_the_future_at_most.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_requirements/in_the_past_at_least.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_requirements/in_the_past_at_most.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_requirements/maximum_length.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_requirements/maximum_value.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_requirements/minimum_length.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_requirements/minimum_value.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_requirements/required.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_requirements/requirement.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_requirements/time_delta.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_requirements/unique.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/mocks/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/mocks/input_output.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/mocks/models.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/models.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/secrets/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/secrets/additional_configs/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/secrets/additional_configs/mysql_connection_dynamic_producer.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/secrets/additional_configs/mysql_connection_dynamic_producer_via_ssh_cert_bastion.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/secrets/akeyless.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/secrets/exceptions/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/secrets/exceptions/not_found.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/secrets/secrets.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/security_headers/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/security_headers/base.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/security_headers/cache_control.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/security_headers/cors.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/security_headers/csp.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/security_headers/hsts.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/security_headers/x_content_type_options.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/security_headers/x_frame_options.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/tests/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/tests/simple_api/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/tests/simple_api/models/__init__.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/tests/simple_api/models/status.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/tests/simple_api/models/user.py +0 -0
- {clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/tests/simple_api/users_api.py +0 -0
|
@@ -119,6 +119,10 @@ class CategoryTree(BelongsTo):
|
|
|
119
119
|
"tree_level_column_name",
|
|
120
120
|
"max_iterations",
|
|
121
121
|
"parent_models_class",
|
|
122
|
+
"children_column_name",
|
|
123
|
+
"descendents_column_name",
|
|
124
|
+
"ancestors_column_name",
|
|
125
|
+
"load_relatives_strategy",
|
|
122
126
|
]
|
|
123
127
|
|
|
124
128
|
def __init__(self, di):
|
|
@@ -137,6 +141,11 @@ class CategoryTree(BelongsTo):
|
|
|
137
141
|
configuration["tree_models_class"],
|
|
138
142
|
config_name="tree_models_class",
|
|
139
143
|
)
|
|
144
|
+
load_relatives_strategy = configuration.get("load_relatives_strategy", None)
|
|
145
|
+
if load_relatives_strategy and load_relatives_strategy not in ["join", "where_in", "individual"]:
|
|
146
|
+
raise ValueError(
|
|
147
|
+
f"Configuration error for category_tree column '{self.name} in model class '{self.model_class.__name__}': load_relatives_strategy must be one of ['join', 'where_in', or 'individual']"
|
|
148
|
+
)
|
|
140
149
|
|
|
141
150
|
def _finalize_configuration(self, configuration):
|
|
142
151
|
return {
|
|
@@ -152,6 +161,10 @@ class CategoryTree(BelongsTo):
|
|
|
152
161
|
"tree_is_parent_column_name": configuration.get("tree_is_parent_column_name", "is_parent"),
|
|
153
162
|
"tree_level_column_name": configuration.get("tree_level_column_name", "level"),
|
|
154
163
|
"max_iterations": configuration.get("max_iterations", 100),
|
|
164
|
+
"children_column_name": configuration.get("children_column_name", "children"),
|
|
165
|
+
"descendents_column_name": configuration.get("descendents_column_name", "descendents"),
|
|
166
|
+
"ancestors_column_name": configuration.get("ancestors_column_name", "ancestors"),
|
|
167
|
+
"load_relatives_strategy": configuration.get("load_relatives_strategy", "join"),
|
|
155
168
|
},
|
|
156
169
|
}
|
|
157
170
|
|
|
@@ -167,7 +180,7 @@ class CategoryTree(BelongsTo):
|
|
|
167
180
|
return data
|
|
168
181
|
|
|
169
182
|
def force_tree_update(self, model):
|
|
170
|
-
self.update_tree_table(model, model.
|
|
183
|
+
self.update_tree_table(model, model.get(self.id_column_name), model.__getattr__(self.name))
|
|
171
184
|
|
|
172
185
|
def update_tree_table(self, model, child_id, direct_parent_id):
|
|
173
186
|
tree_models = self.tree_models
|
|
@@ -224,3 +237,68 @@ class CategoryTree(BelongsTo):
|
|
|
224
237
|
+ "You may have accidentally created a circular cateogry tree. If not, and your category tree "
|
|
225
238
|
+ "really _is_ that deep, then adjust the 'max_iterations' configuration for this column accordingly. "
|
|
226
239
|
)
|
|
240
|
+
|
|
241
|
+
def can_provide(self, column_name):
|
|
242
|
+
return column_name in [
|
|
243
|
+
self.config("model_column_name"),
|
|
244
|
+
self.config("children_column_name"),
|
|
245
|
+
self.config("descendents_column_name"),
|
|
246
|
+
self.config("ancestors_column_name"),
|
|
247
|
+
]
|
|
248
|
+
|
|
249
|
+
def provide(self, data, column_name):
|
|
250
|
+
if column_name == self.config("model_column_name"):
|
|
251
|
+
return super().provide(data, column_name)
|
|
252
|
+
|
|
253
|
+
if column_name == self.config("children_column_name"):
|
|
254
|
+
return self.relatives(data)
|
|
255
|
+
|
|
256
|
+
if column_name == self.config("descendents_column_name"):
|
|
257
|
+
return self.relatives(data, include_all=True)
|
|
258
|
+
|
|
259
|
+
if column_name == self.config("ancestors_column_name"):
|
|
260
|
+
return self.relatives(data, find_parents=True)
|
|
261
|
+
|
|
262
|
+
def relatives(self, data, include_all=False, find_parents=False):
|
|
263
|
+
id_column_name = self.model_class.id_column_name
|
|
264
|
+
model_id = data[self.model_class.id_column_name]
|
|
265
|
+
model_table_name = self.model_class.table_name()
|
|
266
|
+
tree_table_name = self.config("tree_models_class").table_name()
|
|
267
|
+
parent_id_column_name = self.config("tree_parent_id_column_name")
|
|
268
|
+
child_id_column_name = self.config("tree_child_id_column_name")
|
|
269
|
+
is_parent_column_name = self.config("is_parent_column_name")
|
|
270
|
+
level_column_name = self.config("tree_level_column_name")
|
|
271
|
+
|
|
272
|
+
if find_parents:
|
|
273
|
+
join_on = parent_id_column_name
|
|
274
|
+
search_on = child_id_column_name
|
|
275
|
+
else:
|
|
276
|
+
join_on = child_id_column_name
|
|
277
|
+
search_on = parent_id_column_name
|
|
278
|
+
|
|
279
|
+
# if we can join then use a join.
|
|
280
|
+
if self.config("load_relatives_strategy") == "join":
|
|
281
|
+
relatives = self.parent_models.join(
|
|
282
|
+
f"{tree_table_name} as tree on tree.{join_on}={model_table_name}.{id_column_name}"
|
|
283
|
+
)
|
|
284
|
+
relatives = relatives.where(f"tree.{search_on}={model_id}")
|
|
285
|
+
if not include_all:
|
|
286
|
+
relatives = relatives.where(f"tree.{is_parent_column_name}=1")
|
|
287
|
+
if find_parents:
|
|
288
|
+
relatives = relatives.sort_by(level_column_name, "asc")
|
|
289
|
+
return relatives
|
|
290
|
+
|
|
291
|
+
# joins only work for SQL-like backends. Otherwise, we have to pull out our list of ids
|
|
292
|
+
branches = self.tree_models.where(f"{search_on}={model_id}")
|
|
293
|
+
if not include_all:
|
|
294
|
+
branches = branches.where(f"tree.{is_parent_column_name}=1")
|
|
295
|
+
if find_parents:
|
|
296
|
+
branches = branches.sort_by(level_column_name, "asc")
|
|
297
|
+
ids = [str(branch.get(child_id_column_name)) for branch in branches]
|
|
298
|
+
|
|
299
|
+
# Can we search with a WHERE IN() clause? If the backend supports it, it is probably faster
|
|
300
|
+
if self.config("load_relatives_strategy") == "where_in":
|
|
301
|
+
return self.parent_models.where(f"{id_column_name} IN ('" + "','".join(ids) + "')")
|
|
302
|
+
|
|
303
|
+
# otherwise we have to load each model individually which is SLOW....
|
|
304
|
+
return [self.parent_models.find(f"{id_column_name}={id}") for id in ids]
|
|
@@ -10,6 +10,7 @@ try:
|
|
|
10
10
|
except ModuleNotFoundError:
|
|
11
11
|
from typing import Self
|
|
12
12
|
|
|
13
|
+
|
|
13
14
|
class Model(Models):
|
|
14
15
|
_configured_columns = None
|
|
15
16
|
_data = None
|
|
@@ -202,7 +203,7 @@ class Model(Models):
|
|
|
202
203
|
return data[key]
|
|
203
204
|
return self.__getattr__(key)
|
|
204
205
|
|
|
205
|
-
def was_changed(self: Self, key) -> bool:
|
|
206
|
+
def was_changed(self: Self, key) -> bool:
|
|
206
207
|
"""Returns True/False to denote if a column was changed in the last save"""
|
|
207
208
|
if self._previous_data is None:
|
|
208
209
|
raise ValueError("was_changed was called before a save was finished - you must save something first")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/formats/oai3_json/__init__.py
RENAMED
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/formats/oai3_json/oai3_json.py
RENAMED
|
File without changes
|
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/formats/oai3_json/parameter.py
RENAMED
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/formats/oai3_json/request.py
RENAMED
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/formats/oai3_json/response.py
RENAMED
|
File without changes
|
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/formats/oai3_json/schema/array.py
RENAMED
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/formats/oai3_json/schema/default.py
RENAMED
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/formats/oai3_json/schema/enum.py
RENAMED
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/formats/oai3_json/schema/object.py
RENAMED
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/autodoc/formats/oai3_json/test.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/created_by_routing_data.py
RENAMED
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/created_by_user_agent.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/column_types/many_to_many_with_data.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/di/additional_config_auto_import.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/di/test_module/another_module/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/exceptions/authentication.py
RENAMED
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/exceptions/authorization.py
RENAMED
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/handlers/exceptions/client_error.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_outputs/exceptions/__init__.py
RENAMED
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_outputs/exceptions/cli_input_error.py
RENAMED
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_outputs/exceptions/cli_not_found.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_requirements/in_the_future_at_most.py
RENAMED
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_requirements/in_the_past_at_least.py
RENAMED
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_requirements/in_the_past_at_most.py
RENAMED
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_requirements/maximum_length.py
RENAMED
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_requirements/maximum_value.py
RENAMED
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_requirements/minimum_length.py
RENAMED
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/input_requirements/minimum_value.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/secrets/additional_configs/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/security_headers/x_content_type_options.py
RENAMED
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/security_headers/x_frame_options.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clear_skies-1.21.1 → clear_skies-1.21.2}/src/clearskies/tests/simple_api/models/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|