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

@@ -0,0 +1,74 @@
1
+ Metadata-Version: 2.4
2
+ Name: clear-skies
3
+ Version: 2.0.6
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: secrets
26
+ Requires-Dist: akeyless-cloud-id<0.3.0,>=0.2.3; extra == 'secrets'
27
+ Requires-Dist: akeyless<5.0.0,>=4.0.0; extra == 'secrets'
28
+ Description-Content-Type: text/markdown
29
+
30
+ # clearskies
31
+
32
+ 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.
33
+
34
+ ## Installation
35
+
36
+ ```bash
37
+ uv add clear-skies
38
+ ```
39
+
40
+ or
41
+
42
+ ```bash
43
+ pip install clear-skies
44
+ ```
45
+
46
+ or
47
+
48
+ ```bash
49
+ pipenv install clear-skies
50
+ ```
51
+
52
+ or
53
+
54
+ ```bash
55
+ poetry add clear-skies
56
+ ```
57
+
58
+ ## Development
59
+
60
+ To set up your development environment with pre-commit hooks:
61
+
62
+ ```bash
63
+ # Install uv if not already installed
64
+ pip install uv
65
+
66
+ # Create a virtual environment and install all dependencies (including dev)
67
+ uv sync
68
+
69
+ # Install pre-commit hooks
70
+ uv run pre-commit install
71
+
72
+ # Optionally, run pre-commit on all files
73
+ uv run pre-commit run --all-files
74
+ ```
@@ -1,5 +1,19 @@
1
1
  clearskies/__init__.py,sha256=pvReM1OEkMlXGPR56eNUq1DDantH9ds9szCXI9O-wOQ,1123
2
2
  clearskies/action.py,sha256=x_T05XaC0m-BYPZWaSR94XbE7T5ZK1vRtSfEszfZuDg,121
3
+ clearskies/column.py,sha256=_VkvfD_6d4brTkChUbevJe9e7sla8ovsiJ5cH1evoH4,52070
4
+ clearskies/configurable.py,sha256=FFkKwlQk17KOLnZiTsTF3hrCu2WxRSuuddNNhz9aySY,3049
5
+ clearskies/decorators.py,sha256=I91l4Iwe2swzkZPWUWywmIV2LfTBlw9IWmUfspKm3yY,1040
6
+ clearskies/end.py,sha256=Z4C9n7OvBky_640oJ8d19jIr_ap1iqjGJqqO6s_zF5g,8919
7
+ clearskies/endpoint.py,sha256=6ihZzygVvGnBkl7IExoLbiiEPza15ULsFVtgFimZDUQ,49062
8
+ clearskies/endpoint_group.py,sha256=bKnw6d6AHBGqz7jrD56gSxDgwFwtHNOPpjnP0julohM,12528
9
+ clearskies/environment.py,sha256=LV7XztYYUZhaL8zWXi2EC-u6DLrCPxJTeUzmCy7p-ZA,3703
10
+ clearskies/model.py,sha256=6ZJoWNKzjsQFvgXEaXybrO0HaaknoSkKYNYO_i0Ep0k,77189
11
+ clearskies/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
+ clearskies/schema.py,sha256=9S0RuFBiydsDy4kATy2BBsXJ9aWHILW0ja_q9F4kxb0,2872
13
+ clearskies/security_header.py,sha256=suV3PMGFFJzMIsfDiT4t1sArkLVGzepyoftY0ddBWkM,431
14
+ clearskies/test_base.py,sha256=Nw6qwsPMOx-QT_6wXn6f9P4BcA7OeGrs83IC2naNMYY,205
15
+ clearskies/typing.py,sha256=Kme9es5c_lw4qQCbCL7lKXtDemVl0_qBy7jxKIu4yyg,378
16
+ clearskies/validator.py,sha256=nGFwe74LMJnEO7r2mgwd_V25bLpxUDH7IMolm-zk-3w,1332
3
17
  clearskies/authentication/__init__.py,sha256=MxXNCWhKbha7TPu_MAyssfTdOCEDSNBwzshEHx8gfHo,525
4
18
  clearskies/authentication/authentication.py,sha256=N-g2qNDGuJaSlMwc_SRwsjAuqOMLI2nKfUzSCF7HOFo,1240
5
19
  clearskies/authentication/authorization.py,sha256=3XEOUlQx9XeRPpNEk4GCa-xWafrz-3Xd0T1PCSFuVxY,570
