clear-skies 1.18.9__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.
- {clear_skies-1.18.9.dist-info → clear_skies-1.18.10.dist-info}/METADATA +1 -1
- {clear_skies-1.18.9.dist-info → clear_skies-1.18.10.dist-info}/RECORD +5 -5
- clearskies/backends/cursor_backend.py +18 -13
- {clear_skies-1.18.9.dist-info → clear_skies-1.18.10.dist-info}/LICENSE +0 -0
- {clear_skies-1.18.9.dist-info → clear_skies-1.18.10.dist-info}/WHEEL +0 -0
|
@@ -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=
|
|
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
|
|
@@ -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.
|
|
191
|
-
clear_skies-1.18.
|
|
192
|
-
clear_skies-1.18.
|
|
193
|
-
clear_skies-1.18.
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
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 =
|
|
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
|
|
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
|
|
160
|
+
query = f"SELECT COUNT(*) AS count FROM {table_name}{joins}{wheres}"
|
|
156
161
|
else:
|
|
157
|
-
query = f'SELECT COUNT(SELECT 1 FROM
|
|
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):
|
|
File without changes
|
|
File without changes
|