ormlambda 3.12.2__py3-none-any.whl → 3.34.1__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 (145) 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/databases/__init__.py +0 -1
  11. ormlambda/databases/my_sql/__init__.py +0 -1
  12. ormlambda/databases/my_sql/caster/caster.py +23 -19
  13. ormlambda/databases/my_sql/caster/types/__init__.py +3 -0
  14. ormlambda/databases/my_sql/caster/types/boolean.py +35 -0
  15. ormlambda/databases/my_sql/caster/types/bytes.py +7 -7
  16. ormlambda/databases/my_sql/caster/types/date.py +34 -0
  17. ormlambda/databases/my_sql/caster/types/datetime.py +7 -7
  18. ormlambda/databases/my_sql/caster/types/decimal.py +32 -0
  19. ormlambda/databases/my_sql/caster/types/float.py +7 -7
  20. ormlambda/databases/my_sql/caster/types/int.py +7 -7
  21. ormlambda/databases/my_sql/caster/types/iterable.py +7 -7
  22. ormlambda/databases/my_sql/caster/types/none.py +8 -7
  23. ormlambda/databases/my_sql/caster/types/point.py +4 -4
  24. ormlambda/databases/my_sql/caster/types/string.py +7 -7
  25. ormlambda/databases/my_sql/clauses/ST_AsText.py +8 -7
  26. ormlambda/databases/my_sql/clauses/ST_Contains.py +10 -5
  27. ormlambda/databases/my_sql/clauses/__init__.py +4 -10
  28. ormlambda/databases/my_sql/clauses/count.py +5 -15
  29. ormlambda/databases/my_sql/clauses/delete.py +3 -50
  30. ormlambda/databases/my_sql/clauses/group_by.py +3 -16
  31. ormlambda/databases/my_sql/clauses/having.py +2 -6
  32. ormlambda/databases/my_sql/clauses/insert.py +4 -92
  33. ormlambda/databases/my_sql/clauses/joins.py +5 -140
  34. ormlambda/databases/my_sql/clauses/limit.py +4 -15
  35. ormlambda/databases/my_sql/clauses/offset.py +4 -15
  36. ormlambda/databases/my_sql/clauses/order.py +4 -61
  37. ormlambda/databases/my_sql/clauses/update.py +4 -67
  38. ormlambda/databases/my_sql/clauses/upsert.py +3 -66
  39. ormlambda/databases/my_sql/clauses/where.py +4 -42
  40. ormlambda/databases/my_sql/repository.py +217 -0
  41. ormlambda/dialects/__init__.py +39 -0
  42. ormlambda/dialects/default/__init__.py +1 -0
  43. ormlambda/dialects/default/base.py +39 -0
  44. ormlambda/dialects/interface/__init__.py +1 -0
  45. ormlambda/dialects/interface/dialect.py +78 -0
  46. ormlambda/dialects/mysql/__init__.py +8 -0
  47. ormlambda/dialects/mysql/base.py +387 -0
  48. ormlambda/dialects/mysql/mysqlconnector.py +46 -0
  49. ormlambda/dialects/mysql/types.py +732 -0
  50. ormlambda/dialects/sqlite/__init__.py +5 -0
  51. ormlambda/dialects/sqlite/base.py +47 -0
  52. ormlambda/dialects/sqlite/pysqlite.py +32 -0
  53. ormlambda/engine/__init__.py +1 -0
  54. ormlambda/engine/base.py +58 -0
  55. ormlambda/engine/create.py +9 -23
  56. ormlambda/engine/url.py +31 -19
  57. ormlambda/env.py +30 -0
  58. ormlambda/errors.py +17 -0
  59. ormlambda/model/base_model.py +7 -9
  60. ormlambda/repository/base_repository.py +36 -5
  61. ormlambda/repository/interfaces/IRepositoryBase.py +121 -7
  62. ormlambda/repository/response.py +134 -0
  63. ormlambda/sql/clause_info/aggregate_function_base.py +19 -9
  64. ormlambda/sql/clause_info/clause_info.py +34 -17
  65. ormlambda/sql/clauses/__init__.py +14 -0
  66. ormlambda/{databases/my_sql → sql}/clauses/alias.py +23 -6
  67. ormlambda/sql/clauses/count.py +57 -0
  68. ormlambda/sql/clauses/delete.py +71 -0
  69. ormlambda/sql/clauses/group_by.py +30 -0
  70. ormlambda/sql/clauses/having.py +21 -0
  71. ormlambda/sql/clauses/insert.py +104 -0
  72. ormlambda/sql/clauses/interfaces/__init__.py +5 -0
  73. ormlambda/{components → sql/clauses}/join/join_context.py +15 -7
  74. ormlambda/sql/clauses/joins.py +159 -0
  75. ormlambda/sql/clauses/limit.py +15 -0
  76. ormlambda/sql/clauses/offset.py +15 -0
  77. ormlambda/sql/clauses/order.py +55 -0
  78. ormlambda/{databases/my_sql → sql}/clauses/select.py +12 -13
  79. ormlambda/sql/clauses/update.py +84 -0
  80. ormlambda/sql/clauses/upsert.py +77 -0
  81. ormlambda/sql/clauses/where.py +65 -0
  82. ormlambda/sql/column/__init__.py +1 -0
  83. ormlambda/sql/{column.py → column/column.py} +82 -22
  84. ormlambda/sql/comparer.py +51 -37
  85. ormlambda/sql/compiler.py +427 -0
  86. ormlambda/sql/ddl.py +68 -0
  87. ormlambda/sql/elements.py +36 -0
  88. ormlambda/sql/foreign_key.py +43 -39
  89. ormlambda/{databases/my_sql → sql}/functions/concat.py +13 -5
  90. ormlambda/{databases/my_sql → sql}/functions/max.py +9 -4
  91. ormlambda/{databases/my_sql → sql}/functions/min.py +9 -13
  92. ormlambda/{databases/my_sql → sql}/functions/sum.py +8 -10
  93. ormlambda/sql/sqltypes.py +647 -0
  94. ormlambda/sql/table/__init__.py +1 -1
  95. ormlambda/sql/table/table.py +179 -0
  96. ormlambda/sql/table/table_constructor.py +1 -208
  97. ormlambda/sql/type_api.py +35 -0
  98. ormlambda/sql/types.py +3 -1
  99. ormlambda/sql/visitors.py +74 -0
  100. ormlambda/statements/__init__.py +1 -0
  101. ormlambda/statements/base_statement.py +28 -38
  102. ormlambda/statements/interfaces/IStatements.py +5 -4
  103. ormlambda/{databases/my_sql → statements}/query_builder.py +35 -30
  104. ormlambda/{databases/my_sql → statements}/statements.py +50 -60
  105. ormlambda/statements/types.py +2 -2
  106. ormlambda/types/__init__.py +24 -0
  107. ormlambda/types/metadata.py +42 -0
  108. ormlambda/util/__init__.py +88 -0
  109. ormlambda/util/load_module.py +21 -0
  110. ormlambda/util/plugin_loader.py +32 -0
  111. ormlambda/util/typing.py +6 -0
  112. ormlambda-3.34.1.dist-info/AUTHORS +32 -0
  113. {ormlambda-3.12.2.dist-info → ormlambda-3.34.1.dist-info}/METADATA +2 -3
  114. ormlambda-3.34.1.dist-info/RECORD +157 -0
  115. {ormlambda-3.12.2.dist-info → ormlambda-3.34.1.dist-info}/WHEEL +1 -1
  116. ormlambda/components/__init__.py +0 -4
  117. ormlambda/components/delete/__init__.py +0 -2
  118. ormlambda/components/delete/abstract_delete.py +0 -17
  119. ormlambda/components/insert/__init__.py +0 -2
  120. ormlambda/components/insert/abstract_insert.py +0 -25
  121. ormlambda/components/select/__init__.py +0 -1
  122. ormlambda/components/update/__init__.py +0 -2
  123. ormlambda/components/update/abstract_update.py +0 -29
  124. ormlambda/components/upsert/__init__.py +0 -2
  125. ormlambda/components/upsert/abstract_upsert.py +0 -25
  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/repository/__init__.py +0 -1
  129. ormlambda/databases/my_sql/repository/repository.py +0 -351
  130. ormlambda/engine/template.py +0 -47
  131. ormlambda/sql/dtypes.py +0 -94
  132. ormlambda/utils/__init__.py +0 -1
  133. ormlambda-3.12.2.dist-info/RECORD +0 -125
  134. /ormlambda/databases/my_sql/{types.py → pool_types.py} +0 -0
  135. /ormlambda/{components/delete → sql/clauses/interfaces}/IDelete.py +0 -0
  136. /ormlambda/{components/insert → sql/clauses/interfaces}/IInsert.py +0 -0
  137. /ormlambda/{components/select → sql/clauses/interfaces}/ISelect.py +0 -0
  138. /ormlambda/{components/update → sql/clauses/interfaces}/IUpdate.py +0 -0
  139. /ormlambda/{components/upsert → sql/clauses/interfaces}/IUpsert.py +0 -0
  140. /ormlambda/{components → sql/clauses}/join/__init__.py +0 -0
  141. /ormlambda/{databases/my_sql → sql}/functions/__init__.py +0 -0
  142. /ormlambda/{utils → util}/module_tree/__init__.py +0 -0
  143. /ormlambda/{utils → util}/module_tree/dfs_traversal.py +0 -0
  144. /ormlambda/{utils → util}/module_tree/dynamic_module.py +0 -0
  145. {ormlambda-3.12.2.dist-info → ormlambda-3.34.1.dist-info}/LICENSE +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,13 +1,12 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.1
