clear-skies 1.18.8__py3-none-any.whl → 1.18.10__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.18.8
3
+ Version: 1.18.10
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=L3AMJqpchldlqdCWE3UJJ8jAsnrEEWpll9_OgyVASDk,8721
49
+ clearskies/backends/cursor_backend.py,sha256=SVApdsf1QnkiB2GocGlA-720zpN5DIm2FvYKTsx8chQ,9039
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
@@ -56,7 +56,7 @@ 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=o8vIe3no8FCT9IFOQRgd0VROFjMISxGPiYoNhVi9VCc,3421
58
58
  clearskies/column_types/audit.py,sha256=meDFV0s4u9i6UojN5f6EQk_kh-nGP8xPscCRa2Nd-yw,8102
59
- clearskies/column_types/belongs_to.py,sha256=dWY5AYgvn4ZDgsKVnILbQKCiYrJNOb-FBuzl--DkZas,10827
59
+ clearskies/column_types/belongs_to.py,sha256=0bvSBr0EpnmNA9J6ipRaZafM9sRimgMc8FeHkjYV24Y,10829
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=TCGqtsCEYJr6BHs-PS1yFoUHGIwcx5oTujytNkTAcrk,13243
@@ -187,7 +187,7 @@ clearskies/tests/simple_api/models/__init__.py,sha256=nUA0W6fgXw_Bxa9CudkaDkC80t
187
187
  clearskies/tests/simple_api/models/status.py,sha256=PEhPbaQh5qdUNHp8O0gz91LOLENAEBtqSaHxUPXchaM,699
188
188
  clearskies/tests/simple_api/models/user.py,sha256=5_P4Tp1tTdX7PkMJ__epPM5MA7JAeVYGas69vcWloLc,819
189
189
  clearskies/tests/simple_api/users_api.py,sha256=KYXCgEofDxHeRdQK67txN5oYUPvxxmB8JTku7L-apk4,2344
190
- clear_skies-1.18.8.dist-info/LICENSE,sha256=3Ehd0g3YOpCj8sqj0Xjq5qbOtjjgk9qzhhD9YjRQgOA,1053
191
- clear_skies-1.18.8.dist-info/METADATA,sha256=C2EEmkDNduNK0DI7pww5bcCHX0oEzAkNBn4S3F3FsJQ,1366
192
- clear_skies-1.18.8.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
193
- clear_skies-1.18.8.dist-info/RECORD,,
190
+ clear_skies-1.18.10.dist-info/LICENSE,sha256=3Ehd0g3YOpCj8sqj0Xjq5qbOtjjgk9qzhhD9YjRQgOA,1053
191
+ clear_skies-1.18.10.dist-info/METADATA,sha256=zHyZWFKxwBT3ZR_Pu_m2mRr6HQ5-bSmWVEWcl3sp7Ok,1367
192
+ clear_skies-1.18.10.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
193
+ clear_skies-1.18.10.dist-info/RECORD,,
@@ -31,6 +31,9 @@ class CursorBackend(Backend):
31
31
  def configure(self):
32
32
  pass
33
33
 
34
+ def _finalize_table_name(self, table_name):
35
+ return f"`{table_name}`"
36
+
34
37
  def update(self, id, data, model):
35
38
  query_parts = []
36
39
  parameters = []
@@ -39,14 +42,14 @@ class CursorBackend(Backend):
39
42
  parameters.append(val)
40
43
  updates = ", ".join(query_parts)
41
44
 
42
- table_name = model.table_name()
45
+ table_name = self._finalize_table_name(model.table_name())
43
46
  self._cursor.execute(
44
- f"UPDATE `{table_name}` SET {updates} WHERE {model.id_column_name}=%s", tuple([*parameters, id])
47
+ f"UPDATE {table_name} SET {updates} WHERE {model.id_column_name}=%s", tuple([*parameters, id])
45
48
  )
46
49
 
