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

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: clear-skies
3
- Version: 1.19.16
3
+ Version: 1.19.18
4
4
  Summary: A framework for building backends in the cloud
5
5
  Home-page: https://github.com/cmancone/clearskies
6
6
  License: MIT
@@ -46,7 +46,7 @@ clearskies/autodoc/schema/string.py,sha256=oxZPCxYYhWnNHdbtwD3QuniStbj8XbBBpDTFX
46
46
  clearskies/backends/__init__.py,sha256=3pvJw5dUnrqt7vyeBFjkHbycUEGkEpoYKxZoJwUVZO0,711
47
47
  clearskies/backends/api_backend.py,sha256=vcGYub4G3jLLstTDkMMnZkID9JQz-qHmKNapgde4gSc,8875
48
48
  clearskies/backends/backend.py,sha256=fkL-De0MUdzcS2JG_spSUQZIVL9oRFvaL6SP26JPpcI,7399
49
- clearskies/backends/cursor_backend.py,sha256=owuP4S2dBkEUcPAF5PbZAZZuBXrCoioYtf9ede3Su5Y,11181
49
+ clearskies/backends/cursor_backend.py,sha256=VntlPS6z6bnZOC3XRJ-WFf5gK3pFUhH_qJpnZn8hl9U,11278
50
50
  clearskies/backends/example_backend.py,sha256=jVpv0LZpNUEJGko0XqioLkHmZHbCW6M4YyNvzKlZcDw,1413
51
51
  clearskies/backends/file_backend.py,sha256=tByQdOX1pf6r9-6vRDqOnQ8teRYo0bEWk589qrg598w,1752
52
52
  clearskies/backends/json_backend.py,sha256=uDBqkekQadBm0BMoCVuzSPRB-5SjMTCDSAbuIqqwkF8,180
@@ -69,7 +69,7 @@ clearskies/column_types/created_by_user_agent.py,sha256=sSYDRrqSjsCwcYlhF_s9NO-i
69
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
- clearskies/column_types/email.py,sha256=jxNtAacyzMYOiTE4NiySo8fFqHlVMfTLq90FNHyv4SU,583
72
+ clearskies/column_types/email.py,sha256=qq0Yo_C3KxUqT68q2HWXocBBR4xwMqjxcIdgZRv218U,584
73
73
  clearskies/column_types/float.py,sha256=j8jJeBueSOusPtAFCWgLHYBncfLnqT1U7bh1zcAkYiA,1332
74
74
  clearskies/column_types/has_many.py,sha256=Z4oM1g2dQx6H9171c52FLC41nLryCOKmh51I75mYmmY,5895
75
75
  clearskies/column_types/integer.py,sha256=dGIluusPmhLRNg7PplOJLbQI2AXojqRBUHt8ekYWNVI,1386
@@ -150,8 +150,8 @@ clearskies/handlers/schema_helper.py,sha256=62644USvFlZu_6tT7rb-k6t_5J3Q0uZsJwP5
150
150
  clearskies/handlers/simple_routing.py,sha256=KpOSQK2_tTwrPblDmxAUpX-Fqts_Or_MLWGKOOkJnoo,9403
151
151
  clearskies/handlers/simple_routing_route.py,sha256=3U3dixEKuf-Xo88RQGH_grm1x79-px6idt1-xaLUSiY,8953
152
152
  clearskies/handlers/simple_search.py,sha256=bSfq8rzdqkBj-dTGUBSZ1EkfjzUWHID7mKD2xEf8VzQ,6165
153
- clearskies/handlers/update.py,sha256=VCZkoID7i5VHq78fkIpjbRdXQ4Z3IuXEE5dfC8z4RZI,4088
154
- clearskies/handlers/write.py,sha256=VduGtjnFMQOvo3l0t-tUP4PExPJ9JEpuziHsquF08rE,9344
153
+ clearskies/handlers/update.py,sha256=rx8HW87Pfh95e_9nEfKKnxfkh2HBlCUdYqVwljtXiJ8,4116
154
+ clearskies/handlers/write.py,sha256=Gu1w1PQ1F7tlqCqALorMRek3UH6IkViPIO195dxPd8k,9372
155
155
  clearskies/input_outputs/__init__.py,sha256=mQWL-u41FRTrPGuHe8FhLmcHjAEaUxjFwUf7RgDcbAs,182
156
156
  clearskies/input_outputs/cli.py,sha256=F54wues9cNESE8FhQP3mDWrgrZyFouDIN-ZZ3-KJjks,6258
157
157
  clearskies/input_outputs/exceptions/__init__.py,sha256=bc5Tc1XBZnqA1fKbk7pk5hyx102vqx3sDE19E03xGk4,82
@@ -199,7 +199,7 @@ clearskies/tests/simple_api/models/__init__.py,sha256=nUA0W6fgXw_Bxa9CudkaDkC80t
199
199
  clearskies/tests/simple_api/models/status.py,sha256=PEhPbaQh5qdUNHp8O0gz91LOLENAEBtqSaHxUPXchaM,699
