clear-skies 1.19.0__py3-none-any.whl → 1.19.2__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-1.19.0.dist-info → clear_skies-1.19.2.dist-info}/METADATA +1 -1
- {clear_skies-1.19.0.dist-info → clear_skies-1.19.2.dist-info}/RECORD +11 -11
- clearskies/column_types/belongs_to.py +9 -1
- clearskies/column_types/created.py +13 -3
- clearskies/column_types/created_micro.py +13 -3
- clearskies/column_types/updated.py +13 -3
- clearskies/column_types/updated_micro.py +13 -3
- clearskies/input_outputs/cli.py +1 -1
- clearskies/input_outputs/wsgi.py +1 -1
- {clear_skies-1.19.0.dist-info → clear_skies-1.19.2.dist-info}/LICENSE +0 -0
- {clear_skies-1.19.0.dist-info → clear_skies-1.19.2.dist-info}/WHEEL +0 -0
|
@@ -56,17 +56,17 @@ clearskies/backends/secrets_backend.py,sha256=4lzrgdL_O_pgCT5HknV2gotFgp9GzjQ5_2
|
|
|
56
56
|
clearskies/binding_config.py,sha256=bF8LBNEgJacwKCqToAtDqN9hv5omzU7zt_4qB9KPtE0,457
|
|
57
57
|
clearskies/column_types/__init__.py,sha256=QHEFFd3wRXvaOR7uZk-bpVLlLoTiN3D4S8sBU9rFwCE,4330
|
|
58
58
|
clearskies/column_types/audit.py,sha256=meDFV0s4u9i6UojN5f6EQk_kh-nGP8xPscCRa2Nd-yw,8102
|
|
59
|
-
clearskies/column_types/belongs_to.py,sha256=
|
|
59
|
+
clearskies/column_types/belongs_to.py,sha256=tH1tbTOfjifSNuVjO-KbMF7GiUIoLfcDItrrS3TGGM8,11044
|
|
60
60
|
clearskies/column_types/boolean.py,sha256=1yyM1CUfgD84pPE65c1OP1Qjf_J0Z45hjPrDR51AUkQ,1878
|
|
61
61
|
clearskies/column_types/category_tree.py,sha256=PgNmzZPyqYS5NADH_QTCxLvDXZFxzv5ESKTkvPrrLXo,9140
|
|
62
62
|
clearskies/column_types/column.py,sha256=PUrFyA2KmSyAZTAiJPfHy5Dlc1YPEb62c7r0BOTkF1s,13541
|
|
63
|
-
clearskies/column_types/created.py,sha256=
|
|
63
|
+
clearskies/column_types/created.py,sha256=S78e1VuvvUPYiI79gWGqlPzMSLIbXMpaYQMw8as7l38,615
|
|
64
64
|
clearskies/column_types/created_by_authorization_data.py,sha256=--1w1TOSo2CMwrpn6Y_iorl2RTqLgG8MbR8k27qreew,1108
|
|
65
65
|
clearskies/column_types/created_by_header.py,sha256=5sY6vjtra-BrAgUE4zkuLhBtzCVWHNtJPwMozPw_7_s,520
|
|
66
66
|
clearskies/column_types/created_by_ip.py,sha256=wwCUoEwHEVGN89x4xP7NJ6QR85Aum6v3JmxofoQrqtg,395
|
|
67
67
|
clearskies/column_types/created_by_routing_data.py,sha256=EhVorRaGV2OhEb0YSPwPmrsK2NQycYgGEd4ab8-qI2I,569
|
|
68
68
|
clearskies/column_types/created_by_user_agent.py,sha256=sSYDRrqSjsCwcYlhF_s9NO-iDww3PaH6aO2ATp_SKGQ,419
|
|
69
|
-
clearskies/column_types/created_micro.py,sha256=
|
|
69
|
+
clearskies/column_types/created_micro.py,sha256=EqeHB3ZHbi4nCa1rbrKy1TbooT9U3Kfw5z4jUvLi32U,636
|
|
70
70
|
clearskies/column_types/datetime.py,sha256=OEy5eMfqWp6KOqEHQa3Ga_tl0oawtcMRBafI1SPYDFk,4275
|
|
71
71
|
clearskies/column_types/datetime_micro.py,sha256=3DxtkeJZhWigdni7QEJFV3BJuCmXJMyFQjDZ9jyI144,328
|
|
72
72
|
clearskies/column_types/email.py,sha256=rCaCFCxGhVzJcYVeGm98S6e7myJ6eQX9YznqAZIgwQI,606
|
|
@@ -78,8 +78,8 @@ clearskies/column_types/many_to_many.py,sha256=Yu5wmMkVqRteMrH_8uSZK-bM_IrfDyv6A
|
|
|
78
78
|
clearskies/column_types/many_to_many_with_data.py,sha256=NOYjZedeLIWVyDV4BTRyNmhkNHZzx6SkHLFbL-VqHQU,7769
|
|
79
79
|
clearskies/column_types/select.py,sha256=1oBslTJ_7QCjlFeEcwJVRL-ED4sXwCESVFRAOonvG2I,297
|
|
80
80
|
clearskies/column_types/string.py,sha256=XbHC31TmlW0k86cvdVJBDyowU8Xis6Te6R0rPLXgLpI,863
|
|
81
|
-
clearskies/column_types/updated.py,sha256=
|
|
82
|
-
clearskies/column_types/updated_micro.py,sha256=
|
|
81
|
+
clearskies/column_types/updated.py,sha256=FNyRK-PS6lgFQ9QN2VrcIZP2g5EHGhll6pf-MgqMH7s,566
|
|
82
|
+
clearskies/column_types/updated_micro.py,sha256=3geqsV4nsPB9xDKyvQDGniU-KMqM8WvoqHfUYcBqGJY,587
|
|
83
83
|
clearskies/column_types/uuid.py,sha256=pA6Cd-1QSRuUpz0PxWAGRdG01hW7bpIicOhhJvAvDkQ,711
|
|
84
84
|
clearskies/columns.py,sha256=3PgLopL1l20vVWaUqOJkwXMr06a-gFHEsbExfOWVB4I,5925
|
|
85
85
|
clearskies/condition_parser.py,sha256=IXl51-rDxws7-nAtTVu_m6gTegtpkDnoGAFX2MTPDIo,6589
|
|
@@ -153,12 +153,12 @@ clearskies/handlers/simple_search.py,sha256=bSfq8rzdqkBj-dTGUBSZ1EkfjzUWHID7mKD2
|
|
|
153
153
|
clearskies/handlers/update.py,sha256=VCZkoID7i5VHq78fkIpjbRdXQ4Z3IuXEE5dfC8z4RZI,4088
|
|
154
154
|
clearskies/handlers/write.py,sha256=VduGtjnFMQOvo3l0t-tUP4PExPJ9JEpuziHsquF08rE,9344
|
|
155
155
|
clearskies/input_outputs/__init__.py,sha256=mQWL-u41FRTrPGuHe8FhLmcHjAEaUxjFwUf7RgDcbAs,182
|
|
156
|
-
clearskies/input_outputs/cli.py,sha256=
|
|
156
|
+
clearskies/input_outputs/cli.py,sha256=F54wues9cNESE8FhQP3mDWrgrZyFouDIN-ZZ3-KJjks,6258
|
|
157
157
|
clearskies/input_outputs/exceptions/__init__.py,sha256=bc5Tc1XBZnqA1fKbk7pk5hyx102vqx3sDE19E03xGk4,82
|
|
158
158
|
clearskies/input_outputs/exceptions/cli_input_error.py,sha256=kOFU8aLTLmeTL_AKDshxMu8_ufildg6p8ndhE1xHfb0,41
|
|
159
159
|
clearskies/input_outputs/exceptions/cli_not_found.py,sha256=JBBuZA9ZwdkPhd3a0qaGgEPQrxh1fehy4R3ZaV2gWXU,39
|
|
160
160
|
clearskies/input_outputs/input_output.py,sha256=vYKn9SE5erS4LuOhhAsXqaOEsGXwZ1NJ4v85KN1Xg6A,4501
|
|
161
|
-
clearskies/input_outputs/wsgi.py,sha256=
|
|
161
|
+
clearskies/input_outputs/wsgi.py,sha256=9p82eJP5FUAI6jbIojvydG3_9gncX7vcUACQMyRN9x4,3142
|
|
162
162
|
clearskies/input_requirements/__init__.py,sha256=MpR-oEn1aLHdWHI60Y0QN2q6FyqqySCxcEaHR51aKpk,602
|
|
163
163
|
clearskies/input_requirements/maximum_length.py,sha256=7hdGVq914BtZQwiGOLOU-t5QTDNQtCPT4TOnYTUo3Wo,689
|
|
164
164
|
clearskies/input_requirements/minimum_length.py,sha256=qSpLjNBu6AKRoBZi3jvCMYKsHwsknbkUk86C8CMIOEU,987
|
|
@@ -192,7 +192,7 @@ clearskies/tests/simple_api/models/__init__.py,sha256=nUA0W6fgXw_Bxa9CudkaDkC80t
|
|
|
192
192
|
clearskies/tests/simple_api/models/status.py,sha256=PEhPbaQh5qdUNHp8O0gz91LOLENAEBtqSaHxUPXchaM,699
|
|
193
193
|
clearskies/tests/simple_api/models/user.py,sha256=5_P4Tp1tTdX7PkMJ__epPM5MA7JAeVYGas69vcWloLc,819
|
|
194
194
|
clearskies/tests/simple_api/users_api.py,sha256=KYXCgEofDxHeRdQK67txN5oYUPvxxmB8JTku7L-apk4,2344
|
|
195
|
-
clear_skies-1.19.
|
|
196
|
-
clear_skies-1.19.
|
|
197
|
-
clear_skies-1.19.
|
|
198
|
-
clear_skies-1.19.
|
|
195
|
+
clear_skies-1.19.2.dist-info/LICENSE,sha256=3Ehd0g3YOpCj8sqj0Xjq5qbOtjjgk9qzhhD9YjRQgOA,1053
|
|
196
|
+
clear_skies-1.19.2.dist-info/METADATA,sha256=oViYadXM8eLgTlXMKz7jhbRDUbWB2gBwxtztzicv9ZA,1366
|
|
197
|
+
clear_skies-1.19.2.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
|
|
198
|
+
clear_skies-1.19.2.dist-info/RECORD,,
|
|
@@ -98,7 +98,15 @@ class BelongsTo(String):
|
|
|
98
98
|
return integer_check
|
|
99
99
|
parent_models = self.parent_models
|
|
100
100
|
id_column_name = parent_models.get_id_column_name()
|
|
101
|
-
|
|
101
|
+
matching_parents = parent_models.where(f"{id_column_name}={value}")
|
|
102
|
+
input_output = self.di.build("input_output", cache=True)
|
|
103
|
+
matching_parents = matching_parents.where_for_request(
|
|
104
|
+
matching_parents,
|
|
105
|
+
input_output.routing_data(),
|
|
106
|
+
input_output.get_authorization_data(),
|
|
107
|
+
input_output,
|
|
108
|
+
)
|
|
109
|
+
if not len(matching_parents):
|
|
102
110
|
return f"Invalid selection for {self.name}: record does not exist"
|
|
103
111
|
return ""
|
|
104
112
|
|
|
@@ -2,9 +2,15 @@ from .datetime import DateTime
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
class Created(DateTime):
|
|
5
|
-
|
|
5
|
+
my_configs = [
|
|
6
|
+
"date_format",
|
|
7
|
+
"default_date",
|
|
8
|
+
"utc",
|
|
9
|
+
]
|
|
10
|
+
|
|
11
|
+
def __init__(self, di, datetime):
|
|
6
12
|
super().__init__(di)
|
|
7
|
-
self.
|
|
13
|
+
self.datetime = datetime
|
|
8
14
|
|
|
9
15
|
@property
|
|
10
16
|
def is_writeable(self):
|
|
@@ -13,4 +19,8 @@ class Created(DateTime):
|
|
|
13
19
|
def pre_save(self, data, model):
|
|
14
20
|
if model.exists:
|
|
15
21
|
return data
|
|
16
|
-
|
|
22
|
+
if self.config("utc", silent=True):
|
|
23
|
+
now = self.datetime.datetime.now(self.datetime.timezone.utc)
|
|
24
|
+
else:
|
|
25
|
+
now = self.datetime.datetime.now()
|
|
26
|
+
return {**data, self.name: now}
|
|
@@ -2,9 +2,15 @@ from .datetime_micro import DateTimeMicro
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
class CreatedMicro(DateTimeMicro):
|
|
5
|
-
|
|
5
|
+
my_configs = [
|
|
6
|
+
"date_format",
|
|
7
|
+
"default_date",
|
|
8
|
+
"utc",
|
|
9
|
+
]
|
|
10
|
+
|
|
11
|
+
def __init__(self, di, datetime):
|
|
6
12
|
super().__init__(di)
|
|
7
|
-
self.
|
|
13
|
+
self.datetime = datetime
|
|
8
14
|
|
|
9
15
|
@property
|
|
10
16
|
def is_writeable(self):
|
|
@@ -13,4 +19,8 @@ class CreatedMicro(DateTimeMicro):
|
|
|
13
19
|
def pre_save(self, data, model):
|
|
14
20
|
if model.exists:
|
|
15
21
|
return data
|
|
16
|
-
|
|
22
|
+
if self.config("utc", silent=True):
|
|
23
|
+
now = self.datetime.datetime.now(self.datetime.timezone.utc)
|
|
24
|
+
else:
|
|
25
|
+
now = self.datetime.datetime.now()
|
|
26
|
+
return {**data, self.name: now}
|
|
@@ -2,13 +2,23 @@ from .datetime import DateTime
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
class Updated(DateTime):
|
|
5
|
-
|
|
5
|
+
my_configs = [
|
|
6
|
+
"date_format",
|
|
7
|
+
"default_date",
|
|
8
|
+
"utc",
|
|
9
|
+
]
|
|
10
|
+
|
|
11
|
+
def __init__(self, di, datetime):
|
|
6
12
|
super().__init__(di)
|
|
7
|
-
self.
|
|
13
|
+
self.datetime = datetime
|
|
8
14
|
|
|
9
15
|
@property
|
|
10
16
|
def is_writeable(self):
|
|
11
17
|
return False
|
|
12
18
|
|
|
13
19
|
def pre_save(self, data, model):
|
|
14
|
-
|
|
20
|
+
if self.config("utc", silent=True):
|
|
21
|
+
now = self.datetime.datetime.now(self.datetime.timezone.utc)
|
|
22
|
+
else:
|
|
23
|
+
now = self.datetime.datetime.now()
|
|
24
|
+
return {**data, self.name: now}
|
|
@@ -2,13 +2,23 @@ from .datetime_micro import DateTimeMicro
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
class UpdatedMicro(DateTimeMicro):
|
|
5
|
-
|
|
5
|
+
my_configs = [
|
|
6
|
+
"date_format",
|
|
7
|
+
"default_date",
|
|
8
|
+
"utc",
|
|
9
|
+
]
|
|
10
|
+
|
|
11
|
+
def __init__(self, di, datetime):
|
|
6
12
|
super().__init__(di)
|
|
7
|
-
self.
|
|
13
|
+
self.datetime = datetime
|
|
8
14
|
|
|
9
15
|
@property
|
|
10
16
|
def is_writeable(self):
|
|
11
17
|
return False
|
|
12
18
|
|
|
13
19
|
def pre_save(self, data, model):
|
|
14
|
-
|
|
20
|
+
if self.config("utc", silent=True):
|
|
21
|
+
now = self.datetime.datetime.now(self.datetime.timezone.utc)
|
|
22
|
+
else:
|
|
23
|
+
now = self.datetime.datetime.now()
|
|
24
|
+
return {**data, self.name: now}
|
clearskies/input_outputs/cli.py
CHANGED
|
@@ -21,7 +21,7 @@ class CLI:
|
|
|
21
21
|
self._request_method = None
|
|
22
22
|
self._parse_args(self._sys.argv)
|
|
23
23
|
|
|
24
|
-
def respond(self, response, status_code):
|
|
24
|
+
def respond(self, response, status_code=200):
|
|
25
25
|
if status_code == 404:
|
|
26
26
|
raise exceptions.CLINotFound()
|
|
27
27
|
if status_code != 200:
|
clearskies/input_outputs/wsgi.py
CHANGED
|
@@ -21,7 +21,7 @@ class WSGI(InputOutput):
|
|
|
21
21
|
def _from_environment(self, key):
|
|
22
22
|
return self._environment[key] if key in self._environment else ""
|
|
23
23
|
|
|
24
|
-
def respond(self, body, status_code):
|
|
24
|
+
def respond(self, body, status_code=200):
|
|
25
25
|
if not self.has_header("content-type"):
|
|
26
26
|
self.set_header("content-type", "application/json; charset=UTF-8")
|
|
27
27
|
|
|
File without changes
|
|
File without changes
|