clear-skies 2.0.1__py3-none-any.whl → 2.0.3__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.

Files changed (70) hide show
  1. {clear_skies-2.0.1.dist-info → clear_skies-2.0.3.dist-info}/METADATA +1 -1
  2. {clear_skies-2.0.1.dist-info → clear_skies-2.0.3.dist-info}/RECORD +70 -70
  3. clearskies/__init__.py +5 -8
  4. clearskies/authentication/jwks.py +2 -2
  5. clearskies/authentication/secret_bearer.py +2 -2
  6. clearskies/backends/api_backend.py +2 -2
  7. clearskies/backends/secrets_backend.py +0 -1
  8. clearskies/column.py +6 -2
  9. clearskies/columns/audit.py +3 -2
  10. clearskies/columns/belongs_to_id.py +5 -5
  11. clearskies/columns/belongs_to_model.py +6 -2
  12. clearskies/columns/belongs_to_self.py +2 -2
  13. clearskies/columns/boolean.py +6 -2
  14. clearskies/columns/category_tree.py +2 -2
  15. clearskies/columns/category_tree_children.py +2 -2
  16. clearskies/columns/created.py +3 -2
  17. clearskies/columns/created_by_authorization_data.py +2 -2
  18. clearskies/columns/created_by_header.py +2 -2
  19. clearskies/columns/created_by_ip.py +2 -2
  20. clearskies/columns/created_by_routing_data.py +3 -2
  21. clearskies/columns/created_by_user_agent.py +2 -2
  22. clearskies/columns/date.py +6 -2
  23. clearskies/columns/datetime.py +6 -2
  24. clearskies/columns/float.py +6 -2
  25. clearskies/columns/has_many.py +2 -2
  26. clearskies/columns/has_many_self.py +2 -2
  27. clearskies/columns/integer.py +6 -2
  28. clearskies/columns/json.py +6 -2
  29. clearskies/columns/many_to_many_ids.py +6 -2
  30. clearskies/columns/many_to_many_ids_with_data.py +6 -2
  31. clearskies/columns/many_to_many_models.py +6 -2
  32. clearskies/columns/many_to_many_pivots.py +3 -2
  33. clearskies/columns/phone.py +3 -2
  34. clearskies/columns/select.py +3 -2
  35. clearskies/columns/string.py +4 -0
  36. clearskies/columns/timestamp.py +6 -2
  37. clearskies/columns/updated.py +2 -2
  38. clearskies/columns/uuid.py +2 -2
  39. clearskies/configs/__init__.py +1 -1
  40. clearskies/contexts/cli.py +106 -0
  41. clearskies/contexts/context.py +1 -0
  42. clearskies/contexts/wsgi.py +56 -0
  43. clearskies/contexts/wsgi_ref.py +29 -0
  44. clearskies/{parameters_to_properties.py → decorators.py} +2 -0
  45. clearskies/di/injectable_properties.py +2 -2
  46. clearskies/endpoint.py +4 -4
  47. clearskies/endpoint_group.py +1 -1
  48. clearskies/endpoints/callable.py +1 -1
  49. clearskies/endpoints/create.py +1 -1
  50. clearskies/endpoints/delete.py +1 -1
  51. clearskies/endpoints/get.py +1 -1
  52. clearskies/endpoints/health_check.py +1 -1
  53. clearskies/endpoints/list.py +1 -1
  54. clearskies/endpoints/restful_api.py +2 -2
  55. clearskies/endpoints/simple_search.py +1 -1
  56. clearskies/endpoints/update.py +1 -1
  57. clearskies/input_outputs/cli.py +5 -4
  58. clearskies/model.py +807 -43
  59. clearskies/security_headers/cache_control.py +2 -2
  60. clearskies/security_headers/cors.py +2 -2
  61. clearskies/security_headers/csp.py +2 -2
  62. clearskies/security_headers/hsts.py +2 -2
  63. clearskies/validators/after_column.py +2 -2
  64. clearskies/validators/in_the_future.py +1 -1
  65. clearskies/validators/in_the_past.py +1 -1
  66. clearskies/validators/required.py +0 -1
  67. clearskies/validators/timedelta.py +2 -2
  68. clearskies/validators/unique.py +0 -1
  69. {clear_skies-2.0.1.dist-info → clear_skies-2.0.3.dist-info}/LICENSE +0 -0
  70. {clear_skies-2.0.1.dist-info → clear_skies-2.0.3.dist-info}/WHEEL +0 -0
