apexdevkit 1.21.2__tar.gz → 1.21.3__tar.gz
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.
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/PKG-INFO +1 -1
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/repository/mssql.py +29 -2
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/pyproject.toml +1 -1
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/LICENSE +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/README.md +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/__init__.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/annotation/__init__.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/annotation/deprecate.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/environment.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/error.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/fastapi/__init__.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/fastapi/builder.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/fastapi/dependable.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/fastapi/docs.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/fastapi/name.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/fastapi/request.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/fastapi/resource.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/fastapi/response.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/fastapi/router.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/fastapi/schema.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/fastapi/service.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/fluent.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/formatter.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/http/__init__.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/http/fake.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/http/fluent.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/http/httpx/__init__.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/http/httpx/client.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/http/httpx/hooks.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/http/json.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/http/url.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/id.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/key_fn.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/py.typed +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/query/__init__.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/query/generator.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/query/query.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/repository/__init__.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/repository/base.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/repository/connector.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/repository/database.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/repository/decorator.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/repository/in_memory.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/repository/interface.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/repository/sql.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/repository/sqlite.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/server.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/synchronization.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/testing/__init__.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/testing/database.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/testing/fake.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/testing/rest.py +0 -0
- {apexdevkit-1.21.2 → apexdevkit-1.21.3}/apexdevkit/value.py +0 -0
|
@@ -147,6 +147,7 @@ class MsSqlTableBuilder(Generic[ItemT]):
|
|
|
147
147
|
fields: list[_SqlField] | None = None
|
|
148
148
|
table_mapper: Callable[[ItemT], str] | None = None
|
|
149
149
|
table_id_mapper: Callable[[str], str] | None = None
|
|
150
|
+
id_transformer: Callable[[str], str] = lambda identifier: identifier
|
|
150
151
|
|
|
151
152
|
def with_username(self, value: str) -> MsSqlTableBuilder[ItemT]:
|
|
152
153
|
return MsSqlTableBuilder[ItemT](
|
|
@@ -157,6 +158,7 @@ class MsSqlTableBuilder(Generic[ItemT]):
|
|
|
157
158
|
self.fields,
|
|
158
159
|
self.table_mapper,
|
|
159
160
|
self.table_id_mapper,
|
|
161
|
+
self.id_transformer,
|
|
160
162
|
)
|
|
161
163
|
|
|
162
164
|
def with_schema(self, value: str) -> MsSqlTableBuilder[ItemT]:
|
|
@@ -168,6 +170,7 @@ class MsSqlTableBuilder(Generic[ItemT]):
|
|
|
168
170
|
self.fields,
|
|
169
171
|
self.table_mapper,
|
|
170
172
|
self.table_id_mapper,
|
|
173
|
+
self.id_transformer,
|
|
171
174
|
)
|
|
172
175
|
|
|
173
176
|
def with_table(self, value: str) -> MsSqlTableBuilder[ItemT]:
|
|
@@ -179,6 +182,7 @@ class MsSqlTableBuilder(Generic[ItemT]):
|
|
|
179
182
|
self.fields,
|
|
180
183
|
self.table_mapper,
|
|
181
184
|
self.table_id_mapper,
|
|
185
|
+
self.id_transformer,
|
|
182
186
|
)
|
|
183
187
|
|
|
184
188
|
def and_table(self, value: str) -> MsSqlTableBuilder[ItemT]:
|
|
@@ -195,6 +199,7 @@ class MsSqlTableBuilder(Generic[ItemT]):
|
|
|
195
199
|
self.fields,
|
|
196
200
|
value,
|
|
197
201
|
self.table_id_mapper,
|
|
202
|
+
self.id_transformer,
|
|
198
203
|
)
|
|
199
204
|
|
|
200
205
|
def with_table_id_mapper(
|
|
@@ -208,6 +213,21 @@ class MsSqlTableBuilder(Generic[ItemT]):
|
|
|
208
213
|
self.fields,
|
|
209
214
|
self.table_mapper,
|
|
210
215
|
value,
|
|
216
|
+
self.id_transformer,
|
|
217
|
+
)
|
|
218
|
+
|
|
219
|
+
def with_id_transformer(
|
|
220
|
+
self, value: Callable[[str], str]
|
|
221
|
+
) -> MsSqlTableBuilder[ItemT]:
|
|
222
|
+
return MsSqlTableBuilder[ItemT](
|
|
223
|
+
self.username,
|
|
224
|
+
self.schema,
|
|
225
|
+
self.tables,
|
|
226
|
+
self.formatter,
|
|
227
|
+
self.fields,
|
|
228
|
+
self.table_mapper,
|
|
229
|
+
self.table_id_mapper,
|
|
230
|
+
value,
|
|
211
231
|
)
|
|
212
232
|
|
|
213
233
|
def with_formatter(
|
|
@@ -221,6 +241,7 @@ class MsSqlTableBuilder(Generic[ItemT]):
|
|
|
221
241
|
self.fields,
|
|
222
242
|
self.table_mapper,
|
|
223
243
|
self.table_id_mapper,
|
|
244
|
+
self.id_transformer,
|
|
224
245
|
)
|
|
225
246
|
|
|
226
247
|
def with_fields(self, value: Iterable[_SqlField]) -> MsSqlTableBuilder[ItemT]:
|
|
@@ -248,6 +269,7 @@ class MsSqlTableBuilder(Generic[ItemT]):
|
|
|
248
269
|
key_list,
|
|
249
270
|
self.table_mapper,
|
|
250
271
|
self.table_id_mapper,
|
|
272
|
+
self.id_transformer,
|
|
251
273
|
)
|
|
252
274
|
|
|
253
275
|
def build(self) -> SqlTable[ItemT]:
|
|
@@ -267,6 +289,7 @@ class MsSqlTableBuilder(Generic[ItemT]):
|
|
|
267
289
|
self.username,
|
|
268
290
|
self.table_mapper,
|
|
269
291
|
self.table_id_mapper,
|
|
292
|
+
self.id_transformer,
|
|
270
293
|
)
|
|
271
294
|
|
|
272
295
|
|
|
@@ -279,6 +302,7 @@ class DefaultSqlTable(SqlTable[ItemT]):
|
|
|
279
302
|
username: str | None = None
|
|
280
303
|
table_mapper: Callable[[ItemT], str] | None = None
|
|
281
304
|
table_id_mapper: Callable[[str], str] | None = None
|
|
305
|
+
id_transformer: Callable[[str], str] = lambda identifier: identifier
|
|
282
306
|
|
|
283
307
|
def count_all(self) -> DatabaseCommand:
|
|
284
308
|
selections = " + ".join(
|
|
@@ -340,6 +364,7 @@ class DefaultSqlTable(SqlTable[ItemT]):
|
|
|
340
364
|
self._require_id_mapper_if_necessary()
|
|
341
365
|
|
|
342
366
|
columns = ", ".join(["[" + field.name + "]" for field in self.fields])
|
|
367
|
+
table_identifier = self.id_transformer(item_id)
|
|
343
368
|
|
|
344
369
|
return DatabaseCommand(f"""
|
|
345
370
|
{self._user_check}
|
|
@@ -348,7 +373,7 @@ class DefaultSqlTable(SqlTable[ItemT]):
|
|
|
348
373
|
FROM [{self.schema}].[{self._determine_table_by_id(item_id)}]
|
|
349
374
|
{self.fields.where_statement(include_id=True)}
|
|
350
375
|
REVERT
|
|
351
|
-
""").with_data(self.fields.with_fixed({self.fields.id:
|
|
376
|
+
""").with_data(self.fields.with_fixed({self.fields.id: table_identifier}))
|
|
352
377
|
|
|
353
378
|
def select_all(self) -> DatabaseCommand:
|
|
354
379
|
columns = ", ".join(["[" + field.name + "]" for field in self.fields])
|
|
@@ -395,13 +420,15 @@ class DefaultSqlTable(SqlTable[ItemT]):
|
|
|
395
420
|
def delete(self, item_id: str) -> DatabaseCommand:
|
|
396
421
|
self._require_mapper_if_necessary()
|
|
397
422
|
|
|
423
|
+
table_identifier = self.id_transformer(item_id)
|
|
424
|
+
|
|
398
425
|
return DatabaseCommand(f"""
|
|
399
426
|
{self._user_check}
|
|
400
427
|
DELETE
|
|
401
428
|
FROM [{self.schema}].[{self._determine_table_by_id(item_id)}]
|
|
402
429
|
{self.fields.where_statement(include_id=True)}
|
|
403
430
|
REVERT
|
|
404
|
-
""").with_data(self.fields.with_fixed({self.fields.id:
|
|
431
|
+
""").with_data(self.fields.with_fixed({self.fields.id: table_identifier}))
|
|
405
432
|
|
|
406
433
|
def delete_all(self) -> DatabaseCommand:
|
|
407
434
|
if len(self.tables) > 1:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|