47
50
  results = self.records(
48
51
  {
49
- "table_name": table_name,
52
+ "table_name": model.table_name(),
50
53
  "select_all": True,
51
54
  "wheres": [{"parsed": f"{model.id_column_name}=%s", "values": [id]}],
52
55
  },
@@ -58,8 +61,8 @@ class CursorBackend(Backend):
58
61
  columns = "`" + "`, `".join(data.keys()) + "`"
59
62
  placeholders = ", ".join(["%s" for i in range(len(data))])
60
63
 
61
- table_name = model.table_name()
62
- self._cursor.execute(f"INSERT INTO `{table_name}` ({columns}) VALUES ({placeholders})", tuple(data.values()))
64
+ table_name = self._finalize_table_name(model.table_name())
65
+ self._cursor.execute(f"INSERT INTO {table_name} ({columns}) VALUES ({placeholders})", tuple(data.values()))
63
66
  new_id = data.get(model.id_column_name)
64
67
  if not new_id:
65
68
  new_id = self._cursor.lastrowid
@@ -68,7 +71,7 @@ class CursorBackend(Backend):
68
71
 
69
72
  results = self.records(
70
73
  {
71
- "table_name": table_name,
74
+ "table_name": model.table_name(),
72
75
  "select_all": True,
73
76
  "wheres": [{"parsed": f"{model.id_column_name}=%s", "values": [new_id]}],
74
77
  },
@@ -77,8 +80,8 @@ class CursorBackend(Backend):
77
80
  return results[0]
78
81
 
79
82
  def delete(self, id, model):
80
- table_name = model.table_name()
81
- self._cursor.execute(f"DELETE FROM `{table_name}` WHERE {model.id_column_name}=%s", (id,))
83
+ table_name = self._finalize_table_name(model.table_name())
84
+ self._cursor.execute(f"DELETE FROM {table_name} WHERE {model.id_column_name}=%s", (id,))
82
85
  return True
83
86
 
84
87
  def count(self, configuration, model):
@@ -109,7 +112,7 @@ class CursorBackend(Backend):
109
112
  [wheres, parameters] = self._conditions_as_wheres_and_parameters(configuration["wheres"])
110
113
  select_parts = []
111
114
  if configuration["select_all"]:
112
- select_parts.append(f"`{configuration['table_name']}`.*")
115
+ select_parts.append(self._finalize_table_name(configuration["table_name"]) + ".*")
113
116
  if configuration["selects"]:
114
117
  select_parts.extend(configuration["selects"])
115
118
  select = ", ".join(select_parts)
@@ -123,7 +126,7 @@ class CursorBackend(Backend):
123
126
  table_name = sort.get("table")
124
127
  column_name = sort["column"]
125
128
  direction = sort["direction"]
126
- prefix = f"`{table_name}`." if table_name else ""
129
+ prefix = self._finalize_table_name(table_name) + "." if table_name else ""
127
130
  sort_parts.append(f"{prefix}`{column_name}` {direction}")
128
131
  order_by = " ORDER BY " + ", ".join(sort_parts)
129
132
  else:
@@ -136,8 +139,9 @@ class CursorBackend(Backend):
136
139
  start = int(configuration["pagination"]["start"])
137
140
  limit = f' LIMIT {start}, {configuration["limit"]}'
138
141
 
142
+ table_name = self._finalize_table_name(configuration["table_name"])
139
143
  return [
140
- f'SELECT {select} FROM `{configuration["table_name"]}`{joins}{wheres}{group_by}{order_by}{limit}'.strip(),
144
+ f"SELECT {select} FROM {table_name}{joins}{wheres}{group_by}{order_by}{limit}".strip(),
141
145
  parameters,
142
146
  ]
143
147
 
@@ -151,10 +155,11 @@ class CursorBackend(Backend):
151
155
  joins = " " + " ".join([join["raw"] for join in configuration["joins"]])
152
156
  else:
153
157
  joins = ""
158
+ table_name = self._finalize_table_name(configuration["table_name"])
154
159
  if not configuration["group_by_column"]:
155
- query = f'SELECT COUNT(*) AS count FROM `{configuration["table_name"]}`{joins}{wheres}'
160
+ query = f"SELECT COUNT(*) AS count FROM {table_name}{joins}{wheres}"
156
161
  else:
157
- query = f'SELECT COUNT(SELECT 1 FROM `{configuration["table_name"]}`{joins}{wheres} GROUP BY `{configuration["group_by_column"]}`) AS count'
162
+ query = f'SELECT COUNT(SELECT 1 FROM {table_name}{joins}{wheres} GROUP BY `{configuration["group_by_column"]}`) AS count'
158
163
  return [query, parameters]
159
164
 
160
165
  def _conditions_as_wheres_and_parameters(self, conditions):
@@ -162,7 +162,7 @@ class BelongsTo(String):
162
162
  parent = model.__getattr__(self.config("model_column_name"))
163
163
  json = OrderedDict()
164
164
  if parent.id_column_name not in self.config("readable_parent_columns"):
165
- json[parent.id_column_name] = list(columns[parent.id_column_name].to_json(parent).values)[0]
165
+ json[parent.id_column_name] = list(columns[parent.id_column_name].to_json(parent).values())[0]
166
166
  for column_name in self.config("readable_parent_columns"):
167
167
  json = {**json, **columns[column_name].to_json(parent)}
168
168
  id_less_name = self.config("model_column_name")