@@ -8,6 +22,7 @@ clearskies/authentication/jwks.py,sha256=V_Kgcb0peoPRqEej-Ii1GiPF3qoed_ub0nuc_Rx
8
22
  clearskies/authentication/public.py,sha256=GSNl4X4fnB25BZoXSo8nqL0iZCa9rzfvPfIsJ2Y34B4,84
9
23
  clearskies/authentication/secret_bearer.py,sha256=JoGBD2s7MubidFi1L0hyB_A4V3w5n1LKsokLiT44fBc,17590
10
24
  clearskies/autodoc/__init__.py,sha256=JRUAmd0he8iGlgiZvxewLMIXJqnOFEdvlaKAtHpC2lo,124
25
+ clearskies/autodoc/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
26
  clearskies/autodoc/formats/__init__.py,sha256=3rhoLKmEwT6PljaHvOl9qdeMIXyD7PQBZbqZKy5Mb5I,56
12
27
  clearskies/autodoc/formats/oai3_json/__init__.py,sha256=tbbOZWkX9ZWj4BM3arHrlmqy4ZrScmIv2bazadbQt1w,142
13
28
  clearskies/autodoc/formats/oai3_json/oai3_json.py,sha256=-LViw86zpPAgAEnC42KuobccvFATRg-j8ZEd8BiTYFA,2964
@@ -15,13 +30,12 @@ clearskies/autodoc/formats/oai3_json/oai3_schema_resolver.py,sha256=5gifJ36dyWEe
15
30
  clearskies/autodoc/formats/oai3_json/parameter.py,sha256=h9bHXxqJhUc7NRQCZF6RnIPuaY9BA6V_xzYNnsplXlc,1110
16
31
  clearskies/autodoc/formats/oai3_json/request.py,sha256=WHEWQvhuhkw82V4YS6GwDN4y8Qy7QDSn9awJEhwLmWU,2939
17
32
  clearskies/autodoc/formats/oai3_json/response.py,sha256=ou06oFQtaAR70qIvIoAe4QzohWiACzhCwlW73oM5Dvg,778
33
+ clearskies/autodoc/formats/oai3_json/test.json,sha256=DdMvSUbaTEAyWtX_RDxEFR82kK9pCCTeFUghQwHjB3s,59848
18
34
  clearskies/autodoc/formats/oai3_json/schema/__init__.py,sha256=VJiDueMdGfJoVQVt9SXIE_-uPghSXtCzpTXuqPaaiRw,173
19
35
  clearskies/autodoc/formats/oai3_json/schema/array.py,sha256=1VOrMC_i1JSu1Gw2cqQ7uVDhSk-xNm25io7oBQL9PZM,310
20
36
  clearskies/autodoc/formats/oai3_json/schema/default.py,sha256=BhwQebdIaK6rrATu6yZxPU3bqVmd4LFKTTlydJVl644,484
21
37
  clearskies/autodoc/formats/oai3_json/schema/enum.py,sha256=7qkpYWXPwbkgkoHPAowMIHJeGNb81qQmTmIIdc5yJbA,265
22
38
  clearskies/autodoc/formats/oai3_json/schema/object.py,sha256=HkLg3A6cTwV9h3QiXPpoVG7bH8U-aKFzp7nyGClGBgQ,1073
23
- clearskies/autodoc/formats/oai3_json/test.json,sha256=DdMvSUbaTEAyWtX_RDxEFR82kK9pCCTeFUghQwHjB3s,59848
24
- clearskies/autodoc/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
39
  clearskies/autodoc/request/__init__.py,sha256=-L1hZ70QKn0yzXJtpQS741lbcYXA4i0xQnkebKDjzsA,303
26
40
  clearskies/autodoc/request/header.py,sha256=TCeRyFFqcgNN8o9vEmc0JTxs7vRlMHnlhs7zsYfShRM,104
27
41
  clearskies/autodoc/request/json_body.py,sha256=qURg3_4fQA9ZUVeR_T0g-RZ8seFIrI0ME-s4PzosfGE,108
@@ -52,7 +66,6 @@ clearskies/backends/backend.py,sha256=xjQGzLtj4de7rVp1m_Aa_HdrHwQUdg-P_32Bb0y2tq
52
66
  clearskies/backends/cursor_backend.py,sha256=lMnkHATU2Fxr0ihgrVnvI9IVnUPxNfjzpkdJIok2mXY,14360
