ormlambda 3.12.2__py3-none-any.whl → 3.34.0__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.
Files changed (150) hide show
  1. ormlambda/__init__.py +2 -0
  2. ormlambda/caster/__init__.py +1 -1
  3. ormlambda/caster/caster.py +29 -12
  4. ormlambda/common/abstract_classes/clause_info_converter.py +4 -12
  5. ormlambda/common/abstract_classes/decomposition_query.py +17 -2
  6. ormlambda/common/abstract_classes/non_query_base.py +9 -7
  7. ormlambda/common/abstract_classes/query_base.py +3 -1
  8. ormlambda/common/errors/__init__.py +29 -0
  9. ormlambda/common/interfaces/IQueryCommand.py +6 -2
  10. ormlambda/dialects/__init__.py +39 -0
  11. ormlambda/dialects/default/__init__.py +1 -0
  12. ormlambda/dialects/default/base.py +39 -0
  13. ormlambda/dialects/interface/__init__.py +1 -0
  14. ormlambda/dialects/interface/dialect.py +78 -0
  15. ormlambda/dialects/mysql/__init__.py +38 -0
  16. ormlambda/dialects/mysql/base.py +388 -0
  17. ormlambda/dialects/mysql/caster/caster.py +39 -0
  18. ormlambda/{databases/my_sql → dialects/mysql}/caster/types/__init__.py +1 -0
  19. ormlambda/dialects/mysql/caster/types/boolean.py +35 -0
  20. ormlambda/{databases/my_sql → dialects/mysql}/caster/types/bytes.py +7 -7
  21. ormlambda/{databases/my_sql → dialects/mysql}/caster/types/datetime.py +7 -7
  22. ormlambda/{databases/my_sql → dialects/mysql}/caster/types/float.py +7 -7
  23. ormlambda/{databases/my_sql → dialects/mysql}/caster/types/int.py +7 -7
  24. ormlambda/{databases/my_sql → dialects/mysql}/caster/types/iterable.py +7 -7
  25. ormlambda/{databases/my_sql → dialects/mysql}/caster/types/none.py +8 -7
  26. ormlambda/{databases/my_sql → dialects/mysql}/caster/types/point.py +4 -4
  27. ormlambda/{databases/my_sql → dialects/mysql}/caster/types/string.py +7 -7
  28. ormlambda/{databases/my_sql → dialects/mysql}/clauses/ST_AsText.py +8 -7
  29. ormlambda/{databases/my_sql → dialects/mysql}/clauses/ST_Contains.py +10 -5
  30. ormlambda/dialects/mysql/clauses/__init__.py +13 -0
  31. ormlambda/dialects/mysql/clauses/count.py +33 -0
  32. ormlambda/dialects/mysql/clauses/delete.py +9 -0
  33. ormlambda/dialects/mysql/clauses/group_by.py +17 -0
  34. ormlambda/dialects/mysql/clauses/having.py +12 -0
  35. ormlambda/dialects/mysql/clauses/insert.py +9 -0
  36. ormlambda/dialects/mysql/clauses/joins.py +14 -0
  37. ormlambda/dialects/mysql/clauses/limit.py +6 -0
  38. ormlambda/dialects/mysql/clauses/offset.py +6 -0
  39. ormlambda/dialects/mysql/clauses/order.py +8 -0
  40. ormlambda/dialects/mysql/clauses/update.py +8 -0
  41. ormlambda/dialects/mysql/clauses/upsert.py +9 -0
  42. ormlambda/dialects/mysql/clauses/where.py +7 -0
  43. ormlambda/dialects/mysql/mysqlconnector.py +46 -0
  44. ormlambda/dialects/mysql/repository/__init__.py +1 -0
  45. ormlambda/dialects/mysql/repository/repository.py +212 -0
  46. ormlambda/dialects/mysql/types.py +732 -0
  47. ormlambda/dialects/sqlite/__init__.py +5 -0
  48. ormlambda/dialects/sqlite/base.py +47 -0
  49. ormlambda/dialects/sqlite/pysqlite.py +32 -0
  50. ormlambda/engine/__init__.py +1 -0
  51. ormlambda/engine/base.py +77 -0
  52. ormlambda/engine/create.py +9 -23
  53. ormlambda/engine/url.py +31 -19
  54. ormlambda/env.py +30 -0
  55. ormlambda/errors.py +17 -0
  56. ormlambda/model/base_model.py +7 -9
  57. ormlambda/repository/base_repository.py +36 -5
  58. ormlambda/repository/interfaces/IRepositoryBase.py +119 -12
  59. ormlambda/repository/response.py +134 -0
  60. ormlambda/sql/clause_info/aggregate_function_base.py +19 -9
  61. ormlambda/sql/clause_info/clause_info.py +34 -17
  62. ormlambda/sql/clauses/__init__.py +14 -0
  63. ormlambda/{databases/my_sql → sql}/clauses/alias.py +23 -6
  64. ormlambda/{databases/my_sql → sql}/clauses/count.py +15 -1
  65. ormlambda/{databases/my_sql → sql}/clauses/delete.py +22 -7
  66. ormlambda/sql/clauses/group_by.py +30 -0
  67. ormlambda/{databases/my_sql → sql}/clauses/having.py +7 -2
  68. ormlambda/{databases/my_sql → sql}/clauses/insert.py +16 -9
  69. ormlambda/sql/clauses/interfaces/__init__.py +5 -0
  70. ormlambda/{components → sql/clauses}/join/join_context.py +15 -7
  71. ormlambda/{databases/my_sql → sql}/clauses/joins.py +29 -19
  72. ormlambda/sql/clauses/limit.py +15 -0
  73. ormlambda/sql/clauses/offset.py +15 -0
  74. ormlambda/{databases/my_sql → sql}/clauses/order.py +14 -24
  75. ormlambda/{databases/my_sql → sql}/clauses/select.py +12 -13
  76. ormlambda/{databases/my_sql → sql}/clauses/update.py +24 -11
  77. ormlambda/{databases/my_sql → sql}/clauses/upsert.py +17 -12
  78. ormlambda/{databases/my_sql → sql}/clauses/where.py +28 -8
  79. ormlambda/sql/column/__init__.py +1 -0
  80. ormlambda/sql/{column.py → column/column.py} +82 -22
  81. ormlambda/sql/comparer.py +51 -37
  82. ormlambda/sql/compiler.py +668 -0
  83. ormlambda/sql/ddl.py +82 -0
  84. ormlambda/sql/elements.py +36 -0
  85. ormlambda/sql/foreign_key.py +61 -39
  86. ormlambda/{databases/my_sql → sql}/functions/concat.py +13 -5
  87. ormlambda/{databases/my_sql → sql}/functions/max.py +9 -4
  88. ormlambda/{databases/my_sql → sql}/functions/min.py +9 -13
  89. ormlambda/{databases/my_sql → sql}/functions/sum.py +8 -10
  90. ormlambda/sql/sqltypes.py +647 -0
  91. ormlambda/sql/table/__init__.py +1 -1
  92. ormlambda/sql/table/table.py +175 -0
  93. ormlambda/sql/table/table_constructor.py +1 -208
  94. ormlambda/sql/type_api.py +35 -0
  95. ormlambda/sql/types.py +3 -1
  96. ormlambda/sql/visitors.py +74 -0
  97. ormlambda/statements/__init__.py +1 -0
  98. ormlambda/statements/base_statement.py +28 -38
  99. ormlambda/statements/interfaces/IStatements.py +8 -4
  100. ormlambda/{databases/my_sql → statements}/query_builder.py +35 -30
  101. ormlambda/{databases/my_sql → statements}/statements.py +57 -61
  102. ormlambda/statements/types.py +2 -2
  103. ormlambda/types/__init__.py +24 -0
  104. ormlambda/types/metadata.py +42 -0
  105. ormlambda/util/__init__.py +87 -0
  106. ormlambda/{utils → util}/module_tree/dynamic_module.py +1 -1
  107. ormlambda/util/plugin_loader.py +32 -0
  108. ormlambda/util/typing.py +6 -0
  109. ormlambda-3.34.0.dist-info/AUTHORS +32 -0
  110. {ormlambda-3.12.2.dist-info → ormlambda-3.34.0.dist-info}/METADATA +1 -1
  111. ormlambda-3.34.0.dist-info/RECORD +152 -0
  112. ormlambda/components/__init__.py +0 -4
  113. ormlambda/components/delete/__init__.py +0 -2
  114. ormlambda/components/delete/abstract_delete.py +0 -17
  115. ormlambda/components/insert/__init__.py +0 -2
  116. ormlambda/components/insert/abstract_insert.py +0 -25
  117. ormlambda/components/select/__init__.py +0 -1
  118. ormlambda/components/update/__init__.py +0 -2
  119. ormlambda/components/update/abstract_update.py +0 -29
  120. ormlambda/components/upsert/__init__.py +0 -2
  121. ormlambda/components/upsert/abstract_upsert.py +0 -25
  122. ormlambda/databases/__init__.py +0 -5
  123. ormlambda/databases/my_sql/__init__.py +0 -4
  124. ormlambda/databases/my_sql/caster/caster.py +0 -39
  125. ormlambda/databases/my_sql/clauses/__init__.py +0 -20
  126. ormlambda/databases/my_sql/clauses/create_database.py +0 -35
  127. ormlambda/databases/my_sql/clauses/drop_database.py +0 -17
  128. ormlambda/databases/my_sql/clauses/drop_table.py +0 -26
  129. ormlambda/databases/my_sql/clauses/group_by.py +0 -30
  130. ormlambda/databases/my_sql/clauses/limit.py +0 -17
  131. ormlambda/databases/my_sql/clauses/offset.py +0 -17
  132. ormlambda/databases/my_sql/repository/__init__.py +0 -1
  133. ormlambda/databases/my_sql/repository/repository.py +0 -351
  134. ormlambda/engine/template.py +0 -47
  135. ormlambda/sql/dtypes.py +0 -94
  136. ormlambda/utils/__init__.py +0 -1
  137. ormlambda-3.12.2.dist-info/RECORD +0 -125
  138. /ormlambda/{databases/my_sql → dialects/mysql}/caster/__init__.py +0 -0
  139. /ormlambda/{databases/my_sql/types.py → dialects/mysql/repository/pool_types.py} +0 -0
  140. /ormlambda/{components/delete → sql/clauses/interfaces}/IDelete.py +0 -0
  141. /ormlambda/{components/insert → sql/clauses/interfaces}/IInsert.py +0 -0
  142. /ormlambda/{components/select → sql/clauses/interfaces}/ISelect.py +0 -0
  143. /ormlambda/{components/update → sql/clauses/interfaces}/IUpdate.py +0 -0
  144. /ormlambda/{components/upsert → sql/clauses/interfaces}/IUpsert.py +0 -0
  145. /ormlambda/{components → sql/clauses}/join/__init__.py +0 -0
  146. /ormlambda/{databases/my_sql → sql}/functions/__init__.py +0 -0
  147. /ormlambda/{utils → util}/module_tree/__init__.py +0 -0
  148. /ormlambda/{utils → util}/module_tree/dfs_traversal.py +0 -0
  149. {ormlambda-3.12.2.dist-info → ormlambda-3.34.0.dist-info}/LICENSE +0 -0
  150. {ormlambda-3.12.2.dist-info → ormlambda-3.34.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,32 @@
1
+ from typing import Callable, Optional
2
+ from types import ModuleType
3
+ from ormlambda import errors
4
+
5
+
6
+ class PluginLoader:
7
+ def __init__(self, group: str, auto_fn: Optional[Callable[..., ModuleType]] = None):
8
+ self.group = group
9
+ self.impls: dict[str, ModuleType] = {}
10
+ self.auto_fn = auto_fn
11
+
12
+ def clear(self):
13
+ self.impls.clear()
14
+
15
+ def load(self, name: str) -> Optional[ModuleType]:
16
+ if name in self.impls:
17
+ return self.impls[name]()
18
+ if self.auto_fn:
19
+ loader = self.auto_fn(name)
20
+ if loader:
21
+ self.impls[name] = loader
22
+ return loader()
23
+ raise errors.NoSuchModuleError(f"Can't load plugin: {self.group}:{name}")
24
+
25
+ def register(self, name: str, modulepath: str, objname: str) -> None:
26
+ def load():
27
+ mod = __import__(modulepath)
28
+ for token in modulepath.split(".")[1:]:
29
+ mod = getattr(mod, token)
30
+ return getattr(mod, objname)
31
+
32
+ self.impls[name] = load
@@ -0,0 +1,6 @@
1
+ import typing as tp
2
+ import typing_extensions as tpe
3
+
4
+ LITERAL_TYPES = frozenset([tp.Literal, tpe.Literal])
5
+
6
+ type _AnnotationScanType = tp.Type[tp.Any] | str | tp.NewType
@@ -0,0 +1,32 @@
1
+ ormlambda was created by Pablo hernandez.
2
+
3
+ Some files was originally written by other authors from sqlalchemy library and rewritten by Pablo Hernandez
4
+
5
+ Major contributing authors include:
6
+
7
+ - Pablo Hernandez
8
+ - Jason Kirtland
9
+ - Michael Trier
10
+ - Diana Clarke
11
+ - Gaetan de Menten
12
+ - Lele Gaifax
13
+ - Jonathan Ellis
14
+ - Gord Thompson
15
+ - Federico Caselli
16
+ - Philip Jenvey
17
+ - Rick Morrison
18
+ - Chris Withers
19
+ - Ants Aasma
20
+ - Sheila Allen
21
+ - Paul Johnston
22
+ - Tony Locke
23
+ - Hajime Nakagami
24
+ - Vraj Mohan
25
+ - Robert Leftwich
26
+ - Taavi Burns
27
+ - Jonathan Vanasco
28
+ - Jeff Widman
29
+ - Scott Dugas
30
+ - Dobes Vandermeer
31
+ - Ville Skytta
32
+ - Rodrigo Menezes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: ormlambda
3
- Version: 3.12.2
3
+ Version: 3.34.0
4
4
  Summary: ORM designed to interact with the database (currently with MySQL) using lambda functions and nested functions
5
5
  Author: p-hzamora
6
6
  Author-email: p.hzamora@icloud.com
@@ -0,0 +1,152 @@
1
+ ormlambda/__init__.py,sha256=0s-uDYwzCsRAdN1z_dfzi6rb-9EiR3wcbSgQNJHxlyE,772
2
+ ormlambda/caster/__init__.py,sha256=lXzW6TJwgtyFTaBhKBETyGIxEje005S3SPg7PXnYEVQ,137
3
+ ormlambda/caster/base_caster.py,sha256=c3vCGoKDyJ39kfUiS7sNKhKdjBRYSK1Ie88lwDIXqgE,1774
4
+ ormlambda/caster/caster.py,sha256=2iilDARnNGGh-NVJKXr7nhxjoaQOLJGk3RnGoSzHpOY,2453
5
+ ormlambda/caster/interfaces/ICaster.py,sha256=MCBBVBho9KH67vCcUk8nclY0a7QoqxgdyVJJR0-QDT0,759
6
+ ormlambda/caster/interfaces/__init__.py,sha256=TRoIxxgxuhUhCJq2ldLS3UEa1THrMXEIyTH5K46vyGw,43
7
+ ormlambda/common/__init__.py,sha256=g4yGxH4WEgvQ7Rix4lpp3FQ-3SeRhptNd5sabgZLQNk,59
8
+ ormlambda/common/abstract_classes/__init__.py,sha256=l39_WaBH38wrDV2KXb83c73ct7oxSIIVj2Ep4UcvxrU,186
9
+ ormlambda/common/abstract_classes/clause_info_converter.py,sha256=VdJKOfIJNjmMoeYFyqBb4tPSTswQJ-rIa5Ilj8vs5og,3086
10
+ ormlambda/common/abstract_classes/decomposition_query.py,sha256=_mANVU876xmZ1_Jf2IRLaOD3iOuEE9kurFDP9NalpgE,5506
11
+ ormlambda/common/abstract_classes/non_query_base.py,sha256=eLXAprXVjVk2sFF8X8EK0UKoOQpgxBlDRn8prLzjr30,1201
12
+ ormlambda/common/abstract_classes/query_base.py,sha256=KX1xQCfZ3kK13E1ipAFo91oXmBh0PyKRq4Xf59vsnG0,372
13
+ ormlambda/common/enums/__init__.py,sha256=4lVKCHi1JalwgNzjsAXqX-C54NJEH83y2v5baMO8fN4,103
14
+ ormlambda/common/enums/condition_types.py,sha256=QZnhhlTwzLcZ9kkmG6a08fQjUUJsJ5XGAH7QCiJRL1A,330
15
+ ormlambda/common/enums/join_type.py,sha256=EosZVnvAc72LlZHuICIgoKWwUJzhvWOIIAohcbDYPQo,354
16
+ ormlambda/common/errors/__init__.py,sha256=KLtFsctG5-LRu-mQ124FHeEqvE3K9fmf5hUt5HrBmR8,1995
17
+ ormlambda/common/global_checker.py,sha256=9FtdGl0SCSLEBBFBtburmP_Sh5h2tx88ZG08vjUordc,894
18
+ ormlambda/common/interfaces/ICustomAlias.py,sha256=GS-Riw_8yCr7N9DXSf5nZxkrwMH6eomNd-BdEhCA7fY,161
19
+ ormlambda/common/interfaces/IDecompositionQuery.py,sha256=2fwcXONBnYpxL1YHPHaLxqQJ4NANGuTky69QNa74xd4,853
20
+ ormlambda/common/interfaces/IJoinSelector.py,sha256=-w-MJmwq65tpDLtigWSLgvAqeOl75DA-EyWIugNkfCs,490
21
+ ormlambda/common/interfaces/INonQueryCommand.py,sha256=7CjLW4sKqkR5zUIGvhRXOtzTs6vypJW1a9EJHlgCw2c,260
22
+ ormlambda/common/interfaces/IQueryCommand.py,sha256=13vm_adVZ51BumMnNPHrqhzdC1pQVfZEVb6pkZgK-EU,475
23
+ ormlambda/common/interfaces/__init__.py,sha256=np5wuAnBVAHDyD01-X3M9qPmzbjOzP6KNAj9BFazGd4,300
24
+ ormlambda/dialects/__init__.py,sha256=srorTnQfbyn7meJej4rJPR5xwnxwlbhPXl6jJ8ocUIA,865
25
+ ormlambda/dialects/default/__init__.py,sha256=N1B0LKEDu7r2-mTF9mBA4ReyhYeDuJDnbQCiH4hJvFQ,33
26
+ ormlambda/dialects/default/base.py,sha256=rmK-nV5luN2lphSgisM8TBy3s4JXVgvZa79ATHeVOuU,1088
27
+ ormlambda/dialects/interface/__init__.py,sha256=IbB5o6ae7XNVVfNt4uqZRZcVK9HHG6eLLK_E0J99kwY,43
28
+ ormlambda/dialects/interface/dialect.py,sha256=z47GXCi-uJ6Oq7Zm64OHM0q61T3xWCss-uGdcuuXng0,2810
29
+ ormlambda/dialects/mysql/__init__.py,sha256=_rQVMxQHYOBHw0qjAw4XZUuhQ1fw63fmON4HSbS4-po,585
30
+ ormlambda/dialects/mysql/base.py,sha256=HVu42IdA63sY5yh7U8NQFnddllXvw02yfscmZVEUJsg,11692
31
+ ormlambda/dialects/mysql/caster/__init__.py,sha256=Df2sdZaAJ1Mi5Ego0sILMk5pF1NbK-nlV0hbpzd0PWE,47
32
+ ormlambda/dialects/mysql/caster/caster.py,sha256=kuGp3Kq5sFsUylGdqX5BOFWxxZdXoO_iyGk1PYy2Beo,854
33
+ ormlambda/dialects/mysql/caster/types/__init__.py,sha256=nE2bHykuvxTu49nzZ48_PbVe6J62pbWunHBJT2mfoM8,448
34
+ ormlambda/dialects/mysql/caster/types/boolean.py,sha256=EYOxnR7-XU30UYZbBbMH4pyynTw5CPU1G8V5xpCthg4,1100
35
+ ormlambda/dialects/mysql/caster/types/bytes.py,sha256=Mzl5oI2q6hGL9TFrTS-Ae1olQlAVtvNoxTSLUSBb5v8,1026
36
+ ormlambda/dialects/mysql/caster/types/datetime.py,sha256=ISzcsbwijTa2wC9ZD8zy5piRm9BdnT9GxkMNf4FQYug,1189
37
+ ormlambda/dialects/mysql/caster/types/float.py,sha256=EbU6J3yoL5_naLowfibkfUC9Bk9WzDaWks7lJ2pNhyA,1026
38
+ ormlambda/dialects/mysql/caster/types/int.py,sha256=a30xbe0LNj2BvbtLNZhUXFvT3WJ115MFsHC19Y3NLTk,1016
39
+ ormlambda/dialects/mysql/caster/types/iterable.py,sha256=nFPMOiaahzw_HWSdMZLRDQVim0aWUMoP-OLvp7vONC4,1029
40
+ ormlambda/dialects/mysql/caster/types/none.py,sha256=Bl4jpVVyoLG7ehoCAYj9lFBZbRWbyDN8QsQeWmIb84I,948
41
+ ormlambda/dialects/mysql/caster/types/point.py,sha256=GHAf51kE0AS7wOlCYM9YW-z2ZbmY8hXwcHs979ZCeaY,1442
42
+ ormlambda/dialects/mysql/caster/types/string.py,sha256=WFjTC5phuJ_-ShuokndFbqGuFgGZZx9GbpozH4rlB2g,1017
43
+ ormlambda/dialects/mysql/clauses/ST_AsText.py,sha256=YrBf-cbkyjI_335IaOZ1LC-vgh1y3PqVOcBTrKj95Hs,1278
44
+ ormlambda/dialects/mysql/clauses/ST_Contains.py,sha256=xzIWxJftryVoQCKUmV7TtGDkFAzUFhINXxLcWhuwac4,1189
45
+ ormlambda/dialects/mysql/clauses/__init__.py,sha256=z9PcBxAATLm5fbl6S6_mTRC58zhA1JL9W4Ftliv4mRc,508
46
+ ormlambda/dialects/mysql/clauses/count.py,sha256=sY2c5KlLT724DODLnJOjZZe14RdfoZvf1z3MjVVwAT4,1032
47
+ ormlambda/dialects/mysql/clauses/delete.py,sha256=v38-Mq32uE5LRXzD0gME5MFtw2QK5qwxacv_B69wLeE,336
48
+ ormlambda/dialects/mysql/clauses/group_by.py,sha256=tYFIlcY5gTi1qcPrCtkbwSJeEZ7gF6DJ8puf6sdgyaE,402
49
+ ormlambda/dialects/mysql/clauses/having.py,sha256=GTgjS_KJ4umxB2wgt533cfFn8T0Dx7GvMgJL3cHXIAs,342
50
+ ormlambda/dialects/mysql/clauses/insert.py,sha256=RYQh8lgAl-Aua-xQneVmn310ouJSAU7F4EJJ5VxuyX4,294
51
+ ormlambda/dialects/mysql/clauses/joins.py,sha256=0GUd1YMPaZdboqGOPSM1sCFBKPO7DQOG5K5mzeTSeBw,448
52
+ ormlambda/dialects/mysql/clauses/limit.py,sha256=uIV54zFLlkthaxBFp-qKGfWkKooeWdrHvuRhVlj0qiw,127
53
+ ormlambda/dialects/mysql/clauses/offset.py,sha256=Fffxmya1B70cjjOTqk9RjoVZHnyFfgjBb8KdLPPL0MM,130
54
+ ormlambda/dialects/mysql/clauses/order.py,sha256=lD08cc9_jQSYKJppp_NQqMira9t1FXfmeGBYlPpCrUU,210
55
+ ormlambda/dialects/mysql/clauses/update.py,sha256=up0zRl8hhVbQHzkgiHaO3V6DlbU0ystTue-xmE3WV7o,234
56
+ ormlambda/dialects/mysql/clauses/upsert.py,sha256=xEvdGdQVUu6so_CQKdqLMwIo_B-gm3dGRD2bWsV8N6s,238
57
+ ormlambda/dialects/mysql/clauses/where.py,sha256=JCqKfMCt_tiUXtLa-DW0y6_IyNqIxLC6-iju_94oeBA,242
58
+ ormlambda/dialects/mysql/mysqlconnector.py,sha256=DOjK7U7LOhjuVQJULzAV8xaRGX0OlBU8APUeRiTcbDY,1378
59
+ ormlambda/dialects/mysql/repository/__init__.py,sha256=DVXF2zWiG1WvHRRdXcxcHg2PSAioaS2P6Qlwx6xpRuE,39
60
+ ormlambda/dialects/mysql/repository/pool_types.py,sha256=6c7LMS1VGR8ko1LB1T8DQzn1l10Mzk8PfIeYEOb9w30,1839
61
+ ormlambda/dialects/mysql/repository/repository.py,sha256=-LwEWRvyq6_DDmWD2sWiH9x12x0RUDmH94ZID1Xyvac,7067
62
+ ormlambda/dialects/mysql/types.py,sha256=lOhdi442saxQJlQ_jgChBETE0fFMGTQLWN0a76R4fkc,23453
63
+ ormlambda/dialects/sqlite/__init__.py,sha256=2EMmxD7ORtGoD18GJ_9aC_tPutAq9ormMZJmaJ5nkYA,103
64
+ ormlambda/dialects/sqlite/base.py,sha256=24LSB461yQDEnXa-TsQt_srJmBCAR6M6419pa40CL_4,1503
65
+ ormlambda/dialects/sqlite/pysqlite.py,sha256=dZY0NV2IvSTk3DNEDyncstmIABKj3M2xfmhf2dc2zQs,680
66
+ ormlambda/engine/__init__.py,sha256=JpCLfuW1zcJi4ki97ajXh0aQxMSvWBKzDlBZx9ZVF9o,132
67
+ ormlambda/engine/base.py,sha256=P63f6N471slfvfrYyLInhzN-Sqs1RJJns-MQbnrrpf4,2548
68
+ ormlambda/engine/create.py,sha256=caDYXX4BP5uODSrdJXRZvWWjbliDgH1TiSvhtHP3RNY,533
69
+ ormlambda/engine/url.py,sha256=ZzdgZU_Cnjhonbbr5OfBvq_ThUPnDj9v-3-7O54ENm0,26137
70
+ ormlambda/engine/utils.py,sha256=fFoiKsiFuLcjcBVYNebVoYnMrEj3aZdoxEVSNfCY-GM,522
71
+ ormlambda/env.py,sha256=rCZKT2rpvRF3hPtkLmtiaVAIxQ0xj8tF7ZKJpFp7BkA,736
72
+ ormlambda/errors.py,sha256=ddv_848pl53seKJoXe3mElmatQiwEScwfGkCXU1XZkM,504
73
+ ormlambda/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
74
+ ormlambda/model/base_model.py,sha256=kgobamJ4GHmDEU-g2YTVIPTXPJFnNK3rsQOm2rXq4kU,903
75
+ ormlambda/repository/__init__.py,sha256=4KAhKn6vWV7bslewvGMNqbbbUnz1DLnH4yy-M5QNAQA,112
76
+ ormlambda/repository/base_repository.py,sha256=CzHU-yUCycMqTp8RFI0mj2hS2RgC9INu3X20HsgyEKA,1270
77
+ ormlambda/repository/interfaces/IDatabaseConnection.py,sha256=pxczjx0b53yjjg5hvVDloMgUTFDahVC3HlJLQjo9_1w,283
78
+ ormlambda/repository/interfaces/IRepositoryBase.py,sha256=jTlViARH5SWIcYXstmXhttvNOShJ5mmAbTEmfGLiRuA,3527
79
+ ormlambda/repository/interfaces/__init__.py,sha256=t8Mn0aRZm8uF4MGaqjEANTTADCdOwNF0THZ_qebyzwo,126
80
+ ormlambda/repository/response.py,sha256=TBmWUGGoZChjXVhZXU3F84eUUA1rf7VPeNi92Ae8-2I,4506
81
+ ormlambda/sql/__init__.py,sha256=0CWQzfxhTRWXozoRsg460o_ZwjW9w4uyL5jQUcD4eHg,121
82
+ ormlambda/sql/clause_info/__init__.py,sha256=wOr8M0ZW7fJ-OGHok9eExh7fVP6kiwqGckEsKdE0U7A,255
83
+ ormlambda/sql/clause_info/aggregate_function_base.py,sha256=FCTrXhDvO_XDVBXZK5AiUHonDENHT_MFxW6kn2_--6E,3541
84
+ ormlambda/sql/clause_info/clause_info.py,sha256=ypiBjvuij4iKdMAkTPy7jlCa7hZIEi11agsaVCoHtKM,12674
85
+ ormlambda/sql/clause_info/clause_info_context.py,sha256=Y32p3x4mqcdNHbAowrKaN_ldnGn7zvaP1UdAkWWryhM,2852
86
+ ormlambda/sql/clause_info/interface/IAggregate.py,sha256=P-QPaTMAMHVR5M9-ClmL8wsj0uNGG5xpxjuAwWnzKxA,216
87
+ ormlambda/sql/clause_info/interface/IClauseInfo.py,sha256=Gnr6vArgimCt0oJqW-_q2_5jMi8EDBW1wZ8rEF2uzTk,921
88
+ ormlambda/sql/clause_info/interface/__init__.py,sha256=bTNYVMPuJebEvQpPa5LBQaAesGnfljQ8BKsj1UxN09k,100
89
+ ormlambda/sql/clauses/__init__.py,sha256=9bkgw3jbd2HdB-WGQtpyHLr0K-SbCZcBU7KmHur7k1c,572
90
+ ormlambda/sql/clauses/alias.py,sha256=W58fwVYq7GS_xuPCQNIlAu_cDQZuD1AzHmr8-SdxTIg,1301
91
+ ormlambda/sql/clauses/count.py,sha256=I2-VFseieTw6tZlBy8jTJGbnW33OtgRwW0rFOumXLfs,1665
92
+ ormlambda/sql/clauses/delete.py,sha256=tTSCcSD_F-z9rl4HwfJOeb_M_XJlg-LkyU3f6vVQNTc,2289
93
+ ormlambda/sql/clauses/group_by.py,sha256=VC-XZ1Kk7cgnJjuu9Cu0dH1pUPBe60z_9hSiBL65puI,829
94
+ ormlambda/sql/clauses/having.py,sha256=14ojNXefgsc_T70ZraONsKTBQCge1TD-Q5nMigo8GWk,466
95
+ ormlambda/sql/clauses/insert.py,sha256=0Fsv41g--fC3VX3GHehlu5MoSqQ0MHAkeGs2xCM8vzU,3805
96
+ ormlambda/sql/clauses/interfaces/IDelete.py,sha256=06ZEdbKBxsHSwsGMBu0E1om4WJjojZAm-L3b95eQrcc,139
97
+ ormlambda/sql/clauses/interfaces/IInsert.py,sha256=YIfMPlKu7UGgnVpZuhpr0Mtnefe-O85hqk8-GZrVK7w,139
98
+ ormlambda/sql/clauses/interfaces/ISelect.py,sha256=saA0Iat4lXfd1vc7a7t6Stc_3BJHAysGWH1AcmrhQhw,372
99
+ ormlambda/sql/clauses/interfaces/IUpdate.py,sha256=U-3Wx8lyCglhxf9gCXWO3MVgydG6gfRpzp00_MHC5cU,168
100
+ ormlambda/sql/clauses/interfaces/IUpsert.py,sha256=2m6Bcwa0X80IDLnf0QErqr01uYEydOnRta9_T1nxjK4,139
101
+ ormlambda/sql/clauses/interfaces/__init__.py,sha256=JMWEyVwPEvx3NUgMOstCKLV5HemboHdF4KLwFeUEWwM,215
102
+ ormlambda/sql/clauses/join/__init__.py,sha256=7hwAB-nKaMirTT6uNZ1JtYNkkIx5zMSa6jaqr28d8Cg,67
103
+ ormlambda/sql/clauses/join/join_context.py,sha256=69R_X_RoWO2kXPgJ94Wck6s-sJjTIqFXpOifmLsYC9c,3497
104
+ ormlambda/sql/clauses/joins.py,sha256=w0c_uHNe3BNqL9-rAdQaAFeM6ExJXTNENG_sO7I2HWI,5505
105
+ ormlambda/sql/clauses/limit.py,sha256=NX9qUp_8Zd-0myZ80PhD2tbF72N5jsx_SaYakf7lNbU,345
106
+ ormlambda/sql/clauses/offset.py,sha256=FibzDho7Bc1UQchrPHjOakW_0BfZVupbuI62lHoha94,350
107
+ ormlambda/sql/clauses/order.py,sha256=qOcz2T0NQNY0H7vt-jbvBRjTy3X5Lw-kGSuISTGfAPA,1609
108
+ ormlambda/sql/clauses/select.py,sha256=gJfTqTCi32Knyp-rox_qo-JeoVYr6YWTEPl9FF8FsFg,1670
109
+ ormlambda/sql/clauses/update.py,sha256=s4Vl_CmZzUYvdP2ThrTDz2ps_nU3_uwROQNICD06qsw,3319
110
+ ormlambda/sql/clauses/upsert.py,sha256=1MlHSzIVXSnCnXx_0HqX_-JT1FAxaIKHImrv-OKjnWU,2250
111
+ ormlambda/sql/clauses/where.py,sha256=Db1IpXnbqAwzZpaThFDSxkrCNLsop__aJ43cDtcZ2Sk,2129
112
+ ormlambda/sql/column/__init__.py,sha256=MwBJznOoeNE7tK9oppVtC3784XPkKo0yq9VLlh2lWUY,41
113
+ ormlambda/sql/column/column.py,sha256=onneRMZJJd85sFkJZhgfcLTCChC-vHPcS7oukt-eSUY,7380
114
+ ormlambda/sql/comparer.py,sha256=_KQ6gYe0eUg5aOL1i70mV8a1Qa1jI5UQr-0VfAMgVzk,5482
115
+ ormlambda/sql/compiler.py,sha256=fdTuGLJNWSQ2z5KEmCpHQKTif9aAAzxgnQrQSAWMeZw,23768
116
+ ormlambda/sql/ddl.py,sha256=UK35fQ6tcSYvMhmqCNP8Wo2hBfLAOOomCSTGjMR2lPU,1934
117
+ ormlambda/sql/elements.py,sha256=ABWQQZn-3CnRLhxxMJYezCRqzt86b5KgZO6Qo55ReWQ,925
118
+ ormlambda/sql/foreign_key.py,sha256=BtIy4BgwCJmKtPlk1sr_Z-l5i9uJoSJjjp1FTERMIR8,5947
119
+ ormlambda/sql/functions/__init__.py,sha256=hA8t3mUpV2p-pO4TVp5rjC5Yp7aIkWPsS8NpLi3DUh0,171
120
+ ormlambda/sql/functions/concat.py,sha256=B3uh6SsNjK57jEYvyUW4YVpWGlByeapddDozCF7TYX4,1598
121
+ ormlambda/sql/functions/max.py,sha256=wXNhFmOlMyD1sKcaBO9asQeXcfY0OvMQPkrlARVXgdg,1651
122
+ ormlambda/sql/functions/min.py,sha256=MTRGXgwzbLgKk9PJpn6JGK1TU91hZe_VsTszngLOh7Q,1570
123
+ ormlambda/sql/functions/sum.py,sha256=_TN8SitDDBVD6VlsHZH3RpmiE5hkFrGGgC3tuEctKjk,1614
124
+ ormlambda/sql/interfaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
+ ormlambda/sql/sqltypes.py,sha256=-YyzA-gPTnARoK29bMS6R3GCNvD4LTKvGH1Ev6YfUEY,14207
126
+ ormlambda/sql/table/__init__.py,sha256=LLZcMLjwFxgBCPhdm5UQYYZDIbtYWCKPO9CbcXsy5zI,50
127
+ ormlambda/sql/table/fields.py,sha256=ovNR3bJ473aKW-2NhbKr0iJlVpgW06jurHLob2IyZU8,2116
128
+ ormlambda/sql/table/table.py,sha256=riorLGKSX-Va5jMVXi6gbqebhNM2ALmPx6xIx4FHW3Y,6328
129
+ ormlambda/sql/table/table_constructor.py,sha256=c3Z-1El0onSClYBmAatoUBYUOT70tITVqtsDJMxZ9QU,1092
130
+ ormlambda/sql/type_api.py,sha256=FdEUBpdPbHIag--OU3mHY8vxMqyyzTMYygDBCUvGlcU,980
131
+ ormlambda/sql/types.py,sha256=lQxC5gbhDPRckGSRJZ4rYSZr-XUvIMMH8WfkN1wtM1g,844
132
+ ormlambda/sql/visitors.py,sha256=FJdnaiF86xK699Kq1qfHFSPtmeVsDX_PaUNHAoP8Tck,1967
133
+ ormlambda/statements/__init__.py,sha256=kmd5K0dXiLQ2xTYlhd2yXeG2l955RtpDkrAIkZlfad8,148
134
+ ormlambda/statements/base_statement.py,sha256=Dw89C2-eSwtuNc8UqzQMkoVuykf0gIWyA81YoXu6CQQ,4985
135
+ ormlambda/statements/interfaces/IStatements.py,sha256=c4GLGWEUlmi2u5wcnHLLLhLzoP4PmJnU16gciEVGu48,12883
136
+ ormlambda/statements/interfaces/__init__.py,sha256=a3RyTNVA7DwWMqvVi7gFYP4MArdU-RUYixJcxfc79HY,76
137
+ ormlambda/statements/query_builder.py,sha256=xb_idOh7sZJweBMPwG7Ow1Sl6toNkEBWPEzUcr1XdjU,5851
138
+ ormlambda/statements/statements.py,sha256=d5JjgH2UB08Y4M-aoARx-eC0l6J2HJmszhNZmqeOJ2Q,12690
139
+ ormlambda/statements/types.py,sha256=wNxgXOlL8zBT9PtVgDSnEZFmZdNAJhSzxsR9QLMzO0A,1873
140
+ ormlambda/types/__init__.py,sha256=xVFaIMcfJvbbXs8BAvmBh8FwSiLn2R6yjZs9o-h08XM,323
141
+ ormlambda/types/metadata.py,sha256=93eJItdVDOItf7YRJUVmN_m79WLa3Ge6I414ewYnKeM,624
142
+ ormlambda/util/__init__.py,sha256=PPwBGABqLG8VReokTt1pMLP3WKRPjVL3wFu7oGwnqSk,2845
143
+ ormlambda/util/module_tree/__init__.py,sha256=LNQtqkwO1ul49Th3aHAIiyt0Wt899GmXCc44Uz1eDyY,53
144
+ ormlambda/util/module_tree/dfs_traversal.py,sha256=lSF03G63XtJFLp03ueAmsHMBvhUkjptDbK3IugXm8iU,1425
145
+ ormlambda/util/module_tree/dynamic_module.py,sha256=SQ1FZW2Es5CdACD0VS8v_UZQTuFYbUWs6diAtMbKMoA,8699
146
+ ormlambda/util/plugin_loader.py,sha256=p6WLn-MF1bQd2i2GHy98WQjNKmbQdqIUyTFIcBIHC5M,1034
147
+ ormlambda/util/typing.py,sha256=Z7irz53ui0hoFnJTe06NX4JPl60_thgdjJIxh5gjGGk,169
148
+ ormlambda-3.34.0.dist-info/AUTHORS,sha256=uWpOHaCPTOLbVkk5x9McoLwbgzSeCg7yILeDRyMGWGM,606
149
+ ormlambda-3.34.0.dist-info/LICENSE,sha256=xBprFw8GJLdHMOoUqDk0427EvjIcbEREvXXVFULuuXU,1080
150
+ ormlambda-3.34.0.dist-info/METADATA,sha256=Txg7W3AOTMVHGnKZPajK1d12uWupCfW7TmSKu7xbX0w,13377
151
+ ormlambda-3.34.0.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
152
+ ormlambda-3.34.0.dist-info/RECORD,,
@@ -1,4 +0,0 @@
1
- from .select import ISelect # noqa: F401
2
- from .delete import IDelete # noqa: F401
3
- from .insert import IInsert # noqa: F401
4
- from .update import IUpdate # noqa: F401
@@ -1,2 +0,0 @@
1
- from .abstract_delete import DeleteQueryBase # noqa: F401
2
- from .IDelete import IDelete # noqa: F401
@@ -1,17 +0,0 @@
1
- from __future__ import annotations
2
- from abc import abstractmethod
3
- from typing import TYPE_CHECKING
4
-
5
- if TYPE_CHECKING:
6
- from ormlambda import Table, BaseRepository
7
- from ormlambda.common.abstract_classes import NonQueryBase
8
-
9
- from .IDelete import IDelete
10
-
11
-
12
- class DeleteQueryBase[T: Table, TRepo: BaseRepository](NonQueryBase[T, TRepo], IDelete[T]):
13
- def __init__(self, model: T, repository: TRepo) -> None:
14
- super().__init__(model, repository)
15
-
16
- @abstractmethod
17
- def delete(self, instances: T | list[T]) -> None: ...
@@ -1,2 +0,0 @@
1
- from .IInsert import IInsert # noqa: F401
2
- from .abstract_insert import InsertQueryBase # noqa: F401
@@ -1,25 +0,0 @@
1
- from __future__ import annotations
2
- from abc import abstractmethod
3
- from typing import TYPE_CHECKING
4
-
5
- if TYPE_CHECKING:
6
- from ormlambda import Table
7
- from ormlambda.repository import IRepositoryBase
8
-
9
- from ormlambda.common.abstract_classes import NonQueryBase
10
- from .IInsert import IInsert
11
-
12
-
13
- class InsertQueryBase[T: Table, TRepo: IRepositoryBase](NonQueryBase[T, TRepo], IInsert[T]):
14
- def __init__(self, model: T, repository: TRepo) -> None:
15
- super().__init__(model, repository)
16
-
17
- @abstractmethod
18
- def insert(self, instances: T | list[T]) -> None: ...
19
-
20
- @property
21
- @abstractmethod
22
- def CLAUSE(self) -> str: ...
23
-
24
- @abstractmethod
25
- def execute(self) -> None: ...
@@ -1 +0,0 @@
1
- from .ISelect import ISelect # noqa: F401
@@ -1,2 +0,0 @@
1
- from .abstract_update import UpdateQueryBase # noqa: F401
2
- from .IUpdate import IUpdate # noqa: F401
@@ -1,29 +0,0 @@
1
- from __future__ import annotations
2
- from abc import abstractmethod
3
- from typing import Any, Optional, TYPE_CHECKING
4
-
5
- from ormlambda.common.abstract_classes import NonQueryBase
6
- from ormlambda.databases.my_sql.clauses.where import Where
7
-
8
- if TYPE_CHECKING:
9
- from ormlambda.repository import IRepositoryBase
10
- from ormlambda import Table
11
-
12
- from .IUpdate import IUpdate
13
-
14
-
15
- class UpdateQueryBase[T: Table, TRepo: IRepositoryBase](NonQueryBase[T, TRepo], IUpdate):
16
- def __init__(self, model: T, repository: TRepo, where: list[Where] = list[Where]) -> None:
17
- super().__init__(model, repository)
18
- self._where: Optional[list[Where]] = where
19
-
20
- @abstractmethod
21
- def update(self, dicc: dict[str | property, Any]) -> None:
22
- return super().update(dicc)
23
-
24
- @property
25
- @abstractmethod
26
- def CLAUSE(self) -> str: ...
27
-
28
- @abstractmethod
29
- def execute(self) -> None: ...
@@ -1,2 +0,0 @@
1
- from .abstract_upsert import UpsertQueryBase # noqa: F401
2
- from .IUpsert import IUpsert # noqa: F401
@@ -1,25 +0,0 @@
1
- from __future__ import annotations
2
- from abc import abstractmethod
3
- from typing import TYPE_CHECKING
4
-
5
- if TYPE_CHECKING:
6
- from ormlambda.repository import IRepositoryBase
7
- from ormlambda import Table
8
-
9
- from ormlambda.common.abstract_classes import NonQueryBase
10
- from .IUpsert import IUpsert
11
-
12
-
13
- class UpsertQueryBase[T: Table, TRepo: IRepositoryBase](NonQueryBase[T, TRepo], IUpsert[T]):
14
- def __init__(self, model: T, repository: TRepo) -> None:
15
- super().__init__(model, repository)
16
-
17
- @abstractmethod
18
- def upsert(self, instances: T | list[T]) -> None: ...
19
-
20
- @property
21
- @abstractmethod
22
- def CLAUSE(self) -> str: ...
23
-
24
- @abstractmethod
25
- def execute(self) -> None: ...
@@ -1,5 +0,0 @@
1
- from .my_sql import (
2
- MySQLCaster as MySQLCaster,
3
- MySQLRepository as MySQLRepository,
4
- MySQLStatements as MySQLStatements,
5
- )
@@ -1,4 +0,0 @@
1
- from mysql.connector import MySQLConnection # noqa: F401
2
- from .repository import MySQLRepository # noqa: F401
3
- from .statements import MySQLStatements # noqa: F401
4
- from .caster import MySQLCaster # noqa: F401
@@ -1,39 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from typing import Optional, get_args
4
- from ormlambda.caster import BaseCaster
5
- from ormlambda.caster import ICaster
6
-
7
-
8
- from .types import StringCaster, IntegerCaster, FloatCaster, PointCaster, NoneTypeCaster, DatetimeCaster, BytesCaster, IterableCaster
9
-
10
- from shapely import Point
11
- from types import NoneType
12
- from datetime import datetime
13
-
14
-
15
- class MySQLCaster(ICaster):
16
- @classmethod
17
- def CASTER_SELECTOR(cls):
18
- return {
19
- str: StringCaster,
20
- int: IntegerCaster,
21
- float: FloatCaster,
22
- Point: PointCaster,
23
- NoneType: NoneTypeCaster,
24
- datetime: DatetimeCaster,
25
- bytes: BytesCaster,
26
- bytearray: BytesCaster,
27
- tuple: IterableCaster,
28
- list: IterableCaster,
29
- }
30
-
31
- @classmethod
32
- def cast[TProp, TType](cls, value: TProp, type_value: Optional[TType] = None) -> BaseCaster[TProp, TType]:
33
- if len(args := get_args(type_value)) > 1:
34
- args = [x for x in args if x != NoneType]
35
-
36
- type_value = args[0]
37
-
38
- column_type = type_value if type_value else type(value)
39
- return cls.CASTER_SELECTOR()[column_type](value, column_type)
@@ -1,20 +0,0 @@
1
- from .create_database import CreateDatabase as CreateDatabase
2
- from .create_database import TypeExists as TypeExists
3
- from .delete import DeleteQuery as DeleteQuery
4
- from .drop_database import DropDatabase as DropDatabase
5
- from .drop_table import DropTable as DropTable
6
- from .insert import InsertQuery as InsertQuery
7
- from .joins import JoinSelector as JoinSelector
8
- from .joins import JoinType as JoinType
9
- from .limit import Limit as Limit
10
- from .offset import Offset as Offset
11
- from .order import Order as Order
12
- from .update import UpdateQuery as UpdateQuery
13
- from .upsert import UpsertQuery as UpsertQuery
14
- from .where import Where as Where
15
- from .having import Having as Having
16
- from .count import Count as Count
17
- from .group_by import GroupBy as GroupBy
18
- from .alias import Alias as Alias
19
- from .ST_AsText import ST_AsText as ST_AsText
20
- from .select import Select as Select
@@ -1,35 +0,0 @@
1
- from typing import Literal, override
2
- from mysql.connector import errorcode, errors
3
-
4
- from ormlambda.repository import BaseRepository
5
-
6
- TypeExists = Literal["fail", "replace", "append"]
7
-
8
-
9
- class CreateDatabase:
10
- def __init__(self, repository: BaseRepository) -> None:
11
- self._repository: BaseRepository = repository
12
-
13
- @override
14
- @property
15
- def CLAUSE(self) -> str:
16
- return "CREATE DATABASE"
17
-
18
- @override
19
- def execute(self, name: str, if_exists: TypeExists = "fail") -> None:
20
- if self._repository.database_exists(name):
21
- if if_exists == "replace":
22
- self._repository.drop_database(name)
23
- elif if_exists == "fail":
24
- raise errors.DatabaseError(msg=f"Database '{name}' already exists", errno=errorcode.ER_DB_CREATE_EXISTS)
25
- elif if_exists == "append":
26
- counter: int = 0
27
- char: str = ""
28
- while self._repository.database_exists(name + char):
29
- counter += 1
30
- char = f"_{counter}"
31
- name += char
32
-
33
- query = f"{self.CLAUSE} {name} DEFAULT CHARACTER SET 'utf8'"
34
- self._repository.execute(query)
35
- return None
@@ -1,17 +0,0 @@
1
- from typing import override
2
-
3
- from ormlambda.repository import IRepositoryBase
4
-
5
-
6
- class DropDatabase:
7
- def __init__(self, repository: IRepositoryBase) -> None:
8
- self._repository: IRepositoryBase = repository
9
-
10
- @override
11
- def execute(self, name: str) -> None:
12
- return self._repository.execute(f"{self.CLAUSE} {name}")
13
-
14
- @override
15
- @property
16
- def CLAUSE(self) -> str:
17
- return "DROP DATABASE IF EXISTS"
@@ -1,26 +0,0 @@
1
- from __future__ import annotations
2
- from typing import Literal, override, TYPE_CHECKING
3
-
4
- if TYPE_CHECKING:
5
- from mysql.connector import MySQLConnection
6
-
7
- from ormlambda.repository import BaseRepository
8
-
9
-
10
- TypeExists = Literal["fail", "replace", "append"]
11
-
12
-
13
- class DropTable:
14
- def __init__(self, repository: BaseRepository[MySQLConnection]) -> None:
15
- self._repository: BaseRepository[MySQLConnection] = repository
16
-
17
- @override
18
- def execute(self, name: str = None) -> None:
19
- query = rf"{self.CLAUSE} {name}"
20
- self._repository.execute(query)
21
- return None
22
-
23
- @property
24
- @override
25
- def CLAUSE(self) -> str:
26
- return "DROP TABLE"
@@ -1,30 +0,0 @@
1
- import typing as tp
2
- from ormlambda import Table
3
- from ormlambda.sql.clause_info import AggregateFunctionBase, ClauseInfoContext
4
- from ormlambda.sql.types import ColumnType
5
-
6
-
7
- class GroupBy[T: tp.Type[Table], *Ts, TProp](AggregateFunctionBase):
8
- @classmethod
9
- def FUNCTION_NAME(self) -> str:
10
- return "GROUP BY"
11
-
12
- def __init__(
13
- self,
14
- column: ColumnType,
15
- context: ClauseInfoContext,
16
- **kwargs,
17
- ):
18
- super().__init__(
19
- table=column.table,
20
- column=column,
21
- alias_table=None,
22
- alias_clause=None,
23
- context=context,
24
- **kwargs,
25
- )
26
-
27
- @property
28
- def query(self) -> str:
29
- column = self._create_query()
30
- return f"{self.FUNCTION_NAME()} {column}"
@@ -1,17 +0,0 @@
1
- from typing import override
2
-
3
- from ormlambda.common.interfaces.IQueryCommand import IQuery
4
-
5
-
6
- class Limit(IQuery):
7
- LIMIT = "LIMIT"
8
-
9
- def __init__(self, number: int) -> None:
10
- if not isinstance(number, int):
11
- raise ValueError
12
- self._number: int = number
13
-
14
- @override
15
- @property
16
- def query(self) -> str:
17
- return f"{self.LIMIT} {self._number}"
@@ -1,17 +0,0 @@
1
- from typing import override
2
-
3
- from ormlambda.common.interfaces.IQueryCommand import IQuery
4
-
5
-
6
- class Offset(IQuery):
7
- OFFSET = "OFFSET"
8
-
9
- def __init__(self, number: int) -> None:
10
- if not isinstance(number, int):
11
- raise ValueError
12
- self._number: int = number
13
-
14
- @override
15
- @property
16
- def query(self) -> str:
17
- return f"{self.OFFSET} {self._number}"
@@ -1 +0,0 @@
1
- from .repository import MySQLRepository # noqa: F401