apexdevkit 1.18.8__tar.gz → 1.18.9__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.
Files changed (52) hide show
  1. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/PKG-INFO +1 -1
  2. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/query/generator.py +32 -26
  3. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/pyproject.toml +1 -1
  4. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/LICENSE +0 -0
  5. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/README.md +0 -0
  6. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/__init__.py +0 -0
  7. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/annotation/__init__.py +0 -0
  8. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/annotation/deprecate.py +0 -0
  9. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/environment.py +0 -0
  10. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/error.py +0 -0
  11. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/fastapi/__init__.py +0 -0
  12. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/fastapi/builder.py +0 -0
  13. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/fastapi/dependable.py +0 -0
  14. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/fastapi/docs.py +0 -0
  15. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/fastapi/name.py +0 -0
  16. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/fastapi/request.py +0 -0
  17. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/fastapi/resource.py +0 -0
  18. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/fastapi/response.py +0 -0
  19. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/fastapi/router.py +0 -0
  20. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/fastapi/schema.py +0 -0
  21. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/fastapi/service.py +0 -0
  22. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/fluent.py +0 -0
  23. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/formatter.py +0 -0
  24. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/http/__init__.py +0 -0
  25. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/http/fake.py +0 -0
  26. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/http/fluent.py +0 -0
  27. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/http/httpx.py +0 -0
  28. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/http/json.py +0 -0
  29. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/http/url.py +0 -0
  30. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/id.py +0 -0
  31. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/key_fn.py +0 -0
  32. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/py.typed +0 -0
  33. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/query/__init__.py +0 -0
  34. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/query/query.py +0 -0
  35. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/repository/__init__.py +0 -0
  36. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/repository/base.py +0 -0
  37. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/repository/connector.py +0 -0
  38. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/repository/database.py +0 -0
  39. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/repository/decorator.py +0 -0
  40. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/repository/in_memory.py +0 -0
  41. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/repository/interface.py +0 -0
  42. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/repository/mongo.py +0 -0
  43. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/repository/mssql.py +0 -0
  44. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/repository/sql.py +0 -0
  45. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/repository/sqlite.py +0 -0
  46. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/server.py +0 -0
  47. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/synchronization.py +0 -0
  48. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/testing/__init__.py +0 -0
  49. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/testing/database.py +0 -0
  50. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/testing/fake.py +0 -0
  51. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/testing/rest.py +0 -0
  52. {apexdevkit-1.18.8 → apexdevkit-1.18.9}/apexdevkit/value.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: apexdevkit
3
- Version: 1.18.8
3
+ Version: 1.18.9
4
4
  Summary: Apex Development Tools for python.
5
5
  Author: Apex Dev
6
6
  Author-email: dev@apex.ge
@@ -215,7 +215,7 @@ class MsSqlField:
215
215
  return result
216
216
 
217
217
  def as_order_part(self, is_descending: bool = False) -> str:
218
- result = self.alias or self.name
218
+ result = self.name
219
219
 
220
220
  if is_descending:
221
221
  result += " DESC"
@@ -262,6 +262,34 @@ class MsSqlFooterGenerator:
262
262
  raise ForbiddenError(message=f"Invalid field name: {name}")
263
263
 
264
264
 
265
+ @dataclass
266
+ class MsSqlOrderGenerator:
267
+ ordering: list[Sort]
268
+
269
+ fields: list[MsSqlField] = field(default_factory=list)
270
+
271
+ def generate(self) -> str:
272
+ if not self.ordering:
273
+ return ""
274
+
275
+ clause = ", ".join(self.generate_one(item) for item in self.ordering)
276
+
277
+ return f"ORDER BY {clause}"
278
+
279
+ def generate_one(self, item: Sort) -> str:
280
+ return self.field_for(item.name).as_order_part(item.is_descending)
281
+
282
+ def field_for(self, name: str) -> MsSqlField:
283
+ for f in self.fields:
284
+ if f.alias == name:
285
+ return f
286
+
287
+ if f.alias == "" and f.name == name:
288
+ return f
289
+
290
+ raise ForbiddenError(message=f"Invalid field name: {name}")
291
+
292
+
265
293
  @dataclass
266
294
  class MsSqlSourceGenerator:
267
295
  source: str
@@ -318,31 +346,6 @@ class MsSqlConditionGenerator:
318
346
  )
319
347
 
320
348
 
321
- @dataclass
322
- class MsSqlOrderGenerator:
323
- ordering: list[Sort]
324
-
325
- fields: list[MsSqlField] = field(default_factory=list)
326
-
327
- def generate(self) -> str:
328
- if not self.ordering:
329
- return ""
330
-
331
- clause = ", ".join(self.generate_one(item) for item in self.ordering)
332
-
333
- return f"ORDER BY {clause}"
334
-
335
- def generate_one(self, item: Sort) -> str:
336
- return self.field_for(item.name).as_order_part(item.is_descending)
337
-
338
- def field_for(self, name: str) -> MsSqlField:
339
- for f in self.fields:
340
- if f.name == name:
341
- return f
342
-
343
- raise ForbiddenError(message=f"Invalid field name: {name}")
344
-
345
-
346
349
  @dataclass
347
350
  class MsSqlPagingGenerator:
348
351
  paging: Page
@@ -392,6 +395,9 @@ class OperationEvaluator:
392
395
  if f.alias == node.name:
393
396
  return f.name
394
397
 
398
+ if f.alias == "" and f.name == node.name:
399
+ return f.name
400
+
395
401
  raise ForbiddenError(message=f"Invalid field name: {node.name}")
396
402
 
397
403
  def _get_raw_value(self, node: Leaf) -> str | None:
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "apexdevkit"
3
- version = "1.18.8"
3
+ version = "1.18.9"
4
4
  description = "Apex Development Tools for python."
5
5
  authors = ["Apex Dev <dev@apex.ge>"]
6
6
  readme = "README.md"
File without changes
File without changes