53
67
  clearskies/backends/memory_backend.py,sha256=fXgbFcTvbZeKHs4CsI_yNsofHSjWqZqY9QWI7uJzVws,34260
54
68
  clearskies/backends/secrets_backend.py,sha256=r1k7YfZ7AKMsN2wWwx939QKeYWgh6PVkdiKayzPBDv0,4275
55
- clearskies/column.py,sha256=_VkvfD_6d4brTkChUbevJe9e7sla8ovsiJ5cH1evoH4,52070
56
69
  clearskies/columns/__init__.py,sha256=a__-1hv-aMV3RU0Sd-BEkfItSJaG51EF2VeRQoTdka8,1990
57
70
  clearskies/columns/audit.py,sha256=0BBpBFsxz6JBWDPoyCb73EDJnN95pj1TXtTZqbT1qKU,7628
58
71
  clearskies/columns/belongs_to_id.py,sha256=10yImEA5xgA547kPIfRajcNwlCfXF9QTvai0-fBFxG0,17828
@@ -77,7 +90,7 @@ clearskies/columns/has_many.py,sha256=Frd1LQRiAyh0o2GVrJBlztuaAOAAF_7FzgDt0ZyuRP
77
90
  clearskies/columns/has_many_self.py,sha256=9EG4A7i3W4atOsHPbEKIahoU0QgWohbRFIA29dBOSxg,2403
78
91
  clearskies/columns/has_one.py,sha256=8cwfNmAFO1DdfBsZ1scpc3LwLoSUHWR_zPn4T-DN0Mg,396
79
92
  clearskies/columns/integer.py,sha256=z4o0t13h7MC9vGxsr3fo0_TLHHSZB2uSqE_QDDUakt8,4650
80
- clearskies/columns/json.py,sha256=4uKs1fu-3ulnW-6iwb6GfvEEuv5uXeWgmiNC7R40M98,3565
93
+ clearskies/columns/json.py,sha256=oJc6UZcOCJAPrIwecYVQ69Mi7FvX8w9seYiBdk2YtTw,3723
81
94
  clearskies/columns/many_to_many_ids.py,sha256=kkLfb14EKInkkV5xVM9sXTgf0PLmIQlDOJNRIRlzLCY,14265
82
95
  clearskies/columns/many_to_many_ids_with_data.py,sha256=FhXPvAtHtBCne-bcwURQplm374t7tVLcEIicb40LpYg,12017
83
96
  clearskies/columns/many_to_many_models.py,sha256=CMrkyja0FWXh5BwlZMLZ5ltl6I5Avpi3K78C3SOgV40,7345
@@ -105,7 +118,7 @@ clearskies/configs/config.py,sha256=Mw9wnPzEekHGfmNFH9f2vJ3BOPx3l1ktxwZc95flyQg,
105
118
  clearskies/configs/datetime.py,sha256=jRYXwLeTUqh8FNwWq_0yYoSH8YU9NEhYhuQScr56nTg,653
106
119
  clearskies/configs/datetime_or_callable.py,sha256=81YCDk0g5cIxdXxgem1Ei6m7gUI213Cfryp3GyBfpD4,799
107
120
  clearskies/configs/endpoint.py,sha256=NEDthtdPzejAot7yzUjC01PvQJR9BIyk5YnWXCi1w9I,759
108
- clearskies/configs/endpoint_list.py,sha256=I_o5T46XT-I-tbQODJbpCF9LkgEccOz97mYFZuwjx4M,1144
121
+ clearskies/configs/endpoint_list.py,sha256=9xtXmZpdOh7uk9Sm3MF9xi1_N-n2DZ-F4s0zrNfEKng,1200
109
122
  clearskies/configs/float.py,sha256=3870-DkoXCyeOSwUGa69BzhG4XI_tNfei5cX-q1b1UQ,585
110
123
  clearskies/configs/float_or_callable.py,sha256=lIOg20Xw0AOB0k3I7f0b98srVgMWQKcyM4aWRT0tUI4,708
111
124
  clearskies/configs/integer.py,sha256=d6uoQaUoE01rrWOsxYl1vHG_raUFmB0AUOgoCWwOVC0,584