@@ -1,3 +1,5 @@
1
+ from __future__ import annotations
2
+
1
3
  import inspect
2
4
 
3
5
  import wrapt # type: ignore
@@ -44,7 +44,7 @@ class InjectableProperties:
44
44
  ```python
45
45
  import clearskies
46
46
  import time
47
- from clearskies import parameters_to_properties
47
+ import clearskies.decorators
48
48
 
49
49
 
50
50
  class MyOtherThing(clearskies.di.InjectableProperties):
@@ -56,7 +56,7 @@ class InjectableProperties:
56
56
  some_number = clearskies.di.inject.ByName("some_number")
57
57
  my_other_thing = clearskies.di.inject.ByClass(MyOtherThing)
58
58
 
59
- @parameters_to_properties
59
+ @clearskies.decorators.parameters_to_properties
60
60
  def __init__(self, my_int: int):
61
61
  self.finalize_and_validate_configuration()
62
62
 
clearskies/endpoint.py CHANGED
@@ -8,9 +8,9 @@ from typing import TYPE_CHECKING, Any, Callable
8
8
  import clearskies.column
9
9
  import clearskies.configs
10
10
  import clearskies.configurable
11
+ import clearskies.decorators
11
12
  import clearskies.di
12
13
  import clearskies.end
13
- import clearskies.parameters_to_properties
14
14
  import clearskies.typing
15
15
  from clearskies import autodoc, exceptions
16
16
  from clearskies.authentication import Authentication, Authorization, Public
@@ -879,7 +879,7 @@ class Endpoint(
879
879
  _sortable_columns: dict[str, clearskies.column.Column] = None # type: ignore
880
880
  _as_json_map: dict[str, clearskies.column.Column] = None # type: ignore
881
881
 
882
- @clearskies.parameters_to_properties.parameters_to_properties
882
+ @clearskies.decorators.parameters_to_properties
883
883
  def __init__(
884
884
  self,
885
885
  url: str = "",
@@ -963,11 +963,11 @@ class Endpoint(
963
963
  model = self.di.call_function(where, model=model, **input_output.get_context_for_callables())
964
964
  else:
965
965
  model = model.where(where)
966
- model = model.where_for_request(
966
+ model = model.where_for_request_all(
967
967
  model,
968
+ input_output,
968
969
  input_output.routing_data,
969
970
  input_output.authorization_data,
970
- input_output,
971
971
  overrides=self.column_overrides,
972
972
  )
973
973
  return self.authorization.filter_model(model, input_output.authorization_data, input_output)
@@ -239,7 +239,7 @@ class EndpointGroup(
239
239
  has_cors: bool = False
240
240
  endpoints_initialized = False
241
241
 
242
- @clearskies.parameters_to_properties.parameters_to_properties
242
+ @clearskies.decorators.parameters_to_properties
243
243
  def __init__(
244
244
  self,
245
245
  endpoints: list[Endpoint | Self],
@@ -239,7 +239,7 @@ class Callable(Endpoint):
239
239
  """
240
240
  return_records = clearskies.configs.Boolean(default=False)
241
241
 
242
- @clearskies.parameters_to_properties.parameters_to_properties
242
+ @clearskies.decorators.parameters_to_properties
243
243
  def __init__(
244
244
  self,
245
245
  to_call: CallableType,
@@ -102,7 +102,7 @@ class Create(Endpoint):
102
102
  5. We provided an extra column (`not_a_column`) that wasn't in the list of allowed columns.
103
103
  """
104
104
 
105
- @clearskies.parameters_to_properties.parameters_to_properties
105
+ @clearskies.decorators.parameters_to_properties
106
106
  def __init__(
107
107
  self,
108
108
  model_class: type[Model],
@@ -73,7 +73,7 @@ class Delete(Get):
73
73
  ```