2
2
  Name: ormlambda
3
- Version: 3.12.2
3
+ Version: 3.34.1
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
7
7
  Requires-Python: >=3.12,<4.0
8
8
  Classifier: Programming Language :: Python :: 3
9
9
  Classifier: Programming Language :: Python :: 3.12
10
- Classifier: Programming Language :: Python :: 3.13
11
10
  Requires-Dist: mysql-connector-python (>=9.0.0,<10.0.0)
12
11
  Requires-Dist: shapely (>=2.0.6,<3.0.0)
13
12
  Description-Content-Type: text/markdown
@@ -0,0 +1,157 @@
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/databases/__init__.py,sha256=uMUnB19I5qlpjLkepLpNhk9L3--fijXmHNMledQWj5w,96
25
+ ormlambda/databases/my_sql/__init__.py,sha256=nDSgvRuifTJ8FXcgdOrEguYnv-VBFyCOKrQWr0RHCiY,158
26
+ ormlambda/databases/my_sql/caster/__init__.py,sha256=Df2sdZaAJ1Mi5Ego0sILMk5pF1NbK-nlV0hbpzd0PWE,47
27
+ ormlambda/databases/my_sql/caster/caster.py,sha256=h72gWNjwZ0z3nguMz1fDybN8qLhPm_vTYhZ0zUSdBPc,977
28
+ ormlambda/databases/my_sql/caster/types/__init__.py,sha256=m4YBCgQTugiUPiqIYrnEs5WUTAzQ2L9vSxVxAanHKIs,543
29
+ ormlambda/databases/my_sql/caster/types/boolean.py,sha256=EYOxnR7-XU30UYZbBbMH4pyynTw5CPU1G8V5xpCthg4,1100
30
+ ormlambda/databases/my_sql/caster/types/bytes.py,sha256=Mzl5oI2q6hGL9TFrTS-Ae1olQlAVtvNoxTSLUSBb5v8,1026
31
+ ormlambda/databases/my_sql/caster/types/date.py,sha256=8usP1Af7WUzEC8BHOBL16Zjg9j-ipMlb42p0UTFELmg,1176
32
+ ormlambda/databases/my_sql/caster/types/datetime.py,sha256=ISzcsbwijTa2wC9ZD8zy5piRm9BdnT9GxkMNf4FQYug,1189
33
+ ormlambda/databases/my_sql/caster/types/decimal.py,sha256=ycQnSqO-aFkrcsa8JKVPdnfjotNL_BUFeScYRcueOWM,1068
34
+ ormlambda/databases/my_sql/caster/types/float.py,sha256=EbU6J3yoL5_naLowfibkfUC9Bk9WzDaWks7lJ2pNhyA,1026
35
+ ormlambda/databases/my_sql/caster/types/int.py,sha256=a30xbe0LNj2BvbtLNZhUXFvT3WJ115MFsHC19Y3NLTk,1016
36
+ ormlambda/databases/my_sql/caster/types/iterable.py,sha256=nFPMOiaahzw_HWSdMZLRDQVim0aWUMoP-OLvp7vONC4,1029
37
+ ormlambda/databases/my_sql/caster/types/none.py,sha256=Bl4jpVVyoLG7ehoCAYj9lFBZbRWbyDN8QsQeWmIb84I,948
38
+ ormlambda/databases/my_sql/caster/types/point.py,sha256=GHAf51kE0AS7wOlCYM9YW-z2ZbmY8hXwcHs979ZCeaY,1442
39
+ ormlambda/databases/my_sql/caster/types/string.py,sha256=WFjTC5phuJ_-ShuokndFbqGuFgGZZx9GbpozH4rlB2g,1017
40
+ ormlambda/databases/my_sql/clauses/ST_AsText.py,sha256=YrBf-cbkyjI_335IaOZ1LC-vgh1y3PqVOcBTrKj95Hs,1278
41
+ ormlambda/databases/my_sql/clauses/ST_Contains.py,sha256=xzIWxJftryVoQCKUmV7TtGDkFAzUFhINXxLcWhuwac4,1189
42
+ ormlambda/databases/my_sql/clauses/__init__.py,sha256=GXl_sqgKLHaLQYqbsuKlaV7SwLZK8oF-MXd4zAIr2LU,555
43
+ ormlambda/databases/my_sql/clauses/count.py,sha256=sY2c5KlLT724DODLnJOjZZe14RdfoZvf1z3MjVVwAT4,1032
44
+ ormlambda/databases/my_sql/clauses/delete.py,sha256=v38-Mq32uE5LRXzD0gME5MFtw2QK5qwxacv_B69wLeE,336
45
+ ormlambda/databases/my_sql/clauses/drop_table.py,sha256=vPEE7N7z-N0vfVp0t-Qee1TBdZ9Fkvp_rvPP8LAcvdc,673
46
+ ormlambda/databases/my_sql/clauses/group_by.py,sha256=tYFIlcY5gTi1qcPrCtkbwSJeEZ7gF6DJ8puf6sdgyaE,402
47
+ ormlambda/databases/my_sql/clauses/having.py,sha256=GTgjS_KJ4umxB2wgt533cfFn8T0Dx7GvMgJL3cHXIAs,342
48
+ ormlambda/databases/my_sql/clauses/insert.py,sha256=RYQh8lgAl-Aua-xQneVmn310ouJSAU7F4EJJ5VxuyX4,294
49
+ ormlambda/databases/my_sql/clauses/joins.py,sha256=0GUd1YMPaZdboqGOPSM1sCFBKPO7DQOG5K5mzeTSeBw,448
50
+ ormlambda/databases/my_sql/clauses/limit.py,sha256=uIV54zFLlkthaxBFp-qKGfWkKooeWdrHvuRhVlj0qiw,127
51
+ ormlambda/databases/my_sql/clauses/offset.py,sha256=Fffxmya1B70cjjOTqk9RjoVZHnyFfgjBb8KdLPPL0MM,130
52
+ ormlambda/databases/my_sql/clauses/order.py,sha256=lD08cc9_jQSYKJppp_NQqMira9t1FXfmeGBYlPpCrUU,210
53
+ ormlambda/databases/my_sql/clauses/update.py,sha256=up0zRl8hhVbQHzkgiHaO3V6DlbU0ystTue-xmE3WV7o,234
54
+ ormlambda/databases/my_sql/clauses/upsert.py,sha256=xEvdGdQVUu6so_CQKdqLMwIo_B-gm3dGRD2bWsV8N6s,238
55
+ ormlambda/databases/my_sql/clauses/where.py,sha256=JCqKfMCt_tiUXtLa-DW0y6_IyNqIxLC6-iju_94oeBA,242
56
+ ormlambda/databases/my_sql/pool_types.py,sha256=6c7LMS1VGR8ko1LB1T8DQzn1l10Mzk8PfIeYEOb9w30,1839
57
+ ormlambda/databases/my_sql/repository.py,sha256=rmJXu49Absd_ULACxxM-B79TAqwRLdpV4VC0zF_Hw2Q,7203
58
+ ormlambda/dialects/__init__.py,sha256=srorTnQfbyn7meJej4rJPR5xwnxwlbhPXl6jJ8ocUIA,865
59
+ ormlambda/dialects/default/__init__.py,sha256=N1B0LKEDu7r2-mTF9mBA4ReyhYeDuJDnbQCiH4hJvFQ,33
60
+ ormlambda/dialects/default/base.py,sha256=rmK-nV5luN2lphSgisM8TBy3s4JXVgvZa79ATHeVOuU,1088
61
+ ormlambda/dialects/interface/__init__.py,sha256=IbB5o6ae7XNVVfNt4uqZRZcVK9HHG6eLLK_E0J99kwY,43
62
+ ormlambda/dialects/interface/dialect.py,sha256=z47GXCi-uJ6Oq7Zm64OHM0q61T3xWCss-uGdcuuXng0,2810
63
+ ormlambda/dialects/mysql/__init__.py,sha256=y4gh32agzxxpjuC6x3oKEuCJYBwMYYuvJ-xxBS1rbv4,152
64
+ ormlambda/dialects/mysql/base.py,sha256=ocDJprw5PFhZ9vsrrUJdBoqjwRwa3V163wK1p7j-gpc,11688
65
+ ormlambda/dialects/mysql/mysqlconnector.py,sha256=DOjK7U7LOhjuVQJULzAV8xaRGX0OlBU8APUeRiTcbDY,1378
66
+ ormlambda/dialects/mysql/types.py,sha256=lOhdi442saxQJlQ_jgChBETE0fFMGTQLWN0a76R4fkc,23453
67
+ ormlambda/dialects/sqlite/__init__.py,sha256=2EMmxD7ORtGoD18GJ_9aC_tPutAq9ormMZJmaJ5nkYA,103
68
+ ormlambda/dialects/sqlite/base.py,sha256=24LSB461yQDEnXa-TsQt_srJmBCAR6M6419pa40CL_4,1503
69
+ ormlambda/dialects/sqlite/pysqlite.py,sha256=dZY0NV2IvSTk3DNEDyncstmIABKj3M2xfmhf2dc2zQs,680
70
+ ormlambda/engine/__init__.py,sha256=JpCLfuW1zcJi4ki97ajXh0aQxMSvWBKzDlBZx9ZVF9o,132
71
+ ormlambda/engine/base.py,sha256=i_q9-na1oPPrkAcQHBp3RvmaplueZlkPPaUM9_kuDWM,1985
72
+ ormlambda/engine/create.py,sha256=caDYXX4BP5uODSrdJXRZvWWjbliDgH1TiSvhtHP3RNY,533
73
+ ormlambda/engine/url.py,sha256=ZzdgZU_Cnjhonbbr5OfBvq_ThUPnDj9v-3-7O54ENm0,26137
74
+ ormlambda/engine/utils.py,sha256=fFoiKsiFuLcjcBVYNebVoYnMrEj3aZdoxEVSNfCY-GM,522
75
+ ormlambda/env.py,sha256=rCZKT2rpvRF3hPtkLmtiaVAIxQ0xj8tF7ZKJpFp7BkA,736
76
+ ormlambda/errors.py,sha256=ddv_848pl53seKJoXe3mElmatQiwEScwfGkCXU1XZkM,504
77
+ ormlambda/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
+ ormlambda/model/base_model.py,sha256=kgobamJ4GHmDEU-g2YTVIPTXPJFnNK3rsQOm2rXq4kU,903
79
+ ormlambda/repository/__init__.py,sha256=4KAhKn6vWV7bslewvGMNqbbbUnz1DLnH4yy-M5QNAQA,112
80
+ ormlambda/repository/base_repository.py,sha256=CzHU-yUCycMqTp8RFI0mj2hS2RgC9INu3X20HsgyEKA,1270
81
+ ormlambda/repository/interfaces/IDatabaseConnection.py,sha256=pxczjx0b53yjjg5hvVDloMgUTFDahVC3HlJLQjo9_1w,283
82
+ ormlambda/repository/interfaces/IRepositoryBase.py,sha256=_a1p3wZxF1rDabCcr6a44bGjHyxLvyGgmUO1c6vdv-U,3689
83
+ ormlambda/repository/interfaces/__init__.py,sha256=t8Mn0aRZm8uF4MGaqjEANTTADCdOwNF0THZ_qebyzwo,126
84
+ ormlambda/repository/response.py,sha256=TBmWUGGoZChjXVhZXU3F84eUUA1rf7VPeNi92Ae8-2I,4506
85
+ ormlambda/sql/__init__.py,sha256=0CWQzfxhTRWXozoRsg460o_ZwjW9w4uyL5jQUcD4eHg,121
86
+ ormlambda/sql/clause_info/__init__.py,sha256=wOr8M0ZW7fJ-OGHok9eExh7fVP6kiwqGckEsKdE0U7A,255
87
+ ormlambda/sql/clause_info/aggregate_function_base.py,sha256=FCTrXhDvO_XDVBXZK5AiUHonDENHT_MFxW6kn2_--6E,3541
88
+ ormlambda/sql/clause_info/clause_info.py,sha256=ypiBjvuij4iKdMAkTPy7jlCa7hZIEi11agsaVCoHtKM,12674
89
+ ormlambda/sql/clause_info/clause_info_context.py,sha256=Y32p3x4mqcdNHbAowrKaN_ldnGn7zvaP1UdAkWWryhM,2852
90
+ ormlambda/sql/clause_info/interface/IAggregate.py,sha256=P-QPaTMAMHVR5M9-ClmL8wsj0uNGG5xpxjuAwWnzKxA,216
91
+ ormlambda/sql/clause_info/interface/IClauseInfo.py,sha256=Gnr6vArgimCt0oJqW-_q2_5jMi8EDBW1wZ8rEF2uzTk,921
92
+ ormlambda/sql/clause_info/interface/__init__.py,sha256=bTNYVMPuJebEvQpPa5LBQaAesGnfljQ8BKsj1UxN09k,100
93
+ ormlambda/sql/clauses/__init__.py,sha256=9bkgw3jbd2HdB-WGQtpyHLr0K-SbCZcBU7KmHur7k1c,572
94
+ ormlambda/sql/clauses/alias.py,sha256=W58fwVYq7GS_xuPCQNIlAu_cDQZuD1AzHmr8-SdxTIg,1301
95
+ ormlambda/sql/clauses/count.py,sha256=I2-VFseieTw6tZlBy8jTJGbnW33OtgRwW0rFOumXLfs,1665
96
+ ormlambda/sql/clauses/delete.py,sha256=tTSCcSD_F-z9rl4HwfJOeb_M_XJlg-LkyU3f6vVQNTc,2289
97
+ ormlambda/sql/clauses/group_by.py,sha256=VC-XZ1Kk7cgnJjuu9Cu0dH1pUPBe60z_9hSiBL65puI,829
98
+ ormlambda/sql/clauses/having.py,sha256=14ojNXefgsc_T70ZraONsKTBQCge1TD-Q5nMigo8GWk,466
99
+ ormlambda/sql/clauses/insert.py,sha256=0Fsv41g--fC3VX3GHehlu5MoSqQ0MHAkeGs2xCM8vzU,3805
100
+ ormlambda/sql/clauses/interfaces/IDelete.py,sha256=06ZEdbKBxsHSwsGMBu0E1om4WJjojZAm-L3b95eQrcc,139
101
+ ormlambda/sql/clauses/interfaces/IInsert.py,sha256=YIfMPlKu7UGgnVpZuhpr0Mtnefe-O85hqk8-GZrVK7w,139
102
+ ormlambda/sql/clauses/interfaces/ISelect.py,sha256=saA0Iat4lXfd1vc7a7t6Stc_3BJHAysGWH1AcmrhQhw,372
103
+ ormlambda/sql/clauses/interfaces/IUpdate.py,sha256=U-3Wx8lyCglhxf9gCXWO3MVgydG6gfRpzp00_MHC5cU,168
104
+ ormlambda/sql/clauses/interfaces/IUpsert.py,sha256=2m6Bcwa0X80IDLnf0QErqr01uYEydOnRta9_T1nxjK4,139
105
+ ormlambda/sql/clauses/interfaces/__init__.py,sha256=JMWEyVwPEvx3NUgMOstCKLV5HemboHdF4KLwFeUEWwM,215
106
+ ormlambda/sql/clauses/join/__init__.py,sha256=7hwAB-nKaMirTT6uNZ1JtYNkkIx5zMSa6jaqr28d8Cg,67
107
+ ormlambda/sql/clauses/join/join_context.py,sha256=69R_X_RoWO2kXPgJ94Wck6s-sJjTIqFXpOifmLsYC9c,3497
108
+ ormlambda/sql/clauses/joins.py,sha256=w0c_uHNe3BNqL9-rAdQaAFeM6ExJXTNENG_sO7I2HWI,5505
109
+ ormlambda/sql/clauses/limit.py,sha256=NX9qUp_8Zd-0myZ80PhD2tbF72N5jsx_SaYakf7lNbU,345
110
+ ormlambda/sql/clauses/offset.py,sha256=FibzDho7Bc1UQchrPHjOakW_0BfZVupbuI62lHoha94,350
111
+ ormlambda/sql/clauses/order.py,sha256=qOcz2T0NQNY0H7vt-jbvBRjTy3X5Lw-kGSuISTGfAPA,1609
112
+ ormlambda/sql/clauses/select.py,sha256=gJfTqTCi32Knyp-rox_qo-JeoVYr6YWTEPl9FF8FsFg,1670
113
+ ormlambda/sql/clauses/update.py,sha256=s4Vl_CmZzUYvdP2ThrTDz2ps_nU3_uwROQNICD06qsw,3319
114
+ ormlambda/sql/clauses/upsert.py,sha256=1MlHSzIVXSnCnXx_0HqX_-JT1FAxaIKHImrv-OKjnWU,2250
115
+ ormlambda/sql/clauses/where.py,sha256=Db1IpXnbqAwzZpaThFDSxkrCNLsop__aJ43cDtcZ2Sk,2129
116
+ ormlambda/sql/column/__init__.py,sha256=MwBJznOoeNE7tK9oppVtC3784XPkKo0yq9VLlh2lWUY,41
117
+ ormlambda/sql/column/column.py,sha256=onneRMZJJd85sFkJZhgfcLTCChC-vHPcS7oukt-eSUY,7380
118
+ ormlambda/sql/comparer.py,sha256=_KQ6gYe0eUg5aOL1i70mV8a1Qa1jI5UQr-0VfAMgVzk,5482
119
+ ormlambda/sql/compiler.py,sha256=dSmF8RYQECPweKZI_TB9stDkLXTJy9FYvAQMNSCY8AY,12967
120
+ ormlambda/sql/ddl.py,sha256=WhVoG_zlTT9DVZlnokHB8B1SC4ZXQSrXTQJ6vlnlpEY,1644
121
+ ormlambda/sql/elements.py,sha256=ABWQQZn-3CnRLhxxMJYezCRqzt86b5KgZO6Qo55ReWQ,925
122
+ ormlambda/sql/foreign_key.py,sha256=a3lLwuIZDo6XIWgEAW7AsmHE2BrF9fa3vMpK_Cq0T_s,5587
123
+ ormlambda/sql/functions/__init__.py,sha256=hA8t3mUpV2p-pO4TVp5rjC5Yp7aIkWPsS8NpLi3DUh0,171
124
+ ormlambda/sql/functions/concat.py,sha256=B3uh6SsNjK57jEYvyUW4YVpWGlByeapddDozCF7TYX4,1598
125
+ ormlambda/sql/functions/max.py,sha256=wXNhFmOlMyD1sKcaBO9asQeXcfY0OvMQPkrlARVXgdg,1651
126
+ ormlambda/sql/functions/min.py,sha256=MTRGXgwzbLgKk9PJpn6JGK1TU91hZe_VsTszngLOh7Q,1570
127
+ ormlambda/sql/functions/sum.py,sha256=_TN8SitDDBVD6VlsHZH3RpmiE5hkFrGGgC3tuEctKjk,1614
128
+ ormlambda/sql/interfaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
129
+ ormlambda/sql/sqltypes.py,sha256=-YyzA-gPTnARoK29bMS6R3GCNvD4LTKvGH1Ev6YfUEY,14207
130
+ ormlambda/sql/table/__init__.py,sha256=LLZcMLjwFxgBCPhdm5UQYYZDIbtYWCKPO9CbcXsy5zI,50
131
+ ormlambda/sql/table/fields.py,sha256=ovNR3bJ473aKW-2NhbKr0iJlVpgW06jurHLob2IyZU8,2116
132
+ ormlambda/sql/table/table.py,sha256=U8ByMDEEXIOwfPykDcjzoyNV1WEieN40Zk18EXveX60,6594
133
+ ormlambda/sql/table/table_constructor.py,sha256=c3Z-1El0onSClYBmAatoUBYUOT70tITVqtsDJMxZ9QU,1092
134
+ ormlambda/sql/type_api.py,sha256=FdEUBpdPbHIag--OU3mHY8vxMqyyzTMYygDBCUvGlcU,980
135
+ ormlambda/sql/types.py,sha256=lQxC5gbhDPRckGSRJZ4rYSZr-XUvIMMH8WfkN1wtM1g,844
136
+ ormlambda/sql/visitors.py,sha256=FJdnaiF86xK699Kq1qfHFSPtmeVsDX_PaUNHAoP8Tck,1967
137
+ ormlambda/statements/__init__.py,sha256=kmd5K0dXiLQ2xTYlhd2yXeG2l955RtpDkrAIkZlfad8,148
138
+ ormlambda/statements/base_statement.py,sha256=Dw89C2-eSwtuNc8UqzQMkoVuykf0gIWyA81YoXu6CQQ,4985
139
+ ormlambda/statements/interfaces/IStatements.py,sha256=b2eQBeEoRivehhopmm-gca6qRSZ3ld06YMEHQEVP1d8,12824
140
+ ormlambda/statements/interfaces/__init__.py,sha256=a3RyTNVA7DwWMqvVi7gFYP4MArdU-RUYixJcxfc79HY,76
141
+ ormlambda/statements/query_builder.py,sha256=xb_idOh7sZJweBMPwG7Ow1Sl6toNkEBWPEzUcr1XdjU,5851
142
+ ormlambda/statements/statements.py,sha256=ZgZdrwXwj4QBpY_ogTy4S-8i3uH42LHEuGOMcInBR1c,12555
143
+ ormlambda/statements/types.py,sha256=wNxgXOlL8zBT9PtVgDSnEZFmZdNAJhSzxsR9QLMzO0A,1873
144
+ ormlambda/types/__init__.py,sha256=xVFaIMcfJvbbXs8BAvmBh8FwSiLn2R6yjZs9o-h08XM,323
145
+ ormlambda/types/metadata.py,sha256=93eJItdVDOItf7YRJUVmN_m79WLa3Ge6I414ewYnKeM,624
146
+ ormlambda/util/__init__.py,sha256=DZWwtrD8tNJxJcK7vdAuTdZeDJC6jBtqIDPv-i8GJFY,2910
147
+ ormlambda/util/load_module.py,sha256=W9NeCuwditS0UuQU0TlVHA65E74NYggEEfdWy1ap9ZI,648
148
+ ormlambda/util/module_tree/__init__.py,sha256=LNQtqkwO1ul49Th3aHAIiyt0Wt899GmXCc44Uz1eDyY,53
149
+ ormlambda/util/module_tree/dfs_traversal.py,sha256=lSF03G63XtJFLp03ueAmsHMBvhUkjptDbK3IugXm8iU,1425
150
+ ormlambda/util/module_tree/dynamic_module.py,sha256=vJOqvm5-WKksudXBK1IcTn4WsuLxt1qXNISq-_21sy4,8705
151
+ ormlambda/util/plugin_loader.py,sha256=p6WLn-MF1bQd2i2GHy98WQjNKmbQdqIUyTFIcBIHC5M,1034
152
+ ormlambda/util/typing.py,sha256=Z7irz53ui0hoFnJTe06NX4JPl60_thgdjJIxh5gjGGk,169
153
+ ormlambda-3.34.1.dist-info/AUTHORS,sha256=uWpOHaCPTOLbVkk5x9McoLwbgzSeCg7yILeDRyMGWGM,606
154
+ ormlambda-3.34.1.dist-info/LICENSE,sha256=xBprFw8GJLdHMOoUqDk0427EvjIcbEREvXXVFULuuXU,1080
155
+ ormlambda-3.34.1.dist-info/METADATA,sha256=q1FalyMLHthaHwhaCbL2lzNdIq6pkyZdvoVQSeb-Tas,13326
156
+ ormlambda-3.34.1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
157
+ ormlambda-3.34.1.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.1.2
2
+ Generator: poetry-core 1.9.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -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,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 +0,0 @@
1
- from .repository import MySQLRepository # noqa: F401