@@ -136,17 +149,17 @@ clearskies/configs/url.py,sha256=dx02oiwt8ua5Kv30dJFE0ekJ6Zgz3lcPq9-UNIblI9s,775
136
149
  clearskies/configs/validators.py,sha256=aAvf5dgncR8OP7_M7QUNhsHau4wAdPiXw9wNARRAYNY,1346
137
150
  clearskies/configs/writeable_model_column.py,sha256=ZwroRcvmNznggtNMSZiAmKAvllcV9LDWZSB-J330Lxg,319
138
151
  clearskies/configs/writeable_model_columns.py,sha256=D8E4aQRg1MX8-TM8lkyrWE-G_YoX2eerX4KLszgk0hA,323
139
- clearskies/configurable.py,sha256=FFkKwlQk17KOLnZiTsTF3hrCu2WxRSuuddNNhz9aySY,3049
140
152
  clearskies/contexts/__init__.py,sha256=f7XVUq2UKlDH6fjmcUWk6lbe9p_OaGpZ5ZjM6CuwTGQ,247
141
153
  clearskies/contexts/cli.py,sha256=Hzh8vgkLoCn2Zx8AQIoLen4fMDPIvZqtSLfEcg_CPKc,2639
142
154
  clearskies/contexts/context.py,sha256=S1iqSfV2gPnXz20-8AJU9QWh6IKa56jEV11g99iZO-o,3663
143
155
  clearskies/contexts/wsgi.py,sha256=rJCfBZhyvPyRduyY9-ctvoQMcQXwRqRGwldidiUQWBY,3111
144
156
  clearskies/contexts/wsgi_ref.py,sha256=BnV2hhusu5Hkd1cFLGXEn7COWS23u1NH9BDgAWlgX_M,2747
145
- clearskies/decorators.py,sha256=I91l4Iwe2swzkZPWUWywmIV2LfTBlw9IWmUfspKm3yY,1040
146
157
  clearskies/di/__init__.py,sha256=uJ1NkACEIaot7ALr3M6vQ55Pe9By_s_1z52ssAnw28E,466
147
158
  clearskies/di/additional_config.py,sha256=65INxw8aqTZQsyaKPj-aQmd6FBe4_4DwibXGgWYBy14,5139
148
159
  clearskies/di/additional_config_auto_import.py,sha256=XYw0Kcnp6hp-ee-c0YjiATwJvRb2E82xk9PuoX9dGRY,758
149
160
  clearskies/di/di.py,sha256=USmVkNJ7D5vDfQZiWaJ0M9hBNMZFyo8rkL_m3K2I35w,45433
161
+ clearskies/di/injectable.py,sha256=TTgqhx494470I61-88BUQmHmevfat-wXVseKl8pQOEk,852
162
+ clearskies/di/injectable_properties.py,sha256=yJP0J7l7tjG2soyXtrfDgktE7M8tQHaP-55Cmtq0b7M,6466
150
163
  clearskies/di/inject/__init__.py,sha256=plEkWId-VyhvqX5KM2HhdCqi7_ZJzPmFz69cPAo812Y,643
151
164
  clearskies/di/inject/by_class.py,sha256=dUA_ZseLZWT30wnkg272rWwe5FzUpr0gCMMQP_HFahc,796
152
165
  clearskies/di/inject/by_name.py,sha256=oEfzeotUXPbUAiBrkE7i19nD2ISk59EEwCH3pcgSmqA,639
@@ -158,17 +171,12 @@ clearskies/di/inject/requests.py,sha256=GCfPWEZKrL7uergQB-ZYF235GKG4FAYy5WngRhIO
158
171
  clearskies/di/inject/secrets.py,sha256=zK7ZJJwZS4l13OVlbBs8ESL8yMxa6jDa4_tiLUvUTdY,418
159
172
  clearskies/di/inject/utcnow.py,sha256=3OAzR82k0yEfQ65bJ-4Q7gCZH-Y_viucPJQtfcHu_AA,365
160
173
  clearskies/di/inject/uuid.py,sha256=ncXvVNevj6CCwxh1r1IGojEPZaOuHnRjYT7B69RTVhs,400
161
- clearskies/di/injectable.py,sha256=TTgqhx494470I61-88BUQmHmevfat-wXVseKl8pQOEk,852
162
- clearskies/di/injectable_properties.py,sha256=yJP0J7l7tjG2soyXtrfDgktE7M8tQHaP-55Cmtq0b7M,6466
163
174
  clearskies/di/test_module/__init__.py,sha256=7YHQF7JHP0FdI7GdEGANSZ_t1EISQYhUNm1wqOg0NKw,88