74
74
  """
75
75
 
76
- @clearskies.parameters_to_properties.parameters_to_properties
76
+ @clearskies.decorators.parameters_to_properties
77
77
  def __init__(
78
78
  self,
79
79
  model_class: type[Model],
@@ -159,7 +159,7 @@ class Get(Endpoint):
159
159
  """
160
160
  record_lookup_column_name = clearskies.configs.ReadableModelColumn("model_class", default=None)
161
161
 
162
- @clearskies.parameters_to_properties.parameters_to_properties
162
+ @clearskies.decorators.parameters_to_properties
163
163
  def __init__(
164
164
  self,
165
165
  model_class: type[Model],
@@ -130,7 +130,7 @@ class HealthCheck(Endpoint):
130
130
  """
131
131
  callables = clearskies.configs.Any(default=[])
132
132
 
133
- @clearskies.parameters_to_properties.parameters_to_properties
133
+ @clearskies.decorators.parameters_to_properties
134
134
  def __init__(
135
135
  self,
136
136
  dependency_injection_names: list[str] = [],
@@ -182,7 +182,7 @@ class List(Endpoint):
182
182
  "model_class", allow_relationship_references=True
183
183
  )
184
184
 
185
- @clearskies.parameters_to_properties.parameters_to_properties
185
+ @clearskies.decorators.parameters_to_properties
186
186
  def __init__(
187
187
  self,
188
188
  model_class: type[Model],
@@ -5,8 +5,8 @@ from collections import OrderedDict
5
5
  from typing import TYPE_CHECKING, Any, Callable
6
6
 
7
7
  import clearskies.configs
8
+ import clearskies.decorators
8
9
  import clearskies.exceptions
9
- import clearskies.parameters_to_properties
10
10
  from clearskies import authentication, autodoc, typing
11
11
  from clearskies.authentication import Authentication, Authorization, Public
12
12
  from clearskies.endpoint import Endpoint
@@ -293,7 +293,7 @@ class RestfulApi(EndpointGroup):
293
293
  where = clearskies.configs.Conditions(default=[])
294
294
  _descriptor_config_map = None
295
295
 
296
- @clearskies.parameters_to_properties.parameters_to_properties
296
+ @clearskies.decorators.parameters_to_properties
297
297
  def __init__(
298
298
  self,
299
299
  model_class: type[Model],
@@ -194,7 +194,7 @@ class SimpleSearch(List):
194
194
  ```
195
195
  """
196
196
 
197
- @clearskies.parameters_to_properties.parameters_to_properties
197
+ @clearskies.decorators.parameters_to_properties
198
198
  def __init__(
199
199
  self,
200
200
  model_class: type[Model],
@@ -90,7 +90,7 @@ class Update(Get):
90
90
  }
91
91
  """
92
92
 
93
- @clearskies.parameters_to_properties.parameters_to_properties
93
+ @clearskies.decorators.parameters_to_properties
94
94
  def __init__(
95
95
  self,
96
96
  model_class: type[Model],
@@ -20,12 +20,13 @@ class Cli(InputOutput):
20
20
  super().__init__()
21
21
 
22
22
  def respond(self, response, status_code=200):
23
- if status_code != 200:
24
- sys.exit(response)
25
23
  if type(response) != str:
26
- print(json.dumps(response))
24
+ final = json.dumps(response)
27
25
  else:
28
- print(response)
26
+ final = response
27
+ if status_code != 200:
28
+ sys.exit(final)
29
+ print(final)
29
30
 
30
31
  def get_arguments(self):
31
32
  return sys.argv