200
200
  clearskies/tests/simple_api/models/user.py,sha256=5_P4Tp1tTdX7PkMJ__epPM5MA7JAeVYGas69vcWloLc,819
201
201
  clearskies/tests/simple_api/users_api.py,sha256=KYXCgEofDxHeRdQK67txN5oYUPvxxmB8JTku7L-apk4,2344
202
- clear_skies-1.19.16.dist-info/LICENSE,sha256=3Ehd0g3YOpCj8sqj0Xjq5qbOtjjgk9qzhhD9YjRQgOA,1053
203
- clear_skies-1.19.16.dist-info/METADATA,sha256=76OY8mU0eL8usFPqOZumIst9l_cEyzch-iWFvPm0jJk,1367
204
- clear_skies-1.19.16.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
205
- clear_skies-1.19.16.dist-info/RECORD,,
202
+ clear_skies-1.19.18.dist-info/LICENSE,sha256=3Ehd0g3YOpCj8sqj0Xjq5qbOtjjgk9qzhhD9YjRQgOA,1053
203
+ clear_skies-1.19.18.dist-info/METADATA,sha256=4mdZ8ADH9GKXgZxqm285vya9aFyVABQsUDAsv8l7Fhs,1367
204
+ clear_skies-1.19.18.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
205
+ clear_skies-1.19.18.dist-info/RECORD,,
@@ -151,7 +151,9 @@ class CursorBackend(Backend):
151
151
 
152
152
  def as_sql(self, configuration):
153
153
  escape = self._column_escape_character()
154
- [wheres, parameters] = self._conditions_as_wheres_and_parameters(configuration["wheres"])
154
+ [wheres, parameters] = self._conditions_as_wheres_and_parameters(
155
+ configuration["wheres"], configuration["table_name"]
156
+ )
155
157
  select_parts = []
156
158
  if configuration["select_all"]:
157
159
  select_parts.append(self._finalize_table_name(configuration["table_name"]) + ".*")
@@ -190,7 +192,9 @@ class CursorBackend(Backend):
190
192
  def as_count_sql(self, configuration):
191
193
  escape = self._column_escape_character()
192
194
  # note that this won't work if we start including a HAVING clause
193
- [wheres, parameters] = self._conditions_as_wheres_and_parameters(configuration["wheres"])
195
+ [wheres, parameters] = self._conditions_as_wheres_and_parameters(
196
+ configuration["wheres"], configuration["table_name"]
197
+ )
194
198
  # we also don't currently support parameters in the join clause - I'll probably need that though
195
199
  if configuration["joins"]:
196
200
  # We can ignore left joins because they don't change the count
@@ -208,7 +212,7 @@ class CursorBackend(Backend):
208
212
  )
209
213
  return [query, parameters]
210
214
 
211
- def _conditions_as_wheres_and_parameters(self, conditions):
215
+ def _conditions_as_wheres_and_parameters(self, conditions, default_table_name):
212
216
  if not conditions:
213
217
  return ["", []]
214
218
 
@@ -216,16 +220,17 @@ class CursorBackend(Backend):
216
220
  where_parts = []
217
221
  for condition in conditions:
218
222
  parameters.extend(condition["values"])
219
- table = condition.get("table", "")
223
+ table = condition.get("table", default_table_name)
224
+ if not table:
225
+ table = default_table_name
220
226
  column = condition["column"]
221
- column_with_table = f"{table}.{column}" if table else column
227
+ column_with_table = f"{table}.{column}"
222
228
  where_parts.append(
223
229
  self.condition_parser._with_placeholders(
224
230
  column_with_table,
225
231
  condition["operator"],
226
232
  condition["values"],
227
- escape=False if table else True,
228
- escape_character=self._column_escape_character(),
233
+ escape=False,
229
234
  )
230
235
  )
231
236
  return [" WHERE " + " AND ".join(where_parts), parameters]
@@ -13,6 +13,6 @@ class Email(String):
13
13
  # don't check for an email if doing a fuzzy search, since we may be searching
14
14
  # for a partial email
15
15
  return ""
16
- if re.search("^[^@\s]+@[^@]+\.[^@]+$", value):
16
+ if re.search(r"^[^@\s]+@[^@]+\.[^@]+$", value):
17
17
  return ""
18
18
  return "Invalid email address"
@@ -15,6 +15,7 @@ class Update(Write):
15
15
  "column_overrides": None,
16
16
  "writeable_columns": None,
17
17
  "readable_columns": None,
18
+ "output_map": None,
18
19
  "where": [],
19
20
  "input_error_callable": None,
20
21
  "include_id_in_path": False,
@@ -22,6 +22,7 @@ class Write(Base, InputProcessing):
22
22
  "columns": None,
23
23
  "column_overrides": None,
24
24
  "writeable_columns": None,
25
+ "output_map": None,
25
26
  "readable_columns": None,
26
27
  "input_error_callable": None,
27
28
  }