164
- clearskies/di/test_module/another_module/__init__.py,sha256=8SRmHPDepLKGWTUSc1ucDF6U8mJPsNDsBDmBQCpzPWo,35
165
175
  clearskies/di/test_module/module_class.py,sha256=I_-wnMuHfbsvti-7d2Z4bXnr6deo__uvww9nds9qrlE,46
166
- clearskies/end.py,sha256=Z4C9n7OvBky_640oJ8d19jIr_ap1iqjGJqqO6s_zF5g,8919
167
- clearskies/endpoint.py,sha256=6ihZzygVvGnBkl7IExoLbiiEPza15ULsFVtgFimZDUQ,49062
168
- clearskies/endpoint_group.py,sha256=evY4LbxbDj2yc_f3U4XRsci-GpWMrxOeCdoSegPSQ1o,12598
176
+ clearskies/di/test_module/another_module/__init__.py,sha256=8SRmHPDepLKGWTUSc1ucDF6U8mJPsNDsBDmBQCpzPWo,35
169
177
  clearskies/endpoints/__init__.py,sha256=payWNEivwmxsT-pWqNkzHisSbyNjB7oq7_I5QIQL_XA,750
170
178
  clearskies/endpoints/advanced_search.py,sha256=c1fj81nohHGqe56t00o6kLN3XIh3kfy-aKy_C1pxwgw,21835
171
- clearskies/endpoints/callable.py,sha256=LBakZeMlhEgdB1rCgCb3vuvMYTqJr5j2l_8EdF1x3Ag,13948
179
+ clearskies/endpoints/callable.py,sha256=3YrO9voTmwtWlrGTqu8B64sdgEn7eXElsb3KLk-reV4,13960
172
180
  clearskies/endpoints/create.py,sha256=mk57WLexX_raAdHJJNGAYgydgkud_3VvcaMWTj8jOlQ,9015
173
181
  clearskies/endpoints/delete.py,sha256=ZKBsmpx2QC4hVKWyXkdq3tkW-BkH9uvgyTQAfuS4Bzc,5278
174
182
  clearskies/endpoints/get.py,sha256=kV7dLrj3Ph06hhyvmestqydKoNnp_32nFmxvjnh-fVc,10132
@@ -178,7 +186,6 @@ clearskies/endpoints/restful_api.py,sha256=FjNYg4-qeDjjOSc8QPPFQ74SW4b_84zyQ38ck
178
186
  clearskies/endpoints/schema.py,sha256=aMFd8WMRUD_rv3bkEbfPh31u0tAW9bchF0SVhHtqTW8,7418
179
187
  clearskies/endpoints/simple_search.py,sha256=ruifcR3efacuWm-mD3Lratunl122tHmv9TW7HVgX2P0,9710
180
188
  clearskies/endpoints/update.py,sha256=4c26WDA9Pv8p5xOosK76vxENUxXVahY3H0y1yySfUks,7855
181
- clearskies/environment.py,sha256=LV7XztYYUZhaL8zWXi2EC-u6DLrCPxJTeUzmCy7p-ZA,3703
182
189
  clearskies/exceptions/__init__.py,sha256=eFCYGp2Pk21kKibGJvJfh2tcn_oxm4wCkR-SbWUp_EI,691
183
190
  clearskies/exceptions/authentication.py,sha256=VlNS0Aq2_6LbG0jiE8jULpS54jNW8a8px0gPrK3EZCc,42
184
191
  clearskies/exceptions/authorization.py,sha256=14JuU5zLEf2sv82VNxsJt7dGSwfP-t3Pvf_6QZuacfA,41
@@ -194,31 +201,27 @@ clearskies/functional/string.py,sha256=ZnkOjx8nxqZq2TV0CIb-Kz4onGoyekTX_WkLJM6XT
194
201
  clearskies/functional/validations.py,sha256=cPYOTwWomlQrPvqPP_Jdlds7zZ5H9GABCP5pnGzC9T4,2821
195
202
  clearskies/input_outputs/__init__.py,sha256=9qeKJULw3MQ3zqkgBZice5d7qqRgsP3y-wkhWO2Y9vM,362
196
203
  clearskies/input_outputs/cli.py,sha256=_r9TNj0Z_8gDw0U_NJECuyLE89CxrHxVpXG6wT_Tt0w,6025
