clear-skies 2.0.3__py3-none-any.whl → 2.0.5__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.
Potentially problematic release.
This version of clear-skies might be problematic. Click here for more details.
- clear_skies-2.0.5.dist-info/METADATA +74 -0
- clear_skies-2.0.5.dist-info/RECORD +4 -0
- {clear_skies-2.0.3.dist-info → clear_skies-2.0.5.dist-info}/WHEEL +1 -1
- clear_skies-2.0.3.dist-info/METADATA +0 -46
- clear_skies-2.0.3.dist-info/RECORD +0 -249
- clearskies/__init__.py +0 -59
- clearskies/action.py +0 -7
- clearskies/authentication/__init__.py +0 -15
- clearskies/authentication/authentication.py +0 -46
- clearskies/authentication/authorization.py +0 -16
- clearskies/authentication/authorization_pass_through.py +0 -20
- clearskies/authentication/jwks.py +0 -163
- clearskies/authentication/public.py +0 -5
- clearskies/authentication/secret_bearer.py +0 -553
- clearskies/autodoc/__init__.py +0 -8
- clearskies/autodoc/formats/__init__.py +0 -5
- clearskies/autodoc/formats/oai3_json/__init__.py +0 -7
- clearskies/autodoc/formats/oai3_json/oai3_json.py +0 -87
- clearskies/autodoc/formats/oai3_json/oai3_schema_resolver.py +0 -15
- clearskies/autodoc/formats/oai3_json/parameter.py +0 -35
- clearskies/autodoc/formats/oai3_json/request.py +0 -68
- clearskies/autodoc/formats/oai3_json/response.py +0 -28
- clearskies/autodoc/formats/oai3_json/schema/__init__.py +0 -11
- clearskies/autodoc/formats/oai3_json/schema/array.py +0 -9
- clearskies/autodoc/formats/oai3_json/schema/default.py +0 -13
- clearskies/autodoc/formats/oai3_json/schema/enum.py +0 -7
- clearskies/autodoc/formats/oai3_json/schema/object.py +0 -29
- clearskies/autodoc/formats/oai3_json/test.json +0 -1985
- clearskies/autodoc/py.typed +0 -0
- clearskies/autodoc/request/__init__.py +0 -15
- clearskies/autodoc/request/header.py +0 -6
- clearskies/autodoc/request/json_body.py +0 -6
- clearskies/autodoc/request/parameter.py +0 -8
- clearskies/autodoc/request/request.py +0 -38
- clearskies/autodoc/request/url_parameter.py +0 -6
- clearskies/autodoc/request/url_path.py +0 -6
- clearskies/autodoc/response/__init__.py +0 -5
- clearskies/autodoc/response/response.py +0 -9
- clearskies/autodoc/schema/__init__.py +0 -31
- clearskies/autodoc/schema/array.py +0 -10
- clearskies/autodoc/schema/base64.py +0 -8
- clearskies/autodoc/schema/boolean.py +0 -5
- clearskies/autodoc/schema/date.py +0 -5
- clearskies/autodoc/schema/datetime.py +0 -5
- clearskies/autodoc/schema/double.py +0 -5
- clearskies/autodoc/schema/enum.py +0 -17
- clearskies/autodoc/schema/integer.py +0 -6
- clearskies/autodoc/schema/long.py +0 -5
- clearskies/autodoc/schema/number.py +0 -6
- clearskies/autodoc/schema/object.py +0 -13
- clearskies/autodoc/schema/password.py +0 -5
- clearskies/autodoc/schema/schema.py +0 -11
- clearskies/autodoc/schema/string.py +0 -5
- clearskies/backends/__init__.py +0 -65
- clearskies/backends/api_backend.py +0 -1178
- clearskies/backends/backend.py +0 -136
- clearskies/backends/cursor_backend.py +0 -335
- clearskies/backends/memory_backend.py +0 -797
- clearskies/backends/secrets_backend.py +0 -106
- clearskies/column.py +0 -1233
- clearskies/columns/__init__.py +0 -71
- clearskies/columns/audit.py +0 -206
- clearskies/columns/belongs_to_id.py +0 -483
- clearskies/columns/belongs_to_model.py +0 -132
- clearskies/columns/belongs_to_self.py +0 -105
- clearskies/columns/boolean.py +0 -113
- clearskies/columns/category_tree.py +0 -275
- clearskies/columns/category_tree_ancestors.py +0 -51
- clearskies/columns/category_tree_children.py +0 -127
- clearskies/columns/category_tree_descendants.py +0 -48
- clearskies/columns/created.py +0 -95
- clearskies/columns/created_by_authorization_data.py +0 -116
- clearskies/columns/created_by_header.py +0 -99
- clearskies/columns/created_by_ip.py +0 -92
- clearskies/columns/created_by_routing_data.py +0 -97
- clearskies/columns/created_by_user_agent.py +0 -92
- clearskies/columns/date.py +0 -234
- clearskies/columns/datetime.py +0 -282
- clearskies/columns/email.py +0 -76
- clearskies/columns/float.py +0 -153
- clearskies/columns/has_many.py +0 -505
- clearskies/columns/has_many_self.py +0 -56
- clearskies/columns/has_one.py +0 -14
- clearskies/columns/integer.py +0 -160
- clearskies/columns/json.py +0 -126
- clearskies/columns/many_to_many_ids.py +0 -337
- clearskies/columns/many_to_many_ids_with_data.py +0 -274
- clearskies/columns/many_to_many_models.py +0 -158
- clearskies/columns/many_to_many_pivots.py +0 -134
- clearskies/columns/phone.py +0 -159
- clearskies/columns/select.py +0 -92
- clearskies/columns/string.py +0 -102
- clearskies/columns/timestamp.py +0 -164
- clearskies/columns/updated.py +0 -110
- clearskies/columns/uuid.py +0 -86
- clearskies/configs/README.md +0 -105
- clearskies/configs/__init__.py +0 -162
- clearskies/configs/actions.py +0 -43
- clearskies/configs/any.py +0 -13
- clearskies/configs/any_dict.py +0 -22
- clearskies/configs/any_dict_or_callable.py +0 -23
- clearskies/configs/authentication.py +0 -23
- clearskies/configs/authorization.py +0 -23
- clearskies/configs/boolean.py +0 -16
- clearskies/configs/boolean_or_callable.py +0 -18
- clearskies/configs/callable_config.py +0 -18
- clearskies/configs/columns.py +0 -34
- clearskies/configs/conditions.py +0 -30
- clearskies/configs/config.py +0 -24
- clearskies/configs/datetime.py +0 -18
- clearskies/configs/datetime_or_callable.py +0 -19
- clearskies/configs/endpoint.py +0 -23
- clearskies/configs/endpoint_list.py +0 -28
- clearskies/configs/float.py +0 -16
- clearskies/configs/float_or_callable.py +0 -18
- clearskies/configs/integer.py +0 -16
- clearskies/configs/integer_or_callable.py +0 -18
- clearskies/configs/joins.py +0 -30
- clearskies/configs/list_any_dict.py +0 -30
- clearskies/configs/list_any_dict_or_callable.py +0 -31
- clearskies/configs/model_class.py +0 -35
- clearskies/configs/model_column.py +0 -65
- clearskies/configs/model_columns.py +0 -56
- clearskies/configs/model_destination_name.py +0 -25
- clearskies/configs/model_to_id_column.py +0 -43
- clearskies/configs/readable_model_column.py +0 -9
- clearskies/configs/readable_model_columns.py +0 -9
- clearskies/configs/schema.py +0 -23
- clearskies/configs/searchable_model_columns.py +0 -9
- clearskies/configs/security_headers.py +0 -39
- clearskies/configs/select.py +0 -26
- clearskies/configs/select_list.py +0 -47
- clearskies/configs/string.py +0 -29
- clearskies/configs/string_dict.py +0 -32
- clearskies/configs/string_list.py +0 -32
- clearskies/configs/string_list_or_callable.py +0 -35
- clearskies/configs/string_or_callable.py +0 -18
- clearskies/configs/timedelta.py +0 -18
- clearskies/configs/timezone.py +0 -18
- clearskies/configs/url.py +0 -23
- clearskies/configs/validators.py +0 -45
- clearskies/configs/writeable_model_column.py +0 -9
- clearskies/configs/writeable_model_columns.py +0 -9
- clearskies/configurable.py +0 -76
- clearskies/contexts/__init__.py +0 -11
- clearskies/contexts/cli.py +0 -117
- clearskies/contexts/context.py +0 -98
- clearskies/contexts/wsgi.py +0 -76
- clearskies/contexts/wsgi_ref.py +0 -82
- clearskies/decorators.py +0 -33
- clearskies/di/__init__.py +0 -14
- clearskies/di/additional_config.py +0 -130
- clearskies/di/additional_config_auto_import.py +0 -17
- clearskies/di/di.py +0 -968
- clearskies/di/inject/__init__.py +0 -23
- clearskies/di/inject/by_class.py +0 -21
- clearskies/di/inject/by_name.py +0 -18
- clearskies/di/inject/di.py +0 -13
- clearskies/di/inject/environment.py +0 -14
- clearskies/di/inject/input_output.py +0 -20
- clearskies/di/inject/now.py +0 -13
- clearskies/di/inject/requests.py +0 -13
- clearskies/di/inject/secrets.py +0 -14
- clearskies/di/inject/utcnow.py +0 -13
- clearskies/di/inject/uuid.py +0 -15
- clearskies/di/injectable.py +0 -29
- clearskies/di/injectable_properties.py +0 -131
- 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/end.py +0 -183
- clearskies/endpoint.py +0 -1310
- clearskies/endpoint_group.py +0 -310
- clearskies/endpoints/__init__.py +0 -23
- clearskies/endpoints/advanced_search.py +0 -526
- clearskies/endpoints/callable.py +0 -388
- clearskies/endpoints/create.py +0 -202
- clearskies/endpoints/delete.py +0 -139
- clearskies/endpoints/get.py +0 -275
- clearskies/endpoints/health_check.py +0 -181
- clearskies/endpoints/list.py +0 -573
- clearskies/endpoints/restful_api.py +0 -427
- clearskies/endpoints/simple_search.py +0 -286
- clearskies/endpoints/update.py +0 -190
- clearskies/environment.py +0 -104
- clearskies/exceptions/__init__.py +0 -17
- clearskies/exceptions/authentication.py +0 -2
- clearskies/exceptions/authorization.py +0 -2
- clearskies/exceptions/client_error.py +0 -2
- clearskies/exceptions/input_errors.py +0 -4
- clearskies/exceptions/moved_permanently.py +0 -3
- clearskies/exceptions/moved_temporarily.py +0 -3
- clearskies/exceptions/not_found.py +0 -2
- clearskies/functional/__init__.py +0 -7
- clearskies/functional/routing.py +0 -92
- clearskies/functional/string.py +0 -112
- clearskies/functional/validations.py +0 -76
- clearskies/input_outputs/__init__.py +0 -13
- clearskies/input_outputs/cli.py +0 -171
- clearskies/input_outputs/exceptions/__init__.py +0 -2
- clearskies/input_outputs/exceptions/cli_input_error.py +0 -2
- clearskies/input_outputs/exceptions/cli_not_found.py +0 -2
- clearskies/input_outputs/headers.py +0 -45
- clearskies/input_outputs/input_output.py +0 -138
- clearskies/input_outputs/programmatic.py +0 -69
- clearskies/input_outputs/py.typed +0 -0
- clearskies/input_outputs/wsgi.py +0 -77
- clearskies/model.py +0 -1922
- clearskies/py.typed +0 -0
- clearskies/query/__init__.py +0 -12
- clearskies/query/condition.py +0 -223
- clearskies/query/join.py +0 -136
- clearskies/query/query.py +0 -196
- clearskies/query/sort.py +0 -27
- clearskies/schema.py +0 -82
- clearskies/secrets/__init__.py +0 -6
- clearskies/secrets/additional_configs/__init__.py +0 -32
- clearskies/secrets/additional_configs/mysql_connection_dynamic_producer.py +0 -61
- clearskies/secrets/additional_configs/mysql_connection_dynamic_producer_via_ssh_cert_bastion.py +0 -160
- clearskies/secrets/akeyless.py +0 -182
- clearskies/secrets/exceptions/__init__.py +0 -1
- clearskies/secrets/exceptions/not_found.py +0 -2
- clearskies/secrets/secrets.py +0 -38
- clearskies/security_header.py +0 -15
- clearskies/security_headers/__init__.py +0 -11
- clearskies/security_headers/cache_control.py +0 -67
- clearskies/security_headers/cors.py +0 -50
- clearskies/security_headers/csp.py +0 -94
- clearskies/security_headers/hsts.py +0 -22
- clearskies/security_headers/x_content_type_options.py +0 -0
- clearskies/security_headers/x_frame_options.py +0 -0
- clearskies/test_base.py +0 -8
- clearskies/typing.py +0 -11
- clearskies/validator.py +0 -37
- clearskies/validators/__init__.py +0 -33
- clearskies/validators/after_column.py +0 -62
- clearskies/validators/before_column.py +0 -13
- clearskies/validators/in_the_future.py +0 -32
- clearskies/validators/in_the_future_at_least.py +0 -11
- clearskies/validators/in_the_future_at_most.py +0 -10
- clearskies/validators/in_the_past.py +0 -32
- clearskies/validators/in_the_past_at_least.py +0 -10
- clearskies/validators/in_the_past_at_most.py +0 -10
- clearskies/validators/maximum_length.py +0 -26
- clearskies/validators/maximum_value.py +0 -29
- clearskies/validators/minimum_length.py +0 -26
- clearskies/validators/minimum_value.py +0 -29
- clearskies/validators/required.py +0 -34
- clearskies/validators/timedelta.py +0 -59
- clearskies/validators/unique.py +0 -30
- {clear_skies-2.0.3.dist-info → clear_skies-2.0.5.dist-info/licenses}/LICENSE +0 -0
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
from typing import Any
|
|
2
|
-
|
|
3
|
-
from clearskies.input_outputs.input_output import InputOutput
|
|
4
|
-
|
|
5
|
-
from .headers import Headers
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class Programmatic(InputOutput):
|
|
9
|
-
_body: str | dict[str, Any] | list[Any] = ""
|
|
10
|
-
_request_method: str = ""
|
|
11
|
-
_request_headers: dict[str, Any] = {}
|
|
12
|
-
url: str = ""
|
|
13
|
-
|
|
14
|
-
def __init__(
|
|
15
|
-
self,
|
|
16
|
-
url: str = "",
|
|
17
|
-
request_method: str = "GET",
|
|
18
|
-
body: str | dict[str, Any] | list[Any] = "",
|
|
19
|
-
query_parameters: dict[str, Any] = {},
|
|
20
|
-
request_headers: dict[str, str] = {},
|
|
21
|
-
):
|
|
22
|
-
self.url = url
|
|
23
|
-
self._request_headers = {**request_headers}
|
|
24
|
-
self._body_loaded_as_json = True
|
|
25
|
-
self._body_as_json = None
|
|
26
|
-
self._request_method = request_method
|
|
27
|
-
if body:
|
|
28
|
-
self._body = body
|
|
29
|
-
if isinstance(body, dict) or isinstance(body, list):
|
|
30
|
-
self._body_as_json = body
|
|
31
|
-
|
|
32
|
-
super().__init__()
|
|
33
|
-
self.query_parameters = {**query_parameters}
|
|
34
|
-
|
|
35
|
-
def respond(self, response, status_code=200):
|
|
36
|
-
return (status_code, response, self.response_headers)
|
|
37
|
-
|
|
38
|
-
def get_script_name(self):
|
|
39
|
-
return self.url
|
|
40
|
-
|
|
41
|
-
def get_path_info(self):
|
|
42
|
-
return self.url
|
|
43
|
-
|
|
44
|
-
def get_full_path(self):
|
|
45
|
-
return self.url
|
|
46
|
-
|
|
47
|
-
def get_request_method(self):
|
|
48
|
-
return self._request_method
|
|
49
|
-
|
|
50
|
-
def has_body(self):
|
|
51
|
-
return bool(self._body)
|
|
52
|
-
|
|
53
|
-
def get_body(self):
|
|
54
|
-
if not self.has_body():
|
|
55
|
-
return ""
|
|
56
|
-
|
|
57
|
-
return self._body
|
|
58
|
-
|
|
59
|
-
def context_specifics(self):
|
|
60
|
-
return {}
|
|
61
|
-
|
|
62
|
-
def get_client_ip(self):
|
|
63
|
-
return "127.0.0.1"
|
|
64
|
-
|
|
65
|
-
def get_query_string(self):
|
|
66
|
-
return ""
|
|
67
|
-
|
|
68
|
-
def get_request_headers(self):
|
|
69
|
-
return self._request_headers
|
|
File without changes
|
clearskies/input_outputs/wsgi.py
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import json
|
|
2
|
-
import urllib
|
|
3
|
-
import urllib.parse
|
|
4
|
-
from typing import Callable
|
|
5
|
-
|
|
6
|
-
from .input_output import InputOutput
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class Wsgi(InputOutput):
|
|
10
|
-
_environment: dict[str, str] = {}
|
|
11
|
-
_start_response: Callable = None # type: ignore
|
|
12
|
-
_request_headers: dict[str, str] = {}
|
|
13
|
-
_cached_body: str | None = None
|
|
14
|
-
|
|
15
|
-
def __init__(self, environment, start_response):
|
|
16
|
-
self._environment = environment
|
|
17
|
-
self._start_response = start_response
|
|
18
|
-
self._request_headers = {}
|
|
19
|
-
for key, value in self._environment.items():
|
|
20
|
-
if key.upper()[0:5] == "HTTP_":
|
|
21
|
-
self._request_headers[key[5:].lower()] = value
|
|
22
|
-
super().__init__()
|
|
23
|
-
|
|
24
|
-
def _from_environment(self, key):
|
|
25
|
-
return self._environment[key] if key in self._environment else ""
|
|
26
|
-
|
|
27
|
-
def respond(self, body, status_code=200):
|
|
28
|
-
if "content-type" not in self.response_headers:
|
|
29
|
-
self.response_headers.content_type = "application/json; charset=UTF-8"
|
|
30
|
-
|
|
31
|
-
self._start_response(f"{status_code} Ok", [header for header in self.response_headers.items()]) # type: ignore
|
|
32
|
-
if type(body) == bytes:
|
|
33
|
-
final_body = body
|
|
34
|
-
elif type(body) == str:
|
|
35
|
-
final_body = body.encode("utf-8")
|
|
36
|
-
else:
|
|
37
|
-
final_body = json.dumps(body).encode("utf-8")
|
|
38
|
-
return [final_body]
|
|
39
|
-
|
|
40
|
-
def has_body(self):
|
|
41
|
-
return bool(self._from_environment("CONTENT_LENGTH"))
|
|
42
|
-
|
|
43
|
-
def get_body(self):
|
|
44
|
-
if self._cached_body is None:
|
|
45
|
-
self._cached_body = (
|
|
46
|
-
self._from_environment("wsgi.input").read(int(self._from_environment("CONTENT_LENGTH"))).decode("utf-8")
|
|
47
|
-
if self._from_environment("CONTENT_LENGTH")
|
|
48
|
-
else ""
|
|
49
|
-
)
|
|
50
|
-
return self._cached_body
|
|
51
|
-
|
|
52
|
-
def get_request_method(self):
|
|
53
|
-
return self._from_environment("REQUEST_METHOD").upper()
|
|
54
|
-
|
|
55
|
-
def get_script_name(self):
|
|
56
|
-
return self._from_environment("SCRIPT_NAME")
|
|
57
|
-
|
|
58
|
-
def get_path_info(self):
|
|
59
|
-
return self._from_environment("PATH_INFO")
|
|
60
|
-
|
|
61
|
-
def get_query_string(self):
|
|
62
|
-
return self._from_environment("QUERY_STRING")
|
|
63
|
-
|
|
64
|
-
def get_content_type(self):
|
|
65
|
-
return self._from_environment("CONTENT_TYPE")
|
|
66
|
-
|
|
67
|
-
def get_protocol(self):
|
|
68
|
-
return self._from_environment("wsgi.url_scheme").lower()
|
|
69
|
-
|
|
70
|
-
def context_specifics(self):
|
|
71
|
-
return {"wsgi_environment": self._environment}
|
|
72
|
-
|
|
73
|
-
def get_client_ip(self):
|
|
74
|
-
return self._environment.get("REMOTE_ADDR")
|
|
75
|
-
|
|
76
|
-
def get_request_headers(self):
|
|
77
|
-
return self._request_headers
|