clear-skies 1.22.10__py3-none-any.whl → 2.0.23__py3-none-any.whl
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.
- clear_skies-2.0.23.dist-info/METADATA +76 -0
- clear_skies-2.0.23.dist-info/RECORD +265 -0
- {clear_skies-1.22.10.dist-info → clear_skies-2.0.23.dist-info}/WHEEL +1 -1
- clearskies/__init__.py +37 -21
- clearskies/action.py +7 -0
- clearskies/authentication/__init__.py +8 -39
- clearskies/authentication/authentication.py +44 -0
- clearskies/authentication/authorization.py +14 -8
- clearskies/authentication/authorization_pass_through.py +14 -10
- clearskies/authentication/jwks.py +135 -58
- clearskies/authentication/public.py +3 -26
- clearskies/authentication/secret_bearer.py +515 -44
- clearskies/autodoc/formats/oai3_json/__init__.py +2 -2
- clearskies/autodoc/formats/oai3_json/oai3_json.py +11 -9
- clearskies/autodoc/formats/oai3_json/parameter.py +6 -3
- clearskies/autodoc/formats/oai3_json/request.py +7 -5
- clearskies/autodoc/formats/oai3_json/response.py +7 -4
- clearskies/autodoc/formats/oai3_json/schema/object.py +10 -1
- clearskies/autodoc/request/__init__.py +2 -0
- clearskies/autodoc/request/header.py +4 -6
- clearskies/autodoc/request/json_body.py +4 -6
- clearskies/autodoc/request/parameter.py +8 -0
- clearskies/autodoc/request/request.py +16 -4
- clearskies/autodoc/request/url_parameter.py +4 -6
- clearskies/autodoc/request/url_path.py +4 -6
- clearskies/autodoc/schema/__init__.py +4 -2
- clearskies/autodoc/schema/array.py +5 -6
- clearskies/autodoc/schema/boolean.py +4 -10
- clearskies/autodoc/schema/date.py +0 -3
- clearskies/autodoc/schema/datetime.py +1 -4
- clearskies/autodoc/schema/double.py +0 -3
- clearskies/autodoc/schema/enum.py +4 -2
- clearskies/autodoc/schema/integer.py +4 -9
- clearskies/autodoc/schema/long.py +0 -3
- clearskies/autodoc/schema/number.py +4 -9
- clearskies/autodoc/schema/object.py +5 -7
- clearskies/autodoc/schema/password.py +0 -3
- clearskies/autodoc/schema/schema.py +11 -0
- clearskies/autodoc/schema/string.py +4 -10
- clearskies/backends/__init__.py +55 -20
- clearskies/backends/api_backend.py +1118 -280
- clearskies/backends/backend.py +54 -85
- clearskies/backends/cursor_backend.py +246 -191
- clearskies/backends/memory_backend.py +514 -208
- clearskies/backends/secrets_backend.py +68 -31
- clearskies/column.py +1221 -0
- clearskies/columns/__init__.py +71 -0
- clearskies/columns/audit.py +306 -0
- clearskies/columns/belongs_to_id.py +478 -0
- clearskies/columns/belongs_to_model.py +129 -0
- clearskies/columns/belongs_to_self.py +109 -0
- clearskies/columns/boolean.py +110 -0
- clearskies/columns/category_tree.py +273 -0
- clearskies/columns/category_tree_ancestors.py +51 -0
- clearskies/columns/category_tree_children.py +126 -0
- clearskies/columns/category_tree_descendants.py +48 -0
- clearskies/columns/created.py +92 -0
- clearskies/columns/created_by_authorization_data.py +114 -0
- clearskies/columns/created_by_header.py +103 -0
- clearskies/columns/created_by_ip.py +90 -0
- clearskies/columns/created_by_routing_data.py +102 -0
- clearskies/columns/created_by_user_agent.py +89 -0
- clearskies/columns/date.py +232 -0
- clearskies/columns/datetime.py +284 -0
- clearskies/columns/email.py +78 -0
- clearskies/columns/float.py +149 -0
- clearskies/columns/has_many.py +529 -0
- clearskies/columns/has_many_self.py +62 -0
- clearskies/columns/has_one.py +21 -0
- clearskies/columns/integer.py +158 -0
- clearskies/columns/json.py +126 -0
- clearskies/columns/many_to_many_ids.py +335 -0
- clearskies/columns/many_to_many_ids_with_data.py +274 -0
- clearskies/columns/many_to_many_models.py +156 -0
- clearskies/columns/many_to_many_pivots.py +132 -0
- clearskies/columns/phone.py +162 -0
- clearskies/columns/select.py +95 -0
- clearskies/columns/string.py +102 -0
- clearskies/columns/timestamp.py +164 -0
- clearskies/columns/updated.py +107 -0
- clearskies/columns/uuid.py +83 -0
- clearskies/configs/README.md +105 -0
- clearskies/configs/__init__.py +170 -0
- clearskies/configs/actions.py +43 -0
- clearskies/configs/any.py +15 -0
- clearskies/configs/any_dict.py +24 -0
- clearskies/configs/any_dict_or_callable.py +25 -0
- clearskies/configs/authentication.py +23 -0
- clearskies/configs/authorization.py +23 -0
- clearskies/configs/boolean.py +18 -0
- clearskies/configs/boolean_or_callable.py +20 -0
- clearskies/configs/callable_config.py +20 -0
- clearskies/configs/columns.py +34 -0
- clearskies/configs/conditions.py +30 -0
- clearskies/configs/config.py +26 -0
- clearskies/configs/datetime.py +20 -0
- clearskies/configs/datetime_or_callable.py +21 -0
- clearskies/configs/email.py +10 -0
- clearskies/configs/email_list.py +17 -0
- clearskies/configs/email_list_or_callable.py +17 -0
- clearskies/configs/email_or_email_list_or_callable.py +59 -0
- clearskies/configs/endpoint.py +23 -0
- clearskies/configs/endpoint_list.py +29 -0
- clearskies/configs/float.py +18 -0
- clearskies/configs/float_or_callable.py +20 -0
- clearskies/configs/headers.py +28 -0
- clearskies/configs/integer.py +18 -0
- clearskies/configs/integer_or_callable.py +20 -0
- clearskies/configs/joins.py +30 -0
- clearskies/configs/list_any_dict.py +32 -0
- clearskies/configs/list_any_dict_or_callable.py +33 -0
- clearskies/configs/model_class.py +35 -0
- clearskies/configs/model_column.py +67 -0
- clearskies/configs/model_columns.py +58 -0
- clearskies/configs/model_destination_name.py +26 -0
- clearskies/configs/model_to_id_column.py +45 -0
- clearskies/configs/readable_model_column.py +11 -0
- clearskies/configs/readable_model_columns.py +11 -0
- clearskies/configs/schema.py +23 -0
- clearskies/configs/searchable_model_columns.py +11 -0
- clearskies/configs/security_headers.py +39 -0
- clearskies/configs/select.py +28 -0
- clearskies/configs/select_list.py +49 -0
- clearskies/configs/string.py +31 -0
- clearskies/configs/string_dict.py +34 -0
- clearskies/configs/string_list.py +47 -0
- clearskies/configs/string_list_or_callable.py +48 -0
- clearskies/configs/string_or_callable.py +18 -0
- clearskies/configs/timedelta.py +20 -0
- clearskies/configs/timezone.py +20 -0
- clearskies/configs/url.py +25 -0
- clearskies/configs/validators.py +45 -0
- clearskies/configs/writeable_model_column.py +11 -0
- clearskies/configs/writeable_model_columns.py +11 -0
- clearskies/configurable.py +78 -0
- clearskies/contexts/__init__.py +8 -8
- clearskies/contexts/cli.py +129 -43
- clearskies/contexts/context.py +93 -56
- clearskies/contexts/wsgi.py +79 -33
- clearskies/contexts/wsgi_ref.py +87 -0
- clearskies/cursors/__init__.py +7 -0
- clearskies/cursors/cursor.py +166 -0
- clearskies/cursors/from_environment/__init__.py +5 -0
- clearskies/cursors/from_environment/mysql.py +51 -0
- clearskies/cursors/from_environment/postgresql.py +49 -0
- clearskies/cursors/from_environment/sqlite.py +35 -0
- clearskies/cursors/mysql.py +61 -0
- clearskies/cursors/postgresql.py +61 -0
- clearskies/cursors/sqlite.py +62 -0
- clearskies/decorators.py +33 -0
- clearskies/decorators.pyi +10 -0
- clearskies/di/__init__.py +11 -7
- clearskies/di/additional_config.py +115 -4
- clearskies/di/additional_config_auto_import.py +12 -0
- clearskies/di/di.py +714 -125
- clearskies/di/inject/__init__.py +23 -0
- clearskies/di/inject/akeyless_sdk.py +16 -0
- clearskies/di/inject/by_class.py +24 -0
- clearskies/di/inject/by_name.py +22 -0
- clearskies/di/inject/di.py +16 -0
- clearskies/di/inject/environment.py +15 -0
- clearskies/di/inject/input_output.py +19 -0
- clearskies/di/inject/now.py +16 -0
- clearskies/di/inject/requests.py +16 -0
- clearskies/di/inject/secrets.py +15 -0
- clearskies/di/inject/utcnow.py +16 -0
- clearskies/di/inject/uuid.py +16 -0
- clearskies/di/injectable.py +32 -0
- clearskies/di/injectable_properties.py +131 -0
- clearskies/end.py +219 -0
- clearskies/endpoint.py +1303 -0
- clearskies/endpoint_group.py +333 -0
- clearskies/endpoints/__init__.py +25 -0
- clearskies/endpoints/advanced_search.py +519 -0
- clearskies/endpoints/callable.py +382 -0
- clearskies/endpoints/create.py +201 -0
- clearskies/endpoints/delete.py +133 -0
- clearskies/endpoints/get.py +267 -0
- clearskies/endpoints/health_check.py +181 -0
- clearskies/endpoints/list.py +567 -0
- clearskies/endpoints/restful_api.py +417 -0
- clearskies/endpoints/schema.py +185 -0
- clearskies/endpoints/simple_search.py +279 -0
- clearskies/endpoints/update.py +188 -0
- clearskies/environment.py +7 -3
- clearskies/exceptions/__init__.py +19 -0
- clearskies/{handlers/exceptions/input_error.py → exceptions/input_errors.py} +1 -1
- clearskies/exceptions/missing_dependency.py +2 -0
- clearskies/exceptions/moved_permanently.py +3 -0
- clearskies/exceptions/moved_temporarily.py +3 -0
- clearskies/functional/__init__.py +2 -2
- clearskies/functional/json.py +47 -0
- clearskies/functional/routing.py +92 -0
- clearskies/functional/string.py +19 -11
- clearskies/functional/validations.py +61 -9
- clearskies/input_outputs/__init__.py +9 -7
- clearskies/input_outputs/cli.py +135 -160
- clearskies/input_outputs/exceptions/__init__.py +6 -1
- clearskies/input_outputs/headers.py +54 -0
- clearskies/input_outputs/input_output.py +77 -123
- clearskies/input_outputs/programmatic.py +62 -0
- clearskies/input_outputs/wsgi.py +36 -48
- clearskies/model.py +1874 -193
- clearskies/query/__init__.py +12 -0
- clearskies/query/condition.py +228 -0
- clearskies/query/join.py +136 -0
- clearskies/query/query.py +193 -0
- clearskies/query/sort.py +27 -0
- clearskies/schema.py +82 -0
- clearskies/secrets/__init__.py +4 -31
- clearskies/secrets/additional_configs/mysql_connection_dynamic_producer.py +15 -4
- clearskies/secrets/additional_configs/mysql_connection_dynamic_producer_via_ssh_cert_bastion.py +11 -5
- clearskies/secrets/akeyless.py +421 -155
- clearskies/secrets/exceptions/__init__.py +7 -1
- clearskies/secrets/exceptions/not_found_error.py +2 -0
- clearskies/secrets/exceptions/permissions_error.py +2 -0
- clearskies/secrets/secrets.py +12 -11
- clearskies/security_header.py +17 -0
- clearskies/security_headers/__init__.py +8 -8
- clearskies/security_headers/cache_control.py +47 -109
- clearskies/security_headers/cors.py +38 -92
- clearskies/security_headers/csp.py +76 -150
- clearskies/security_headers/hsts.py +14 -15
- clearskies/typing.py +11 -0
- clearskies/validator.py +36 -0
- clearskies/validators/__init__.py +33 -0
- clearskies/validators/after_column.py +61 -0
- clearskies/validators/before_column.py +15 -0
- clearskies/validators/in_the_future.py +29 -0
- clearskies/validators/in_the_future_at_least.py +13 -0
- clearskies/validators/in_the_future_at_most.py +12 -0
- clearskies/validators/in_the_past.py +29 -0
- clearskies/validators/in_the_past_at_least.py +12 -0
- clearskies/validators/in_the_past_at_most.py +12 -0
- clearskies/validators/maximum_length.py +25 -0
- clearskies/validators/maximum_value.py +28 -0
- clearskies/validators/minimum_length.py +25 -0
- clearskies/validators/minimum_value.py +28 -0
- clearskies/{input_requirements → validators}/required.py +18 -9
- clearskies/validators/timedelta.py +58 -0
- clearskies/validators/unique.py +28 -0
- clear_skies-1.22.10.dist-info/METADATA +0 -47
- clear_skies-1.22.10.dist-info/RECORD +0 -213
- clearskies/application.py +0 -29
- clearskies/authentication/auth0_jwks.py +0 -118
- clearskies/authentication/auth_exception.py +0 -2
- clearskies/authentication/jwks_jwcrypto.py +0 -51
- clearskies/backends/api_get_only_backend.py +0 -48
- clearskies/backends/example_backend.py +0 -43
- clearskies/backends/file_backend.py +0 -48
- clearskies/backends/json_backend.py +0 -7
- clearskies/backends/restful_api_advanced_search_backend.py +0 -103
- clearskies/binding_config.py +0 -16
- clearskies/column_types/__init__.py +0 -203
- clearskies/column_types/audit.py +0 -249
- clearskies/column_types/belongs_to.py +0 -271
- clearskies/column_types/boolean.py +0 -60
- clearskies/column_types/category_tree.py +0 -304
- clearskies/column_types/column.py +0 -373
- clearskies/column_types/created.py +0 -26
- clearskies/column_types/created_by_authorization_data.py +0 -26
- clearskies/column_types/created_by_header.py +0 -24
- clearskies/column_types/created_by_ip.py +0 -17
- clearskies/column_types/created_by_routing_data.py +0 -25
- clearskies/column_types/created_by_user_agent.py +0 -17
- clearskies/column_types/created_micro.py +0 -26
- clearskies/column_types/datetime.py +0 -109
- clearskies/column_types/datetime_micro.py +0 -13
- clearskies/column_types/email.py +0 -18
- clearskies/column_types/float.py +0 -43
- clearskies/column_types/has_many.py +0 -179
- clearskies/column_types/has_one.py +0 -58
- clearskies/column_types/integer.py +0 -41
- clearskies/column_types/json.py +0 -25
- clearskies/column_types/many_to_many.py +0 -278
- clearskies/column_types/many_to_many_with_data.py +0 -162
- clearskies/column_types/phone.py +0 -48
- clearskies/column_types/select.py +0 -11
- clearskies/column_types/string.py +0 -24
- clearskies/column_types/timestamp.py +0 -73
- clearskies/column_types/updated.py +0 -26
- clearskies/column_types/updated_micro.py +0 -26
- clearskies/column_types/uuid.py +0 -25
- clearskies/columns.py +0 -123
- clearskies/condition_parser.py +0 -172
- clearskies/contexts/build_context.py +0 -54
- clearskies/contexts/convert_to_application.py +0 -190
- clearskies/contexts/extract_handler.py +0 -37
- clearskies/contexts/test.py +0 -94
- clearskies/decorators/__init__.py +0 -39
- clearskies/decorators/auth0_jwks.py +0 -22
- clearskies/decorators/authorization.py +0 -10
- clearskies/decorators/binding_classes.py +0 -9
- clearskies/decorators/binding_modules.py +0 -9
- clearskies/decorators/bindings.py +0 -9
- clearskies/decorators/create.py +0 -10
- clearskies/decorators/delete.py +0 -10
- clearskies/decorators/docs.py +0 -14
- clearskies/decorators/get.py +0 -10
- clearskies/decorators/jwks.py +0 -26
- clearskies/decorators/merge.py +0 -124
- clearskies/decorators/patch.py +0 -10
- clearskies/decorators/post.py +0 -10
- clearskies/decorators/public.py +0 -11
- clearskies/decorators/response_headers.py +0 -10
- clearskies/decorators/return_raw_response.py +0 -9
- clearskies/decorators/schema.py +0 -10
- clearskies/decorators/secret_bearer.py +0 -24
- clearskies/decorators/security_headers.py +0 -10
- clearskies/di/standard_dependencies.py +0 -151
- clearskies/di/test_module/__init__.py +0 -6
- clearskies/di/test_module/another_module/__init__.py +0 -2
- clearskies/di/test_module/module_class.py +0 -5
- clearskies/handlers/__init__.py +0 -41
- clearskies/handlers/advanced_search.py +0 -271
- clearskies/handlers/base.py +0 -479
- clearskies/handlers/callable.py +0 -191
- clearskies/handlers/create.py +0 -35
- clearskies/handlers/crud_by_method.py +0 -18
- clearskies/handlers/database_connector.py +0 -32
- clearskies/handlers/delete.py +0 -61
- clearskies/handlers/exceptions/__init__.py +0 -5
- clearskies/handlers/exceptions/not_found.py +0 -3
- clearskies/handlers/get.py +0 -156
- clearskies/handlers/health_check.py +0 -59
- clearskies/handlers/input_processing.py +0 -79
- clearskies/handlers/list.py +0 -530
- clearskies/handlers/mygrations.py +0 -82
- clearskies/handlers/request_method_routing.py +0 -47
- clearskies/handlers/restful_api.py +0 -218
- clearskies/handlers/routing.py +0 -62
- clearskies/handlers/schema_helper.py +0 -128
- clearskies/handlers/simple_routing.py +0 -206
- clearskies/handlers/simple_routing_route.py +0 -192
- clearskies/handlers/simple_search.py +0 -136
- clearskies/handlers/update.py +0 -96
- clearskies/handlers/write.py +0 -193
- clearskies/input_requirements/__init__.py +0 -78
- clearskies/input_requirements/after.py +0 -36
- clearskies/input_requirements/before.py +0 -36
- clearskies/input_requirements/in_the_future_at_least.py +0 -19
- clearskies/input_requirements/in_the_future_at_most.py +0 -19
- clearskies/input_requirements/in_the_past_at_least.py +0 -19
- clearskies/input_requirements/in_the_past_at_most.py +0 -19
- clearskies/input_requirements/maximum_length.py +0 -19
- clearskies/input_requirements/maximum_value.py +0 -19
- clearskies/input_requirements/minimum_length.py +0 -22
- clearskies/input_requirements/minimum_value.py +0 -19
- clearskies/input_requirements/requirement.py +0 -25
- clearskies/input_requirements/time_delta.py +0 -38
- clearskies/input_requirements/unique.py +0 -18
- clearskies/mocks/__init__.py +0 -7
- clearskies/mocks/input_output.py +0 -124
- clearskies/mocks/models.py +0 -142
- clearskies/models.py +0 -350
- clearskies/security_headers/base.py +0 -12
- clearskies/tests/simple_api/models/__init__.py +0 -2
- clearskies/tests/simple_api/models/status.py +0 -23
- clearskies/tests/simple_api/models/user.py +0 -21
- clearskies/tests/simple_api/users_api.py +0 -64
- {clear_skies-1.22.10.dist-info → clear_skies-2.0.23.dist-info/licenses}/LICENSE +0 -0
- /clearskies/{contexts/bash.py → autodoc/py.typed} +0 -0
- /clearskies/{handlers/exceptions → exceptions}/authentication.py +0 -0
- /clearskies/{handlers/exceptions → exceptions}/authorization.py +0 -0
- /clearskies/{handlers/exceptions → exceptions}/client_error.py +0 -0
- /clearskies/{secrets/exceptions → exceptions}/not_found.py +0 -0
- /clearskies/{tests/__init__.py → input_outputs/py.typed} +0 -0
- /clearskies/{tests/simple_api/__init__.py → py.typed} +0 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: clear-skies
|
|
3
|
+
Version: 2.0.23
|
|
4
|
+
Summary: A framework for building backends in the cloud
|
|
5
|
+
Project-URL: Documentation, https://clearskies.io/
|
|
6
|
+
Project-URL: Repository, https://github.com/clearskies-py/clearskies
|
|
7
|
+
Project-URL: Issues, https://github.com/clearskies-py/clearskies/issues
|
|
8
|
+
Project-URL: Changelog, https://github.com/clearskies-py/clearskies/blob/main/CHANGELOG.md
|
|
9
|
+
Author-email: Conor Mancone <cmancone@gmail.com>
|
|
10
|
+
License-Expression: MIT
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Requires-Python: <4.0,>=3.11
|
|
17
|
+
Requires-Dist: dateparser<2.0.0,>=1.1.8
|
|
18
|
+
Requires-Dist: requests<3.0.0,>=2.31.0
|
|
19
|
+
Requires-Dist: typing-extensions<5.0.0,>=4.12.0; python_version >= '3.10' and python_version < '3.11'
|
|
20
|
+
Requires-Dist: wrapt<2.0.0,>=1.16.0
|
|
21
|
+
Provides-Extra: jwcrypto
|
|
22
|
+
Requires-Dist: jwcrypto<2.0.0,>=1.5.6; extra == 'jwcrypto'
|
|
23
|
+
Provides-Extra: mysql
|
|
24
|
+
Requires-Dist: pymysql<2.0.0,>=1.1.0; extra == 'mysql'
|
|
25
|
+
Provides-Extra: pgsql
|
|
26
|
+
Requires-Dist: psycopg[binary]<4.0.0,>=3.1.10; extra == 'pgsql'
|
|
27
|
+
Provides-Extra: secrets
|
|
28
|
+
Requires-Dist: akeyless-cloud-id<0.3.0,>=0.2.3; extra == 'secrets'
|
|
29
|
+
Requires-Dist: akeyless<5.0.0,>=4.0.0; extra == 'secrets'
|
|
30
|
+
Description-Content-Type: text/markdown
|
|
31
|
+
|
|
32
|
+
# clearskies
|
|
33
|
+
|
|
34
|
+
clearskies is a very opinionated Python framework intended for developing microservices in the cloud via declarative programming principles. It is mainly intended for backend services and so is designed for RESTful API endpoints, queue listeners, scheduled tasks, and the like.
|
|
35
|
+
|
|
36
|
+
## Installation
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
uv add clear-skies
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
or
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
pip install clear-skies
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
or
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
pipenv install clear-skies
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
or
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
poetry add clear-skies
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Development
|
|
61
|
+
|
|
62
|
+
To set up your development environment with pre-commit hooks:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Install uv if not already installed
|
|
66
|
+
pip install uv
|
|
67
|
+
|
|
68
|
+
# Create a virtual environment and install all dependencies (including dev)
|
|
69
|
+
uv sync
|
|
70
|
+
|
|
71
|
+
# Install pre-commit hooks
|
|
72
|
+
uv run pre-commit install
|
|
73
|
+
|
|
74
|
+
# Optionally, run pre-commit on all files
|
|
75
|
+
uv run pre-commit run --all-files
|
|
76
|
+
```
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
clearskies/__init__.py,sha256=2Fty-EaQrM0LPcy5rgC3-nEe4M-nrBSs3lvuqd8fH8M,1119
|
|
2
|
+
clearskies/action.py,sha256=x_T05XaC0m-BYPZWaSR94XbE7T5ZK1vRtSfEszfZuDg,121
|
|
3
|
+
clearskies/column.py,sha256=3zAc5pc8zo4ws0mEU5GfbuvljkpAJJlAxmAf8lBKAVA,51299
|
|
4
|
+
clearskies/configurable.py,sha256=gfX9o5qgMqc8lSzrdcUyR3b6zdOvg9ccYBQ0VvZjXkk,3085
|
|
5
|
+
clearskies/decorators.py,sha256=lcXJC4xI-hRyKDSH8yklcWjOrIL9k2Qks1xP2lmyDm0,1024
|
|
6
|
+
clearskies/decorators.pyi,sha256=qSRzPJYYoV9trEsh_V1BxP2HdMz0G2gOs4FV8f5hvyU,388
|
|
7
|
+
clearskies/end.py,sha256=mEPdBB4lh9zmAKTbsffCh-mQMZGIVohriWjm-952EzA,10629
|
|
8
|
+
clearskies/endpoint.py,sha256=3XDa-B5KwDCaoYdq6Ps9XseiZ6Zr0ntcna5nKMeFhns,48246
|
|
9
|
+
clearskies/endpoint_group.py,sha256=qsxQpt1i6IRvQqhQkt_udoVj0TMdoIOccvKyEBaeaEg,12343
|
|
10
|
+
clearskies/environment.py,sha256=BbNgQH3uuCTxoHeLB9O1_HsPTaJL5aiXqY6hZ9aj-jo,3739
|
|
11
|
+
clearskies/model.py,sha256=AbDlf4ab_kOgw5kwcCVP50uQN4A1PkoCHs4nmXAh_KQ,78496
|
|
12
|
+
clearskies/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
|
+
clearskies/schema.py,sha256=9S0RuFBiydsDy4kATy2BBsXJ9aWHILW0ja_q9F4kxb0,2872
|
|
14
|
+
clearskies/security_header.py,sha256=_RsQEJahVTIB8m8IIgQgYk8NhX_6QJqRJpQDh2NETNo,467
|
|
15
|
+
clearskies/typing.py,sha256=iSgBpnBS3ZregLLFBw-89lmxsLiFpSBa1qZx9mdZEME,368
|
|
16
|
+
clearskies/validator.py,sha256=Cx3E1627c45C2XT1s_3WuV1rugJVnYMZJp0ZG0Ny0X0,1264
|
|
17
|
+
clearskies/authentication/__init__.py,sha256=MxXNCWhKbha7TPu_MAyssfTdOCEDSNBwzshEHx8gfHo,525
|
|
18
|
+
clearskies/authentication/authentication.py,sha256=B1I8udvtGfEdiUrqUM8V3YT_Cxema9eDOSlnXjgC35s,1230
|
|
19
|
+
clearskies/authentication/authorization.py,sha256=87eRORyR7RpyB5YnLm6zqn4JQjTUIA4psfTjTE-oSSg,805
|
|
20
|
+
clearskies/authentication/authorization_pass_through.py,sha256=EEQ-JJbBVLAoRefrNFAWBicoJO5k3B4gZQc2rQAwIBk,556
|
|
21
|
+
clearskies/authentication/jwks.py,sha256=slAx3xbTDiIWx0Cp7fn4z7_iDfGMWZZ-YAHHX5Imae0,4852
|
|
22
|
+
clearskies/authentication/public.py,sha256=GSNl4X4fnB25BZoXSo8nqL0iZCa9rzfvPfIsJ2Y34B4,84
|
|
23
|
+
clearskies/authentication/secret_bearer.py,sha256=OVLi9kJNIGF1Cyl4nOxDxuuctZCVBP2L-bT2Og8qCHE,17377
|
|
24
|
+
clearskies/autodoc/__init__.py,sha256=JRUAmd0he8iGlgiZvxewLMIXJqnOFEdvlaKAtHpC2lo,124
|
|
25
|
+
clearskies/autodoc/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
26
|
+
clearskies/autodoc/formats/__init__.py,sha256=3rhoLKmEwT6PljaHvOl9qdeMIXyD7PQBZbqZKy5Mb5I,56
|
|
27
|
+
clearskies/autodoc/formats/oai3_json/__init__.py,sha256=tbbOZWkX9ZWj4BM3arHrlmqy4ZrScmIv2bazadbQt1w,142
|
|
28
|
+
clearskies/autodoc/formats/oai3_json/oai3_json.py,sha256=-LViw86zpPAgAEnC42KuobccvFATRg-j8ZEd8BiTYFA,2964
|
|
29
|
+
clearskies/autodoc/formats/oai3_json/oai3_schema_resolver.py,sha256=5gifJ36dyWEeYtfjHVbbTpPBo0BB1Gqxt0Y3sxTiHJA,509
|
|
30
|
+
clearskies/autodoc/formats/oai3_json/parameter.py,sha256=h9bHXxqJhUc7NRQCZF6RnIPuaY9BA6V_xzYNnsplXlc,1110
|
|
31
|
+
clearskies/autodoc/formats/oai3_json/request.py,sha256=RM6PgdZNHVP6iH9oeOfSPwyp-v0k3MhUEOT8SLxORd0,2932
|
|
32
|
+
clearskies/autodoc/formats/oai3_json/response.py,sha256=ou06oFQtaAR70qIvIoAe4QzohWiACzhCwlW73oM5Dvg,778
|
|
33
|
+
clearskies/autodoc/formats/oai3_json/test.json,sha256=DdMvSUbaTEAyWtX_RDxEFR82kK9pCCTeFUghQwHjB3s,59848
|
|
34
|
+
clearskies/autodoc/formats/oai3_json/schema/__init__.py,sha256=VJiDueMdGfJoVQVt9SXIE_-uPghSXtCzpTXuqPaaiRw,173
|
|
35
|
+
clearskies/autodoc/formats/oai3_json/schema/array.py,sha256=1VOrMC_i1JSu1Gw2cqQ7uVDhSk-xNm25io7oBQL9PZM,310
|
|
36
|
+
clearskies/autodoc/formats/oai3_json/schema/default.py,sha256=BhwQebdIaK6rrATu6yZxPU3bqVmd4LFKTTlydJVl644,484
|
|
37
|
+
clearskies/autodoc/formats/oai3_json/schema/enum.py,sha256=7qkpYWXPwbkgkoHPAowMIHJeGNb81qQmTmIIdc5yJbA,265
|
|
38
|
+
clearskies/autodoc/formats/oai3_json/schema/object.py,sha256=HkLg3A6cTwV9h3QiXPpoVG7bH8U-aKFzp7nyGClGBgQ,1073
|
|
39
|
+
clearskies/autodoc/request/__init__.py,sha256=-L1hZ70QKn0yzXJtpQS741lbcYXA4i0xQnkebKDjzsA,303
|
|
40
|
+
clearskies/autodoc/request/header.py,sha256=TCeRyFFqcgNN8o9vEmc0JTxs7vRlMHnlhs7zsYfShRM,104
|
|
41
|
+
clearskies/autodoc/request/json_body.py,sha256=qURg3_4fQA9ZUVeR_T0g-RZ8seFIrI0ME-s4PzosfGE,108
|
|
42
|
+
clearskies/autodoc/request/parameter.py,sha256=Z7l7gdsOw-SSLYfL8kQmLnslg89JUQObppxatJiI2sA,233
|
|
43
|
+
clearskies/autodoc/request/request.py,sha256=k9876Pu27H3K-AXlmhOGPrc1W2L972_ugEExWiqW4aU,1814
|
|
44
|
+
clearskies/autodoc/request/url_parameter.py,sha256=mwM9Fe16h_8tdPXvXokjzOH1I2Txs-GFjK1a9FQND2w,117
|
|
45
|
+
clearskies/autodoc/request/url_path.py,sha256=WmZDltORzCir4Ei6_XqoBlh7UBpZZmvZIDfaQezGtmc,107
|
|
46
|
+
clearskies/autodoc/response/__init__.py,sha256=a0vlujvsyLkq1zleRTqcGULoaXTJLkjyTKCUWdsq8Uc,62
|
|
47
|
+
clearskies/autodoc/response/response.py,sha256=I3-wA1gd5XKYey_7gqBoWA-II4k6URop48NO3ckQoh4,266
|
|
48
|
+
clearskies/autodoc/schema/__init__.py,sha256=PF4jywX7Bk6rXaK0LxTQnxk1FLg2O3_Gdm3_XpN61nI,586
|
|
49
|
+
clearskies/autodoc/schema/array.py,sha256=hBLtH5v-o7-KtiFscoa-KAxW4Fcqv_5h542eS7yOo0o,262
|
|
50
|
+
clearskies/autodoc/schema/base64.py,sha256=IPISPbUVf02N_fqcxRMsaiBvFTXAznngZxlWSSyHh-w,190
|
|
51
|
+
clearskies/autodoc/schema/boolean.py,sha256=e6ofkyPcKZllMvSL96M3whjA-tWeT0m5AVotl61wIG8,74
|
|
52
|
+
clearskies/autodoc/schema/date.py,sha256=5IiLM2La1br1E3url6_6k54PYyw_3SyAvvKb1kNReSA,70
|
|
53
|
+
clearskies/autodoc/schema/datetime.py,sha256=WoIPfpVWvr4znQpkqTUT_R1jdnulEvXfOAI3al-AzFA,79
|
|
54
|
+
clearskies/autodoc/schema/double.py,sha256=Wyv9aiPRneeoYWHoYlvkkLUo4WaLnQdvg6ePkXL6k5I,74
|
|
55
|
+
clearskies/autodoc/schema/enum.py,sha256=YP6hPYXTlHWEIPyczPKtimm9luvTcLTT6YrKdGTwty0,413
|
|
56
|
+
clearskies/autodoc/schema/integer.py,sha256=AVqcNyJemzA0Cgg8OGPntDIGONcvOaPWeBVkyQ0ENcY,96
|
|
57
|
+
clearskies/autodoc/schema/long.py,sha256=NhRYUQhr1PZR2gI945RXzu9SfV_hQnTzlxrYCAZKOEo,74
|
|
58
|
+
clearskies/autodoc/schema/number.py,sha256=z6q7XPKW_rLZSv4nYMOcKYQJgXZlmBq9-zsK3kGmI5M,94
|
|
59
|
+
clearskies/autodoc/schema/object.py,sha256=sjW3A1yIGCseRcHHmVbkxNtsg6EPivVMSmmRyZjO_1w,346
|
|
60
|
+
clearskies/autodoc/schema/password.py,sha256=hSXPvHoXEbG-KHQFxXubEarxSMg9Cki_n8tw_yvEFp4,78
|
|
61
|
+
clearskies/autodoc/schema/schema.py,sha256=zsJFtEyUCGGokYsnpcIfRVbeEwVTOWqE6VjTYyv8JZM,242
|
|
62
|
+
clearskies/autodoc/schema/string.py,sha256=GXRI-aU8PYmjfnhmfaOe4vq7JASb-aB4SiFeG-EmJY0,60
|
|
63
|
+
clearskies/backends/__init__.py,sha256=krBB3gHLP-lVYkm5ksdK7teEtouAHhL3EC__WGVnF4A,3157
|
|
64
|
+
clearskies/backends/api_backend.py,sha256=JcNs73VaDFU-DLN06Zrq7o8RVtxlnpbOkvsFlufvCiw,54826
|
|
65
|
+
clearskies/backends/backend.py,sha256=XzFBsUP4lwX2c2_zeK4Hch1MlT3YJS1ffxolUHoJXqA,5797
|
|
66
|
+
clearskies/backends/cursor_backend.py,sha256=Ed_-Lcfrz93STg66DTcVzjqK7Nq1YaIru8BX7-mGWWY,14654
|
|
67
|
+
clearskies/backends/memory_backend.py,sha256=H_2fib9EFdXsg3ZMMpC20DMHnrnYDbPgZnmiarbOhiM,33963
|
|
68
|
+
clearskies/backends/secrets_backend.py,sha256=f_C5oAAr3tgM4UqioYPWcASPe9DhySC_uLWYGgMEPpY,3987
|
|
69
|
+
clearskies/columns/__init__.py,sha256=a__-1hv-aMV3RU0Sd-BEkfItSJaG51EF2VeRQoTdka8,1990
|
|
70
|
+
clearskies/columns/audit.py,sha256=Q10aK0CI3OiV8EZar5oMLWrxqHDxltG3GXeNyWFb_yw,10811
|
|
71
|
+
clearskies/columns/belongs_to_id.py,sha256=Ga3IpWlMy2_m8e5OK_iortNjHdMbF1RQF2tglWAzBVc,17575
|
|
72
|
+
clearskies/columns/belongs_to_model.py,sha256=6DonRb1JSAlCjHnaSnZ92K9r0WrNNWhUIH_mN1tcRCE,5708
|
|
73
|
+
clearskies/columns/belongs_to_self.py,sha256=cmgjxq4SmokGO2UbE0VlcFRXack9KjPLzyE9L3fNang,3725
|
|
74
|
+
clearskies/columns/boolean.py,sha256=pdkO7dxqIYCHX95C_yGo5vyvH_D0fO8zs0XgRN50zMQ,3713
|
|
75
|
+
clearskies/columns/category_tree.py,sha256=hqMlYQjVRlsU0PsC_M3_WWKkkzqw8wM5Xo-D4Mp9tIc,10967
|
|
76
|
+
clearskies/columns/category_tree_ancestors.py,sha256=FRFAMD3E6GzOzzLkY-IhWBdiYSpHHnthF5kX8V3iPr8,1380
|
|
77
|
+
clearskies/columns/category_tree_children.py,sha256=oC_vvOKd9DXeIDCL1P5EDpYB-q7mspd7AkfJWcJISVg,5226
|
|
78
|
+
clearskies/columns/category_tree_descendants.py,sha256=Fm1XfQadk0SxeWOWuLWpEL9mk0Wqf373O0o-UxgdDdg,1228
|
|
79
|
+
clearskies/columns/created.py,sha256=qA415Co9YVLgXpZuzfUj77mVDwZNZ1HTV9CyeE9Zybw,2706
|
|
80
|
+
clearskies/columns/created_by_authorization_data.py,sha256=X_0M42X7U71GqIKm-AHN5rez4lYuHYgC_wfv5a_x8BI,4673
|
|
81
|
+
clearskies/columns/created_by_header.py,sha256=oMc1cSbjEhX3j6PKsv1d_vLG-LadcnPa-9gxZHv97xQ,3609
|
|
82
|
+
clearskies/columns/created_by_ip.py,sha256=O9N3bYN6KwF5yRD31Kd3jmurJ0M3fuc2davwaw189V0,2672
|
|
83
|
+
clearskies/columns/created_by_routing_data.py,sha256=VaeBNo4m610d0KufVHEBpRChw4W-Wx0ya8MPK9QpLn8,3630
|
|
84
|
+
clearskies/columns/created_by_user_agent.py,sha256=ZXFCEedMEgzND6OWs3K1LSeMyh7jNxMo3wfy2JgfIU4,2741
|
|
85
|
+
clearskies/columns/date.py,sha256=RDl1jWnm1JnydXM3bVHPx-waix5TlU-A6BYbuR1pi5c,8727
|
|
86
|
+
clearskies/columns/datetime.py,sha256=JGLq6VHY3DJw2US75weCNjGu-Mps3XqVQKn4ohplqcE,10728
|
|
87
|
+
clearskies/columns/email.py,sha256=JV98NrYh212hZM-9p3XulC1FPGcgE0NB7oncYEoFj8A,1912
|
|
88
|
+
clearskies/columns/float.py,sha256=k7_rltAcUB8rJ_dccdB6J0zRJ-9ZTNIbImo1cDetRe4,4401
|
|
89
|
+
clearskies/columns/has_many.py,sha256=ayHVWNGVswBVMO1z3wJ8tRgr_D0hs-dcbHLoXEqTEsE,20170
|
|
90
|
+
clearskies/columns/has_many_self.py,sha256=UeuQcvzT6eYzuQ3Xd7vZdgRllrxoVS9WEv7C3YD2sPs,2407
|
|
91
|
+
clearskies/columns/has_one.py,sha256=cZgxikZLiRT9o902umfyzxYngsf9QJDjxcgLC--RTWw,612
|
|
92
|
+
clearskies/columns/integer.py,sha256=IGdJwPRWnQY_xUBajq7yekwPeBce8T2seKGJ5klmSjQ,4525
|
|
93
|
+
clearskies/columns/json.py,sha256=PFCuNbg32xF8L86VfpTmeTk44yzY5N3huoHUNjj1gy4,3557
|
|
94
|
+
clearskies/columns/many_to_many_ids.py,sha256=d8exu7LxR7OBtE7FeUOhGQSHpQw8lFkLovke_JzU3qI,14072
|
|
95
|
+
clearskies/columns/many_to_many_ids_with_data.py,sha256=GUafSHqjQ7V_HgsmzLSutZJuUAj4vVkJp_CvV7szYyk,11930
|
|
96
|
+
clearskies/columns/many_to_many_models.py,sha256=_DGAd2Kfbc-45m06srHCl9BWTun9YgdowDlsmOw-fMo,7319
|
|
97
|
+
clearskies/columns/many_to_many_pivots.py,sha256=x2LYOTxMPcyd0GhCdmHpMQfMCPQ7emKhzwmdtAMxAxw,5652
|
|
98
|
+
clearskies/columns/phone.py,sha256=AVNeNXm_A_CjD4W-QeJtsKHMIlMQc_DbpKFDxJKw9H4,5182
|
|
99
|
+
clearskies/columns/select.py,sha256=Huef3sp9JP2DRzXgNBurZfY4lsKn0RU4WmAj689HlWw,2714
|
|
100
|
+
clearskies/columns/string.py,sha256=Vyl1eb6RjW8q0a4AMqHI01vBLao9f7fkowNUumNoPqU,2594
|
|
101
|
+
clearskies/columns/timestamp.py,sha256=nIEbvg1YqKPjtEeFyYRnPPPSYB_lYIIUUm8zNoE8dE8,5810
|
|
102
|
+
clearskies/columns/updated.py,sha256=qE9CGwTwURGp9hr4zQAW8inpp-Xz2leWsIiHHcG1Ao4,3324
|
|
103
|
+
clearskies/columns/uuid.py,sha256=QE1UKHA9zt7bYd59rYRmzIHSonq9-sZeQbAIQtoJC54,2265
|
|
104
|
+
clearskies/configs/README.md,sha256=4-r2FvkrBTrKkcKgJ5O3Qj1RZ7nnkknenKze4XYlQDs,4827
|
|
105
|
+
clearskies/configs/__init__.py,sha256=DwpoecIXXFzQMHCi38pohYHSbw7KIb6z0hSkus2HKGg,5385
|
|
106
|
+
clearskies/configs/actions.py,sha256=5OwrokU8uTSSQ_6SvL94SOP5JVkvRRFGAXNcCdMt8aQ,1388
|
|
107
|
+
clearskies/configs/any.py,sha256=QSLOO955Lbg8NqYeyxdQGXTTyfFc5P036LORUa7avHc,388
|
|
108
|
+
clearskies/configs/any_dict.py,sha256=LECTIcCF22JXbAaZdWSmKh9UShRuRt8PydNCuj05ijI,907
|
|
109
|
+
clearskies/configs/any_dict_or_callable.py,sha256=5tfX4TQJhz3k8HY1uglLZD7CoRZnnM6aiFVEpdnCH54,1087
|
|
110
|
+
clearskies/configs/authentication.py,sha256=9XZClfYcECi5dzt1BvDof34tW6IotN252bcxlc_u2fc,842
|
|
111
|
+
clearskies/configs/authorization.py,sha256=Pa6wCyMitpKv2Nde69tMB5sJsxeCI2nVSdTuwF6R9pQ,828
|
|
112
|
+
clearskies/configs/boolean.py,sha256=Yj6fEKo85wQkalg7oHimn1ZU3lJGxCmKeFV1mvdXqIc,624
|
|
113
|
+
clearskies/configs/boolean_or_callable.py,sha256=vVyB1ES8IW_nX5ZzwumQy2EM7LctQ9M_8IB5BOnmNEU,745
|
|
114
|
+
clearskies/configs/callable_config.py,sha256=nEZyHVUkrIysB21iiHJLwznbfU5bZGKCGioZ-5BOLfU,708
|
|
115
|
+
clearskies/configs/columns.py,sha256=WhdpPUiwVqwBO2XCDDiMym2nWr_1-L1JoICyob4T6Wo,1258
|
|
116
|
+
clearskies/configs/conditions.py,sha256=a09bVac4-10ZtKPQGSu_e9VnHnwITwy_7_T4NekXpgs,1008
|
|
117
|
+
clearskies/configs/config.py,sha256=2qsF3ZBc8tsTXDgNLL7vT01kjWanbJH3oXO9R2S6GnU,909
|
|
118
|
+
clearskies/configs/datetime.py,sha256=QJxqRyFkb0YByHmaH_Rd_geUiyvBpk5xdBdRDj28278,689
|
|
119
|
+
clearskies/configs/datetime_or_callable.py,sha256=hp6ay-958DWoPy8Ryf1VS4R5NPKoF9LceiUhSB7I_wg,835
|
|
120
|
+
clearskies/configs/email.py,sha256=BbXGvZnO9wwT8LHexAq0ibwDNLVvv_8yUJEOThzJVE4,317
|
|
121
|
+
clearskies/configs/email_list.py,sha256=cTgdQTz4HYkqbdTEHPy8LcLjPGqFWY5TOIH8cHbfXXI,582
|
|
122
|
+
clearskies/configs/email_list_or_callable.py,sha256=iApQZzHEy6Pn5XiZzRn2gbHkRipIdLVqXzmwkjiMdmI,650
|
|
123
|
+
clearskies/configs/email_or_email_list_or_callable.py,sha256=tFdAsI1sTDMOheb3h8nQhIVxnl9xzZPwZtKjYEHjkKM,2470
|
|
124
|
+
clearskies/configs/endpoint.py,sha256=NEDthtdPzejAot7yzUjC01PvQJR9BIyk5YnWXCi1w9I,759
|
|
125
|
+
clearskies/configs/endpoint_list.py,sha256=HS1IO2HX8Y0W5ZZU7_Yk_6p5a8mo93an5Q2KAkOl9ZU,1202
|
|
126
|
+
clearskies/configs/float.py,sha256=7HwDMf-3VfrZxTmXwpnwDgXyzujUBpz1xPi1StdjB1Q,621
|
|
127
|
+
clearskies/configs/float_or_callable.py,sha256=9IiylL4Gg9_7HJOrYxbUPuLGE03TwKsAMsxfB7Lh2yY,744
|
|
128
|
+
clearskies/configs/headers.py,sha256=MY_oYm4tI5_9h635E8Yo_hj2id5IqfztqtwRZVdYaYo,976
|
|
129
|
+
clearskies/configs/integer.py,sha256=lw05RhD8ZkHO_tYJLtCUHZ_Ucz2Mf7C0Z5wVOsMqgq0,620
|
|
130
|
+
clearskies/configs/integer_or_callable.py,sha256=acCUP2ZSfSMPyID2LzIOQ-dlgARpxEktgr7KFWMtGbk,739
|
|
131
|
+
clearskies/configs/joins.py,sha256=i1QmxFwkpL-pnzVPh3mrHpwrvzsjt9nH5pMSj4J1TT4,944
|
|
132
|
+
clearskies/configs/list_any_dict.py,sha256=SRTrQdi3VcrjApkr0gI1M8GnAFSWO_ifmUQKWqnEzxU,1363
|
|
133
|
+
clearskies/configs/list_any_dict_or_callable.py,sha256=_dRzjrh5LljTuMVEUGSPhhxLU3OF6CFiHHIai8BRdsU,1581
|
|
134
|
+
clearskies/configs/model_class.py,sha256=ks0hnB2mZFHjhR3-x51d8IJSLVBclNjD_GhBcNfIxZE,1170
|
|
135
|
+
clearskies/configs/model_column.py,sha256=qLwTFdU3nP1LH3MG-wUo_aSTR-NKolsYTfjH2DOUUi4,2620
|
|
136
|
+
clearskies/configs/model_columns.py,sha256=P1BZ8GSlQUXizVkfzxrN4Sglx5QCoS6UXwgXsoBU-4c,2503
|
|
137
|
+
clearskies/configs/model_destination_name.py,sha256=g9K6ywOf31NKCo1zZ4kHuWaJr1dIDiBzdnVW6Eugv7I,978
|
|
138
|
+
clearskies/configs/model_to_id_column.py,sha256=0nssvknsv8t59uBMjOH0mUa9fxvcMHHgz4G_UZyeLpg,1579
|
|
139
|
+
clearskies/configs/readable_model_column.py,sha256=_iCjLa45qKPAR8nCa8lvjhms4QGAhYWhJxK2Om2p2CA,352
|
|
140
|
+
clearskies/configs/readable_model_columns.py,sha256=slyq-nvQSu4zIKUouejopoee7GIp2DRdX6Jf1ZJCq54,356
|
|
141
|
+
clearskies/configs/schema.py,sha256=W7xK5EOvZbbi2H5CgT4iifefrR2-XJXBNNx4f8t7j7o,766
|
|
142
|
+
clearskies/configs/searchable_model_columns.py,sha256=PVSe9J6cGyWRCAFwqstVIVTEGTwMDPGi-Nwo5zmkm8w,362
|
|
143
|
+
clearskies/configs/security_headers.py,sha256=wNtoUsghhec-NNZl9dSIRxTTApYw2vukbslYI-YY968,1403
|
|
144
|
+
clearskies/configs/select.py,sha256=TaiCbNGaSsLc6lJ_0_67PXgYDXhoDwd_T_KygKSPB-0,1057
|
|
145
|
+
clearskies/configs/select_list.py,sha256=ctqJW523C7UEhjahn_sWL1nlK-4OZrP01n_y1PV770s,1925
|
|
146
|
+
clearskies/configs/string.py,sha256=T65R8zvftpn-SZDxjS4ZqStBp1LWYwK9KkqH7WMK19o,1117
|
|
147
|
+
clearskies/configs/string_dict.py,sha256=vE1Q9HImvu5erMvCFnU73M4SUAhL6nnYr3-szp-axRg,1392
|
|
148
|
+
clearskies/configs/string_list.py,sha256=qJQFn0QxVfs3WeMfKTK40GQV-zeKQSJ-wvnhAjj8uqY,1760
|
|
149
|
+
clearskies/configs/string_list_or_callable.py,sha256=dOMwWAkDrQf2we3Sn7GkNBqxhvEXqtQIOoIib52YIZg,2020
|
|
150
|
+
clearskies/configs/string_or_callable.py,sha256=2Bg05AYN6j3v4ttFOmD-EBGfYpok67yiuFXnTTUhhNo,702
|
|
151
|
+
clearskies/configs/timedelta.py,sha256=Seuu9PexoWPqayybBjHlsDlx_EEe50BTfGOGKKecONc,703
|
|
152
|
+
clearskies/configs/timezone.py,sha256=JL6bjrCS4XdJzrRdhO5kZrMIhvxfNxsvvQ7EQrT0DOo,719
|
|
153
|
+
clearskies/configs/url.py,sha256=dVxvDfBHhVHMYcldz1jKbKvB83C4Ze4O_sEKOXXRAWU,811
|
|
154
|
+
clearskies/configs/validators.py,sha256=aAvf5dgncR8OP7_M7QUNhsHau4wAdPiXw9wNARRAYNY,1346
|
|
155
|
+
clearskies/configs/writeable_model_column.py,sha256=22pMoOAwYjvhHBcFrBb6ImtuoahbDKd5jZrNsbykrw4,355
|
|
156
|
+
clearskies/configs/writeable_model_columns.py,sha256=vQFh5w6ToC8SDi_GaEvy33csp2CTFIroAfOLigHjFKo,359
|
|
157
|
+
clearskies/contexts/__init__.py,sha256=f7XVUq2UKlDH6fjmcUWk6lbe9p_OaGpZ5ZjM6CuwTGQ,247
|
|
158
|
+
clearskies/contexts/cli.py,sha256=cuGWoyRhHlO_Ba6Dozg3sGob1VZoI4TBFOLu-2Udabk,2838
|
|
159
|
+
clearskies/contexts/context.py,sha256=RFIJbpP32iv0NuvepCNldrFRYMWTbGssM_nduBDJLh8,3640
|
|
160
|
+
clearskies/contexts/wsgi.py,sha256=gS6eJxtDsae2sFNP3v7lhFqK5KfVTHjs9uGYqKS63Mw,3131
|
|
161
|
+
clearskies/contexts/wsgi_ref.py,sha256=aFJ40hqAwvYcftXESMvJz5W58c2qWK3BUYeksEMi5KU,2770
|
|
162
|
+
clearskies/cursors/__init__.py,sha256=IfW_8r2XbZlkXUP5D_syOFhKCv3BHWDf3E-DfjViV8g,309
|
|
163
|
+
clearskies/cursors/cursor.py,sha256=Dobj7iAvAS67b0O7VPgBkMZD3eObDOW-JBoxgxDYhmA,5335
|
|
164
|
+
clearskies/cursors/mysql.py,sha256=_2BPaNTdGon98DEv6FtauF8ACgkZeBWHxFj2ul-VwXs,1970
|
|
165
|
+
clearskies/cursors/postgresql.py,sha256=aDi2v7xNdiZU9on4hDd-Isf8EY1boQghZMtDAICIYFg,1968
|
|
166
|
+
clearskies/cursors/sqlite.py,sha256=_8n2bTnOeZa3StztjkbM9sj1PV4QLCHfAoXDBwMZYV0,2204
|
|
167
|
+
clearskies/cursors/from_environment/__init__.py,sha256=5OdhiiN2SMLCCktvKJPK1-qzxQ-io3SDUDaHXCa75VM,237
|
|
168
|
+
clearskies/cursors/from_environment/mysql.py,sha256=W1xFq1csfo8ooPMeN0Gcs3dVJOziKfTaDyFOXmpRoEs,2465
|
|
169
|
+
clearskies/cursors/from_environment/postgresql.py,sha256=EQ_0U9LLnma11isoq2YR_tueLI7Vl7DzZdG_H52uei0,2330
|
|
170
|
+
clearskies/cursors/from_environment/sqlite.py,sha256=WJAx_wHMciEfBgT1SEW8cNay8hA-TXAe6o6S5nVTKVU,1400
|
|
171
|
+
clearskies/di/__init__.py,sha256=Ab8GNv9ZksnCABq8n2gCcyLEAXD-5-kX4O8PweTJIFs,474
|
|
172
|
+
clearskies/di/additional_config.py,sha256=65INxw8aqTZQsyaKPj-aQmd6FBe4_4DwibXGgWYBy14,5139
|
|
173
|
+
clearskies/di/additional_config_auto_import.py,sha256=XYw0Kcnp6hp-ee-c0YjiATwJvRb2E82xk9PuoX9dGRY,758
|
|
174
|
+
clearskies/di/di.py,sha256=Pwy6QFVWs2-08NwBMsoOYB94oVUa__h9z0h1jT2aSdE,44387
|
|
175
|
+
clearskies/di/injectable.py,sha256=sdab7Z5ex4dN8M_KKqvfTSbwNPJC5W2DIjMFZC75gcM,1206
|
|
176
|
+
clearskies/di/injectable_properties.py,sha256=yJP0J7l7tjG2soyXtrfDgktE7M8tQHaP-55Cmtq0b7M,6466
|
|
177
|
+
clearskies/di/inject/__init__.py,sha256=plEkWId-VyhvqX5KM2HhdCqi7_ZJzPmFz69cPAo812Y,643
|
|
178
|
+
clearskies/di/inject/akeyless_sdk.py,sha256=To_rhvQJuBA6SjmxRtvIVOaXreWIwwhO7hm0ELq_nCI,456
|
|
179
|
+
clearskies/di/inject/by_class.py,sha256=IbT9jCmz0OwRZXiXH_aSW99w5PIVjA0CShxZ9L-NMdw,871
|
|
180
|
+
clearskies/di/inject/by_name.py,sha256=bA38VfESRJBG_r2rlxFIZgxdxMpaMFbaQBCB4EYMJUw,715
|
|
181
|
+
clearskies/di/inject/di.py,sha256=LUxV6-jHEqUVhv-vNjoZZ_xOg7fS5hXG1opO9XbwRuc,350
|
|
182
|
+
clearskies/di/inject/environment.py,sha256=PinnXjG72gUNwI2cZVYlJuXAGbcmR8AJLwcHhbjnb-k,508
|
|
183
|
+
clearskies/di/inject/input_output.py,sha256=xduONbW64AutfHo3In-C2Ga735IRvj_oO9_qw3aohBc,539
|
|
184
|
+
clearskies/di/inject/now.py,sha256=9cl_WqE83z1XWPXOIC-9xMVWLMlVaP4dSnfQlO_RugE,434
|
|
185
|
+
clearskies/di/inject/requests.py,sha256=rGWB5PWJLwM-yu6Wdry7vORj9y7W6N2hcDvtooIhsNY,442
|
|
186
|
+
clearskies/di/inject/secrets.py,sha256=yMrQ_Zrma3uoTc9HiG5bmsf-lxbcBvhys6s_5PgWfGg,484
|
|
187
|
+
clearskies/di/inject/utcnow.py,sha256=QgRz0gYJIKVPXGfKeThz6EmLQHCM7eCZSMu4F0Qb0MM,440
|
|
188
|
+
clearskies/di/inject/uuid.py,sha256=9pG5Fao1RC3lVEx-DLrfZD7IaikOKoTj0Wv2W_pK8v4,447
|
|
189
|
+
clearskies/endpoints/__init__.py,sha256=payWNEivwmxsT-pWqNkzHisSbyNjB7oq7_I5QIQL_XA,750
|
|
190
|
+
clearskies/endpoints/advanced_search.py,sha256=FXbY1-VBf9qtsYAvXaqxLpR1FNUFhfB5EhhIx6fVDHk,21397
|
|
191
|
+
clearskies/endpoints/callable.py,sha256=8fUNR19Vo-OehZCJ8IaxNaAAgfKg2MMXzXdv5XKfqOw,13735
|
|
192
|
+
clearskies/endpoints/create.py,sha256=lrzd2iDZMn5sSOl4WXPlUJMnM5VlZrWVpK7IF-oDqOk,8904
|
|
193
|
+
clearskies/endpoints/delete.py,sha256=VXaq9o-fetBpQwP-xJANLv-_dGAGpwpR6qKRLtMn3yM,5081
|
|
194
|
+
clearskies/endpoints/get.py,sha256=DkhnSyb0jg_ppKMEtobayOndOtU6ktNYCJbQgrvIR4Q,9986
|
|
195
|
+
clearskies/endpoints/health_check.py,sha256=d4qL6dWGNySkZUiBgxuHAQQyUYJcPC7vygERK8jho-U,5421
|
|
196
|
+
clearskies/endpoints/list.py,sha256=nsCnCKGIb9z5jdUs1ALlSTxbkGVlIlZ5n9yk2-lT3dc,25443
|
|
197
|
+
clearskies/endpoints/restful_api.py,sha256=OnsYbCepxPdf8JIvzbslXOaS7-nLfjwv1C0sazr996E,15981
|
|
198
|
+
clearskies/endpoints/schema.py,sha256=7VoRNHnHEAkVPAGCaOVTlTfodt2V5tgGEc4XF28Dd38,7188
|
|
199
|
+
clearskies/endpoints/simple_search.py,sha256=zDXXgLxrn3g9YvQMOveCXWtWOI-wylCewYhBo7hknjc,9473
|
|
200
|
+
clearskies/endpoints/update.py,sha256=4Im2uL25hc_zFn49OhZ3HXLlxOLJPidgoQ4GfR0QCMY,7704
|
|
201
|
+
clearskies/exceptions/__init__.py,sha256=eFCYGp2Pk21kKibGJvJfh2tcn_oxm4wCkR-SbWUp_EI,691
|
|
202
|
+
clearskies/exceptions/authentication.py,sha256=VlNS0Aq2_6LbG0jiE8jULpS54jNW8a8px0gPrK3EZCc,42
|
|
203
|
+
clearskies/exceptions/authorization.py,sha256=14JuU5zLEf2sv82VNxsJt7dGSwfP-t3Pvf_6QZuacfA,41
|
|
204
|
+
clearskies/exceptions/client_error.py,sha256=o1OGnjlXT5zZ1Vb2LTRPYIio0YAnXPpXDGuqSLQP9_Y,39
|
|
205
|
+
clearskies/exceptions/input_errors.py,sha256=cTEFhWKb6zGZ0NCE8s3eyjB2vZpeUVuBaFPg25ThAn0,137
|
|
206
|
+
clearskies/exceptions/missing_dependency.py,sha256=mdzD35at7qM2ymht5vZYgt136Pse4ySr_DyVKcr-L2w,45
|
|
207
|
+
clearskies/exceptions/moved_permanently.py,sha256=fcgU_VBtAe8ZnbyNoNpXDcTQ8UtsjdoYg4Z3Ry2gXmc,110
|
|
208
|
+
clearskies/exceptions/moved_temporarily.py,sha256=Pt3muYHASvgOC50wPmoul9hUfy3Ud_NPSGFxshNWbIk,110
|
|
209
|
+
clearskies/exceptions/not_found.py,sha256=_lZwovDrd18dUHDop5pF4mhexBPNr126xF2gOLA2-EA,36
|
|
210
|
+
clearskies/functional/__init__.py,sha256=yXnbX-pjW6MOaBTjIzogvSJZ6O9dbUAWOalhu0WSDiQ,106
|
|
211
|
+
clearskies/functional/json.py,sha256=gKyLl_DNfSv1XddTQH6HtdOjqrhUXaRs_uImTh0Lei0,1594
|
|
212
|
+
clearskies/functional/routing.py,sha256=tfIvP_Y29GTGr91_1ec3LSQFoTRwpkqU4BYHXPnBaXA,3685
|
|
213
|
+
clearskies/functional/string.py,sha256=ZnkOjx8nxqZq2TV0CIb-Kz4onGoyekTX_WkLJM6XTmM,3311
|
|
214
|
+
clearskies/functional/validations.py,sha256=cPYOTwWomlQrPvqPP_Jdlds7zZ5H9GABCP5pnGzC9T4,2821
|
|
215
|
+
clearskies/input_outputs/__init__.py,sha256=9qeKJULw3MQ3zqkgBZice5d7qqRgsP3y-wkhWO2Y9vM,362
|
|
216
|
+
clearskies/input_outputs/cli.py,sha256=t7uWqLi6VI3i_zuyoKLdIq3vUwr19lQZoJmuAxVEvgg,5741
|
|
217
|
+
clearskies/input_outputs/headers.py,sha256=AnyqI64kploPX7qiBfQCD9w8b2FYWVIuwaXVafbpIiM,2085
|
|
218
|
+
clearskies/input_outputs/input_output.py,sha256=YdRjLbzJfvHC3lL4HE2rioQooH2Mp6OoiWfNk904fJY,5229
|
|
219
|
+
clearskies/input_outputs/programmatic.py,sha256=OCRq0M42cKZKgk4YAfJyTWo3T4jNRmnGmVr7zCTovpg,1658
|
|
220
|
+
clearskies/input_outputs/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
221
|
+
clearskies/input_outputs/wsgi.py,sha256=qqU_3KeVt5oeZvqygQ2lSxkcmTCsGX7z0R8Zx1DVhag,2783
|
|
222
|
+
clearskies/input_outputs/exceptions/__init__.py,sha256=ONAtr46SecnF96TJkjWWJfVfSXWbJrOaAnkN-f6fKs4,137
|
|
223
|
+
clearskies/input_outputs/exceptions/cli_input_error.py,sha256=kOFU8aLTLmeTL_AKDshxMu8_ufildg6p8ndhE1xHfb0,41
|
|
224
|
+
clearskies/input_outputs/exceptions/cli_not_found.py,sha256=JBBuZA9ZwdkPhd3a0qaGgEPQrxh1fehy4R3ZaV2gWXU,39
|
|
225
|
+
clearskies/query/__init__.py,sha256=ISF80_cG3rd574sRTdKKPxAdlSjtQh_ClXKKs_MSSSo,277
|
|
226
|
+
clearskies/query/condition.py,sha256=5N9RKO3ZS2WpmhpOwemckqict_xzyLrCLM0iHPHaNCQ,8887
|
|
227
|
+
clearskies/query/join.py,sha256=4lrDUQzck7klKY_VYkc4SVK95SVwyy3SVTvasnsAEyc,4713
|
|
228
|
+
clearskies/query/query.py,sha256=0XR3fNhOpDNJY0US2oseAS3p3Y0jxxVs86P6vWEvUcA,6063
|
|
229
|
+
clearskies/query/sort.py,sha256=c-EtIkjg3kLjwSTdXD7sfyx-mNUhAepUV-2izprh3iY,754
|
|
230
|
+
clearskies/secrets/__init__.py,sha256=G-A8YhCMlS_OdboSeKzCZp6iwfqwU4BPEnB5HvD88wY,142
|
|
231
|
+
clearskies/secrets/akeyless.py,sha256=iWsjn4-vuaZZyXsz-r-PqtTJfD6r9hd8uava-UVOdFQ,19399
|
|
232
|
+
clearskies/secrets/secrets.py,sha256=z9ouvwTwdyyOFmaCCWMRR6T9capRWFHswz563OA-JzE,1566
|
|
233
|
+
clearskies/secrets/additional_configs/__init__.py,sha256=cFCrbtKF5nuR061S2y1iKZp349x-y8Srdwe3VZbfSFU,1119
|
|
234
|
+
clearskies/secrets/additional_configs/mysql_connection_dynamic_producer.py,sha256=CnIiXLVQdUnUey3dbCTXuNNP7Mmw1gjjNjZiBtfgGto,2757
|
|
235
|
+
clearskies/secrets/additional_configs/mysql_connection_dynamic_producer_via_ssh_cert_bastion.py,sha256=N8ruxrTNhvYlp3cYXq6V78KPPr4n40LM7QoXHvD8IZg,6235
|
|
236
|
+
clearskies/secrets/exceptions/__init__.py,sha256=HtcwEuKzu3tRLq3FeXUN0UhaEGqukL5vntuBbX47DzM,209
|
|
237
|
+
clearskies/secrets/exceptions/not_found_error.py,sha256=9NT1g4Q94PRteYl9coiLVbqbHTlkrd-C-KQKG5clz9Q,41
|
|
238
|
+
clearskies/secrets/exceptions/permissions_error.py,sha256=6oxKMDLZLmoZZFB9PMZxWQgsaQXoX2V6qWn-LAckHt0,44
|
|
239
|
+
clearskies/security_headers/__init__.py,sha256=JUpc4Y8dNBinDQAkP7OOABR7N787-lRR23boSWmY6Us,285
|
|
240
|
+
clearskies/security_headers/cache_control.py,sha256=gD1070vxwDJXQi8R3qIIR6hsOpVaaEV3-I52Up1DfM4,2143
|
|
241
|
+
clearskies/security_headers/cors.py,sha256=RqqakKH13JXCp0ybkf7YFGEKDR5Xg7a1lfk47AAI7CU,1778
|
|
242
|
+
clearskies/security_headers/csp.py,sha256=hms81Jw9VWzDRWdk5P7o3oq7LOOElpuGwhnIpwfPxpE,2747
|
|
243
|
+
clearskies/security_headers/hsts.py,sha256=BeNrxxxrIWNxbF2Rb1fmOgmbF3rp1i5ve7iXh3Qr7q4,723
|
|
244
|
+
clearskies/security_headers/x_content_type_options.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
245
|
+
clearskies/security_headers/x_frame_options.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
246
|
+
clearskies/validators/__init__.py,sha256=v7TK6PlSjJxIuhx_aCoocBUCF-8DxNWWpYmoR7uOe6I,1247
|
|
247
|
+
clearskies/validators/after_column.py,sha256=GqZTdwNlkkLYD5_UJExih5aOksMBKJ4Trvr56PhBPsk,2309
|
|
248
|
+
clearskies/validators/before_column.py,sha256=jv5sUCeTwkkn-d1AFGaJccZdthc0o6rQASBT_vLHZbE,564
|
|
249
|
+
clearskies/validators/in_the_future.py,sha256=xx2Du7iTsXWth5KWdyjnYb7iOYpFjjPxSZ1p69Ay54A,901
|
|
250
|
+
clearskies/validators/in_the_future_at_least.py,sha256=pUCOBVZxPSFwwvXJdo_1GicZNPqlB__ftyyEW9QcQaQ,443
|
|
251
|
+
clearskies/validators/in_the_future_at_most.py,sha256=TgFfqhLsnrQXcdFKdfkaNWnPdj8tHr-Q_94SzFVWcoc,397
|
|
252
|
+
clearskies/validators/in_the_past.py,sha256=8eb79Q9feHL5rLsQdoOYIEsHegUiXI4zkH5Sl84G2o8,897
|
|
253
|
+
clearskies/validators/in_the_past_at_least.py,sha256=FT8rfs2-5Sd933Uql6-pwFRvvcPPXWq8hpobtkGr2z0,395
|
|
254
|
+
clearskies/validators/in_the_past_at_most.py,sha256=AFJoIlA3xeoJtWKh-2-PG6A97_FMHwt4Yk3G9TRNLzA,393
|
|
255
|
+
clearskies/validators/maximum_length.py,sha256=VxKvonpF58ng5icGt2d2BC2dWjXtNfnynjr95LZVYHg,843
|
|
256
|
+
clearskies/validators/maximum_value.py,sha256=icdUN1AbT5c5SXpxDRks3954GRIUqu0FdpT6TeZFT2Q,855
|
|
257
|
+
clearskies/validators/minimum_length.py,sha256=2ukRKH35gdnjz9VezclIFCf3JtbN7iCbLSjlPNdaOyY,844
|
|
258
|
+
clearskies/validators/minimum_value.py,sha256=ZyG2S_-4lbbMbf7PUemEyAT-r4-gjJMUdEWccMam9H0,856
|
|
259
|
+
clearskies/validators/required.py,sha256=GWxyexwj-K6DunZWNEnZxW6tQGAFd4oOCvQrW1s1K9k,1308
|
|
260
|
+
clearskies/validators/timedelta.py,sha256=DJ0pTm-SSUtjZ7phGoD6vjb086vXPzvLLijkU-jQlOs,1892
|
|
261
|
+
clearskies/validators/unique.py,sha256=X7qGv_BfskNJWnYCt6vDHbvpBiHym58yLjXk5ZnhAlg,975
|
|
262
|
+
clear_skies-2.0.23.dist-info/METADATA,sha256=ZytssfcXlXn3qt6TT8aGxAOPXIi7GRpByFxtowAPwHQ,2200
|
|
263
|
+
clear_skies-2.0.23.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
264
|
+
clear_skies-2.0.23.dist-info/licenses/LICENSE,sha256=3Ehd0g3YOpCj8sqj0Xjq5qbOtjjgk9qzhhD9YjRQgOA,1053
|
|
265
|
+
clear_skies-2.0.23.dist-info/RECORD,,
|
clearskies/__init__.py
CHANGED
|
@@ -1,45 +1,61 @@
|
|
|
1
|
-
from .columns import Columns
|
|
2
1
|
from . import (
|
|
3
2
|
authentication,
|
|
4
3
|
autodoc,
|
|
5
4
|
backends,
|
|
6
|
-
|
|
5
|
+
columns,
|
|
6
|
+
configs,
|
|
7
7
|
contexts,
|
|
8
|
+
cursors,
|
|
8
9
|
decorators,
|
|
9
10
|
di,
|
|
11
|
+
endpoints,
|
|
12
|
+
exceptions,
|
|
10
13
|
functional,
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
mocks,
|
|
14
|
+
input_outputs,
|
|
15
|
+
query,
|
|
14
16
|
secrets,
|
|
15
17
|
security_headers,
|
|
16
18
|
)
|
|
17
|
-
from .
|
|
19
|
+
from .action import Action
|
|
20
|
+
from .column import Column
|
|
21
|
+
from .configurable import Configurable
|
|
22
|
+
from .end import End # type: ignore
|
|
23
|
+
from .endpoint import Endpoint
|
|
24
|
+
from .endpoint_group import EndpointGroup
|
|
18
25
|
from .environment import Environment
|
|
19
|
-
from .models import Models
|
|
20
26
|
from .model import Model
|
|
21
|
-
from .
|
|
22
|
-
from .
|
|
27
|
+
from .schema import Schema
|
|
28
|
+
from .security_header import SecurityHeader
|
|
29
|
+
from .validator import Validator
|
|
23
30
|
|
|
24
31
|
__all__ = [
|
|
25
|
-
"
|
|
32
|
+
"Action",
|
|
26
33
|
"authentication",
|
|
27
34
|
"autodoc",
|
|
28
35
|
"backends",
|
|
29
|
-
"
|
|
36
|
+
"Column",
|
|
37
|
+
"columns",
|
|
38
|
+
"configs",
|
|
39
|
+
"Configurable",
|
|
30
40
|
"contexts",
|
|
31
|
-
"
|
|
41
|
+
"cursors",
|
|
32
42
|
"di",
|
|
43
|
+
"input_outputs",
|
|
44
|
+
"End",
|
|
45
|
+
"Endpoint",
|
|
46
|
+
"EndpointGroup",
|
|
47
|
+
"endpoints",
|
|
48
|
+
"Environment",
|
|
49
|
+
"exceptions",
|
|
33
50
|
"functional",
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
51
|
+
"Model",
|
|
52
|
+
"Schema",
|
|
53
|
+
"typing",
|
|
54
|
+
"Validator",
|
|
55
|
+
"query",
|
|
37
56
|
"secrets",
|
|
57
|
+
"SecurityHeader",
|
|
38
58
|
"security_headers",
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"Models",
|
|
42
|
-
"Model",
|
|
43
|
-
"BindingConfig",
|
|
44
|
-
"Application",
|
|
59
|
+
"validators",
|
|
60
|
+
"decorators",
|
|
45
61
|
]
|
clearskies/action.py
ADDED
|
@@ -1,46 +1,15 @@
|
|
|
1
|
-
from
|
|
2
|
-
from .
|
|
3
|
-
from .
|
|
4
|
-
from .
|
|
5
|
-
from .
|
|
6
|
-
from .
|
|
7
|
-
from .jwks_jwcrypto import JWKSJwCrypto
|
|
8
|
-
from .authorization_pass_through import AuthorizationPassThrough
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
def public():
|
|
12
|
-
return BindingConfig(Public)
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
def secret_bearer(**kwargs):
|
|
16
|
-
return BindingConfig(SecretBearer, **kwargs)
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
def auth0_jwks(**kwargs):
|
|
20
|
-
return BindingConfig(Auth0JWKS, **kwargs)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
def jwks(jwks_url, **kwargs):
|
|
24
|
-
return BindingConfig(JWKS, jwks_url=jwks_url, **kwargs)
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
def jwks_jwcrypto(jwks_url, **kwargs):
|
|
28
|
-
return BindingConfig(JWKSJwCrypto, jwks_url=jwks_url, **kwargs)
|
|
29
|
-
|
|
1
|
+
from clearskies.authentication.authentication import Authentication
|
|
2
|
+
from clearskies.authentication.authorization import Authorization
|
|
3
|
+
from clearskies.authentication.authorization_pass_through import AuthorizationPassThrough
|
|
4
|
+
from clearskies.authentication.jwks import Jwks
|
|
5
|
+
from clearskies.authentication.public import Public
|
|
6
|
+
from clearskies.authentication.secret_bearer import SecretBearer
|
|
30
7
|
|
|
31
8
|
__all__ = [
|
|
9
|
+
"Authentication",
|
|
32
10
|
"Authorization",
|
|
33
11
|
"AuthorizationPassThrough",
|
|
34
|
-
"
|
|
35
|
-
"public",
|
|
12
|
+
"Jwks",
|
|
36
13
|
"Public",
|
|
37
|
-
"secret_bearer",
|
|
38
14
|
"SecretBearer",
|
|
39
|
-
"auth0_jwks",
|
|
40
|
-
"Auth0JWKS",
|
|
41
|
-
"authorization",
|
|
42
|
-
"jwks",
|
|
43
|
-
"JWKS",
|
|
44
|
-
"jwks_jwcrypto",
|
|
45
|
-
"JWKSJwCrypto",
|
|
46
15
|
]
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import TYPE_CHECKING, Any
|
|
4
|
+
|
|
5
|
+
import requests
|
|
6
|
+
|
|
7
|
+
import clearskies.configurable
|
|
8
|
+
from clearskies.authentication.authorization import Authorization
|
|
9
|
+
|
|
10
|
+
if TYPE_CHECKING:
|
|
11
|
+
from clearskies.security_headers.cors import Cors
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class Authentication(clearskies.configurable.Configurable, requests.auth.AuthBase):
|
|
15
|
+
"""Authentication."""
|
|
16
|
+
|
|
17
|
+
is_public = True
|
|
18
|
+
can_authorize = False
|
|
19
|
+
has_dynamic_credentials = False
|
|
20
|
+
|
|
21
|
+
def clear_credential_cache(self) -> None:
|
|
22
|
+
pass
|
|
23
|
+
|
|
24
|
+
def headers(self, retry_auth: bool = False) -> dict[str, str]:
|
|
25
|
+
return {}
|
|
26
|
+
|
|
27
|
+
def authenticate(self, input_output) -> bool:
|
|
28
|
+
return True
|
|
29
|
+
|
|
30
|
+
def authorize(self, authorization: Authorization):
|
|
31
|
+
raise ValueError("Public endpoints do not support authorization")
|
|
32
|
+
|
|
33
|
+
def set_headers_for_cors(self, cors: Cors):
|
|
34
|
+
pass
|
|
35
|
+
|
|
36
|
+
def documentation_security_scheme(self) -> dict[str, Any]:
|
|
37
|
+
return {}
|
|
38
|
+
|
|
39
|
+
def documentation_security_scheme_name(self) -> str:
|
|
40
|
+
return ""
|
|
41
|
+
|
|
42
|
+
def __call__(self, request: requests.models.PreparedRequest) -> requests.models.PreparedRequest:
|
|
43
|
+
request.headers = {**request.headers, **self.headers()} # type: ignore
|
|
44
|
+
return request
|
|
@@ -1,17 +1,23 @@
|
|
|
1
|
-
from
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import TYPE_CHECKING
|
|
4
|
+
|
|
5
|
+
if TYPE_CHECKING:
|
|
6
|
+
from clearskies.input_outputs.input_output import InputOutput
|
|
7
|
+
from clearskies.model import Model
|
|
2
8
|
|
|
3
9
|
|
|
4
10
|
class Authorization:
|
|
5
|
-
|
|
11
|
+
"""Authorization."""
|
|
12
|
+
|
|
13
|
+
def gate(self, authorization_data, input_output: InputOutput) -> bool:
|
|
6
14
|
"""
|
|
7
15
|
Return True/False to denote if the given user, as represented by the authorization data, should be allowed access.
|
|
8
16
|
|
|
9
|
-
Raise clearskies.
|
|
17
|
+
Raise clearskies.exceptions.ClientError if you want to raise a specific error message.
|
|
10
18
|
"""
|
|
11
19
|
return True
|
|
12
20
|
|
|
13
|
-
def
|
|
14
|
-
"""
|
|
15
|
-
|
|
16
|
-
"""
|
|
17
|
-
return models
|
|
21
|
+
def filter_model(self, model: Model, authorization_data, input_output: InputOutput) -> Model:
|
|
22
|
+
"""Return a models object with additional filters applied to account for authorization needs."""
|
|
23
|
+
return model
|
|
@@ -1,18 +1,22 @@
|
|
|
1
|
-
from
|
|
1
|
+
from typing import Any
|
|
2
2
|
|
|
3
|
+
from clearskies import di
|
|
3
4
|
|
|
4
|
-
|
|
5
|
+
from .jwks import Jwks
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class AuthorizationPassThrough(Jwks):
|
|
5
9
|
"""
|
|
10
|
+
Authentication class with pass through.
|
|
11
|
+
|
|
6
12
|
This authentication class takes the authentication header from the incoming request and reflects
|
|
7
13
|
it on outgoing requests.
|
|
8
14
|
"""
|
|
9
15
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
self.di = di
|
|
16
|
+
"""
|
|
17
|
+
The input output helper
|
|
18
|
+
"""
|
|
19
|
+
input_output = di.inject.InputOutput()
|
|
15
20
|
|
|
16
|
-
def headers(self, retry_auth=False):
|
|
17
|
-
|
|
18
|
-
return {"Authorization": input_output.get_request_header("authorization", True)}
|
|
21
|
+
def headers(self, retry_auth: bool = False) -> dict[str, Any]:
|
|
22
|
+
return {"Authorization": self.input_output.request_headers.get("authorization", True)}
|