197
- clearskies/input_outputs/exceptions/__init__.py,sha256=3KiM3KaMYEKoToqCCQ4_no2n0W5ROqeBC0sI2Ix4P6w,82
198
- clearskies/input_outputs/exceptions/cli_input_error.py,sha256=kOFU8aLTLmeTL_AKDshxMu8_ufildg6p8ndhE1xHfb0,41
199
- clearskies/input_outputs/exceptions/cli_not_found.py,sha256=JBBuZA9ZwdkPhd3a0qaGgEPQrxh1fehy4R3ZaV2gWXU,39
200
204
  clearskies/input_outputs/headers.py,sha256=WjDwV3RppIpPtt5QdgdjYJfIO9ufCEpwJLEn4vLypZI,1616
201
205
  clearskies/input_outputs/input_output.py,sha256=W5h8a9XFEqwi3h6v17okblz8sOozUj-mMt4JQyTQUJM,5963
202
206
  clearskies/input_outputs/programmatic.py,sha256=gfsNFIfiF5cvxi1aS9SgArcKYUgkL5gyxjCMQLwgivY,1711
203
207
  clearskies/input_outputs/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
204
208
  clearskies/input_outputs/wsgi.py,sha256=94tgWxiwpwvJA9G4nG-hCHteg0pq9pIDCVhnheZuAQc,2544
205
- clearskies/model.py,sha256=6ZJoWNKzjsQFvgXEaXybrO0HaaknoSkKYNYO_i0Ep0k,77189
206
- clearskies/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
209
+ clearskies/input_outputs/exceptions/__init__.py,sha256=3KiM3KaMYEKoToqCCQ4_no2n0W5ROqeBC0sI2Ix4P6w,82
210
+ clearskies/input_outputs/exceptions/cli_input_error.py,sha256=kOFU8aLTLmeTL_AKDshxMu8_ufildg6p8ndhE1xHfb0,41
211
+ clearskies/input_outputs/exceptions/cli_not_found.py,sha256=JBBuZA9ZwdkPhd3a0qaGgEPQrxh1fehy4R3ZaV2gWXU,39
207
212
  clearskies/query/__init__.py,sha256=ISF80_cG3rd574sRTdKKPxAdlSjtQh_ClXKKs_MSSSo,277
208
213
  clearskies/query/condition.py,sha256=9RJrYya1Kfzx0L_BMDKQhYkN9dB7NAq5kRK5mz51YdY,8624
209
214
  clearskies/query/join.py,sha256=4lrDUQzck7klKY_VYkc4SVK95SVwyy3SVTvasnsAEyc,4713
210
215
  clearskies/query/query.py,sha256=t9tV67CeI6I1u5Uhu6KPT_qiFjvLc3GnwVM2acbXuAU,6088
211
216
  clearskies/query/sort.py,sha256=c-EtIkjg3kLjwSTdXD7sfyx-mNUhAepUV-2izprh3iY,754
212
- clearskies/schema.py,sha256=9S0RuFBiydsDy4kATy2BBsXJ9aWHILW0ja_q9F4kxb0,2872
213
217
  clearskies/secrets/__init__.py,sha256=WauemayzKCr-guvMu6wCL4hQUIbkDJFuNKEm8Rd6cUs,136
218
+ clearskies/secrets/akeyless.py,sha256=IUI4RYD-XdNQvyhpuElnw_O74ZY4tJUUtCHmd0dArUI,7158
219
+ clearskies/secrets/secrets.py,sha256=TYN0T7XjmvETtSacDKEkyGGO9kDFCoPl5A7FNkvyNj4,1593
214
220
  clearskies/secrets/additional_configs/__init__.py,sha256=cFCrbtKF5nuR061S2y1iKZp349x-y8Srdwe3VZbfSFU,1119
215
221
  clearskies/secrets/additional_configs/mysql_connection_dynamic_producer.py,sha256=CnIiXLVQdUnUey3dbCTXuNNP7Mmw1gjjNjZiBtfgGto,2757
216
222
  clearskies/secrets/additional_configs/mysql_connection_dynamic_producer_via_ssh_cert_bastion.py,sha256=N8ruxrTNhvYlp3cYXq6V78KPPr4n40LM7QoXHvD8IZg,6235
217
- clearskies/secrets/akeyless.py,sha256=IUI4RYD-XdNQvyhpuElnw_O74ZY4tJUUtCHmd0dArUI,7158
218
223
  clearskies/secrets/exceptions/__init__.py,sha256=j-SLHD-DL0CT4cZXibD9kXHk63JEl_UKX6xL_nq1EfE,32
219
224
  clearskies/secrets/exceptions/not_found.py,sha256=_lZwovDrd18dUHDop5pF4mhexBPNr126xF2gOLA2-EA,36
220
- clearskies/secrets/secrets.py,sha256=TYN0T7XjmvETtSacDKEkyGGO9kDFCoPl5A7FNkvyNj4,1593
221
- clearskies/security_header.py,sha256=suV3PMGFFJzMIsfDiT4t1sArkLVGzepyoftY0ddBWkM,431
222
225
  clearskies/security_headers/__init__.py,sha256=JUpc4Y8dNBinDQAkP7OOABR7N787-lRR23boSWmY6Us,285
223
226
  clearskies/security_headers/cache_control.py,sha256=n_fcN4JPfHH8oCC6iSdBaDcAw-5JgPjZQWbD_lMg6qQ,2251
224
227
  clearskies/security_headers/cors.py,sha256=zhTLo1FiCwSTgDOYURz7RB0XqLeP456A8mcP_mHBd48,1831
@@ -226,9 +229,6 @@ clearskies/security_headers/csp.py,sha256=jA0ms1X6w52W86-RXcW6dblI_RL7DlrjKt57gc
226
229
  clearskies/security_headers/hsts.py,sha256=_2EjHgH-OdQ24NF4eWhIi71wcXz2u2K5Q1wwR4NOTe0,732
227
230
  clearskies/security_headers/x_content_type_options.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
228
231
  clearskies/security_headers/x_frame_options.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
229
- clearskies/test_base.py,sha256=Nw6qwsPMOx-QT_6wXn6f9P4BcA7OeGrs83IC2naNMYY,205
230
- clearskies/typing.py,sha256=Kme9es5c_lw4qQCbCL7lKXtDemVl0_qBy7jxKIu4yyg,378
231
- clearskies/validator.py,sha256=nGFwe74LMJnEO7r2mgwd_V25bLpxUDH7IMolm-zk-3w,1332
232
232
  clearskies/validators/__init__.py,sha256=Hz0L5Y7EkeK4Px6WcdQ3ku6VqUGpLHX0ZWwCpT1ts1U,1248
233
233
  clearskies/validators/after_column.py,sha256=6qFBodmcrVELDAdvc7w300RDIBFQlsgAmAIJ2-Gv6n4,2366
234
234
  clearskies/validators/before_column.py,sha256=fDXhgPwGvnjk1Xy6iwebE8q--BeD48uu3cVGpRGTSBc,528
@@ -245,7 +245,7 @@ clearskies/validators/minimum_value.py,sha256=Vz0e_9U5KYqBGqfrVBOtPiVtmNPWwFEGPA
245
245
  clearskies/validators/required.py,sha256=f8VE9sbvIorTIC0q_77DyDfDjAJYFJs-uTgJkAwLxX4,1362
246
246
  clearskies/validators/timedelta.py,sha256=nFEHefllfMZsguJoSdeWzaBsxBDZfMZoIdt5jZxeg0g,1932
247
247
  clearskies/validators/unique.py,sha256=DZA7dbLucYDShtr1bVP2pnmbzciIEMvYSrTjOKCQ4vM,1029
248
- clear_skies-2.0.4.dist-info/LICENSE,sha256=3Ehd0g3YOpCj8sqj0Xjq5qbOtjjgk9qzhhD9YjRQgOA,1053
249
- clear_skies-2.0.4.dist-info/METADATA,sha256=Yg6lHe70x40QvQ0qI29YvfirIi48-vv-WcHu7cQ-77A,1625
250
- clear_skies-2.0.4.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
251
- clear_skies-2.0.4.dist-info/RECORD,,
248
+ clear_skies-2.0.6.dist-info/METADATA,sha256=iAEVdgzoX18doFgGU4a1QBkLUd-312suknzwdUW7dzQ,2113
249
+ clear_skies-2.0.6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
250
+ clear_skies-2.0.6.dist-info/licenses/LICENSE,sha256=3Ehd0g3YOpCj8sqj0Xjq5qbOtjjgk9qzhhD9YjRQgOA,1053
251
+ clear_skies-2.0.6.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.1.3
2
+ Generator: hatchling 1.27.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -69,14 +69,16 @@ class Json(Column):
69
69
 
70
70
  """
71
71
 
72
+ setable = clearskies.configs.Any(default=None) # type: ignore
73
+ default = clearskies.configs.Any(default=None) # type: ignore
72
74
  is_searchable = configs.Boolean(default=False)
73
75
  _descriptor_config_map = None
74
76
 
75
77
  @clearskies.decorators.parameters_to_properties
76
78
  def __init__(
77
79
  self,
78
- default: dict[str, Any] | None = None,
79
- setable: dict[str, Any] | Callable[..., dict[str, Any]] | None = None,
80
+ default: dict[str, Any] | list[Any] | None = None,
81
+ setable: dict[str, Any] | list[Any] | Callable[..., dict[str, Any]] | None = None,
80
82
  is_readable: bool = True,
81
83
  is_writeable: bool = True,
82
84
  is_temporary: bool = False,
@@ -11,6 +11,7 @@ if TYPE_CHECKING:
11
11
  class EndpointList(config.Config):
12
12
  def __set__(self, instance, value: list[EndpointBase]):
13
13
  if not isinstance(value, list):
14
+ error_prefix = self._error_prefix(instance)
14
15
  raise TypeError(
15
16
  f"{error_prefix} attempt to set a value of type '{value.__class__.__name__}' to a parameter that requries a list of endpoints."
16
17
  )
@@ -240,8 +240,6 @@ class EndpointGroup(
240
240
  cors_header: SecurityHeader = None # type: ignore
241
241
  has_cors: bool = False
242
242
  endpoints_initialized = False
243
- external_casing = "snake_case"
244
- internal_casing = "snake_case"
245
243
 
246
244
  @clearskies.decorators.parameters_to_properties
247
245
  def __init__(
@@ -248,8 +248,8 @@ class Callable(Endpoint):
248
248
  model_class: type[clearskies.model.Model] | None = None,
249
249
  readable_column_names: list[str] = [],
250
250
  writeable_column_names: list[str] = [],
251
- input_schema: Schema | None = None,
252
- output_schema: Schema | None = None,
251
+ input_schema: type[Schema] | None = None,
252
+ output_schema: type[Schema] | None = None,
253
253
  input_validation_callable: CallableType | None = None,
254
254
  return_standard_response: bool = True,
255
255
  return_records: bool = False,
@@ -1,36 +0,0 @@
1
- Metadata-Version: 2.3
2
- Name: clear-skies
3
- Version: 2.0.4
4
- Summary: A framework for building backends in the cloud
5
- License: MIT
6
- Author: Conor Mancone
7
- Author-email: cmancone@gmail.com
8
- Requires-Python: >=3.11,<4.0
9
- Classifier: Development Status :: 5 - Production/Stable
10
- Classifier: Intended Audience :: Developers
11
- Classifier: License :: OSI Approved :: MIT License
12
- Classifier: Programming Language :: Python :: 3
13
- Classifier: Programming Language :: Python :: 3.11
14
- Classifier: Programming Language :: Python :: 3.12
15
- Classifier: Programming Language :: Python :: 3.13
16
- Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
17
- Provides-Extra: jwcrypto
18
- Provides-Extra: mysql
19
- Provides-Extra: secrets
20
- Requires-Dist: akeyless (>=4.0.0,<5.0.0) ; extra == "secrets"
21
- Requires-Dist: akeyless-cloud-id (>=0.2.3,<0.3.0) ; extra == "secrets"
22
- Requires-Dist: dateparser (>=1.1.8,<2.0.0)
23
- Requires-Dist: jwcrypto (>=1.5.6,<2.0.0) ; extra == "jwcrypto"
24
- Requires-Dist: pymysql (>=1.1.0,<2.0.0) ; extra == "mysql"
25
- Requires-Dist: requests (>=2.31.0,<3.0.0)
26
- Requires-Dist: typing-extensions (>=4.12.0,<5.0.0) ; python_version == "3.10"
27
- Requires-Dist: wrapt (>=1.16.0,<2.0.0)
28
- Project-URL: Repository, https://github.com/clearskies-py/clearskies
29
- Description-Content-Type: text/markdown
30
-
31
- # clearskies
32
-
33
- 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.
34
-
35
- [https://clearskies.info](https://clearskies.info)
36
-