ormlambda 3.11.0__py3-none-any.whl → 3.11.2__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.
ormlambda/__init__.py CHANGED
@@ -21,4 +21,4 @@ from .model.base_model import (
21
21
  ORM as ORM,
22
22
  ) # COMMENT: to avoid relative import we need to import BaseModel after import Table,Column, ForeignKey, IRepositoryBase and Disassembler
23
23
 
24
- from .engine import create_engine, URL # noqa: F401
24
+ from .engine import create_engine, URL, make_url # noqa: F401
@@ -15,7 +15,7 @@ if TYPE_CHECKING:
15
15
  PLACEHOLDER: str = "%s"
16
16
 
17
17
 
18
- class Caster[TRepo]:
18
+ class Caster:
19
19
  def __init__(self, repository: IRepositoryBase):
20
20
  self._repository: IRepositoryBase = repository
21
21
  self._caster = RepositoryTemplateDict().get(repository).caster
@@ -6,7 +6,6 @@ if TYPE_CHECKING:
6
6
  from ormlambda import Table
7
7
  from ormlambda.repository import IRepositoryBase
8
8
  from ormlambda.components.delete import DeleteQueryBase
9
- from mysql.connector import MySQLConnection
10
9
 
11
10
 
12
11
  class DeleteQuery[T: Table](DeleteQueryBase[T, IRepositoryBase]):
@@ -14,7 +14,7 @@ class Max(AggregateFunctionBase[None]):
14
14
 
15
15
  def __init__[TProp](
16
16
  self,
17
- elements: tuple[ColumnType[TProp], ...] | ColumnType[TProp],
17
+ elements: ColumnType[TProp],
18
18
  alias_clause: AliasType[ColumnType[TProp]] = "max",
19
19
  context: ClauseContextType = None,
20
20
  ):
@@ -11,9 +11,11 @@ from mysql.connector import MySQLConnection
11
11
 
12
12
 
13
13
  if TYPE_CHECKING:
14
+ from ormlambda.sql.types import AliasType
14
15
  from ormlambda import Table
15
16
  from ormlambda.statements.types import OrderTypes
16
17
  from ormlambda.sql.types import ColumnType
18
+ from ormlambda.statements.types import SelectCols
17
19
  from ormlambda.repository.interfaces import IRepositoryBase
18
20
  from ormlambda.statements.interfaces import IStatements_two_generic
19
21
  from ormlambda.repository.interfaces.IRepositoryBase import TypeExists
@@ -289,25 +291,23 @@ class MySQLStatements[T: Table, *Ts](BaseStatement[T, MySQLConnection]):
289
291
  return self
290
292
 
291
293
  @override
292
- def count(
294
+ def count[TProp](
293
295
  self,
294
- selection: None | Iterable[Table] | Callable[[T], tuple] = lambda x: "*",
295
- alias_clause="count",
296
+ selection: None | SelectCols[T,TProp] = lambda x: "*",
297
+ alias="count",
296
298
  execute: bool = False,
297
299
  ) -> Optional[int]:
298
300
  if execute is True:
299
- return self.select_one(self.count(selection, alias_clause, False), flavour=dict)[alias_clause]
301
+ return self.select_one(self.count(selection, alias, False), flavour=dict)[alias]
300
302
 
301
- if GlobalChecker.is_lambda_function(selection):
302
- selection = selection(*self.models)
303
- return Count(element=selection, alias_clause=alias_clause, context=self._query_builder._context)
303
+ selection = GlobalChecker.resolved_callback_object(selection, self.models)
304
+ return Count(element=selection, alias_clause=alias, context=self._query_builder._context)
304
305
 
305
306
  @override
306
307
  def where(self, conditions: WhereTypes) -> IStatements_two_generic[T, MySQLConnection]:
307
308
  # FIXME [x]: I've wrapped self._model into tuple to pass it instance attr. Idk if it's correct
308
309
 
309
- if GlobalChecker.is_lambda_function(conditions):
310
- conditions = GlobalChecker.resolved_callback_object(conditions, self._models)
310
+ conditions = GlobalChecker.resolved_callback_object(conditions, self._models)
311
311
  if not isinstance(conditions, Iterable):
312
312
  conditions = (conditions,)
313
313
  self._query_builder.add_statement(Where(*conditions))
@@ -315,8 +315,7 @@ class MySQLStatements[T: Table, *Ts](BaseStatement[T, MySQLConnection]):
315
315
 
316
316
  @override
317
317
  def having(self, conditions: WhereTypes) -> IStatements_two_generic[T, MySQLConnection]:
318
- if GlobalChecker.is_lambda_function(conditions):
319
- conditions = GlobalChecker.resolved_callback_object(conditions, self._models)
318
+ conditions = GlobalChecker.resolved_callback_object(conditions, self._models)
320
319
  if not isinstance(conditions, Iterable):
321
320
  conditions = (conditions,)
322
321
  self._query_builder.add_statement(Having(*conditions))
@@ -324,13 +323,13 @@ class MySQLStatements[T: Table, *Ts](BaseStatement[T, MySQLConnection]):
324
323
 
325
324
  @override
326
325
  def order[TValue](self, columns: Callable[[T], TValue], order_type: OrderTypes) -> IStatements_two_generic[T, MySQLConnection]:
327
- query = GlobalChecker.resolved_callback_object(columns, self._models) if GlobalChecker.is_lambda_function(columns) else columns
326
+ query = GlobalChecker.resolved_callback_object(columns, self._models)
328
327
  order = Order(query, order_type)
329
328
  self._query_builder.add_statement(order)
330
329
  return self
331
330
 
332
331
  @override
333
- def concat(self, selector: str | Callable[[T], str], alias: str = "CONCAT") -> IAggregate:
332
+ def concat(self, selector: SelectCols[T, str], alias: str = "concat") -> IAggregate:
334
333
  return func.Concat[T](
335
334
  values=selector,
336
335
  alias_clause=alias,
@@ -340,10 +339,11 @@ class MySQLStatements[T: Table, *Ts](BaseStatement[T, MySQLConnection]):
340
339
  @override
341
340
  def max[TProp](
342
341
  self,
343
- column: Callable[[T], TProp],
342
+ column: SelectCols[T, TProp],
344
343
  alias: str = "max",
345
344
  execute: bool = False,
346
- ) -> TProp:
345
+ ) -> int:
346
+ column = GlobalChecker.resolved_callback_object(column, self.models)
347
347
  if execute is True:
348
348
  return self.select_one(self.max(column, alias, execute=False), flavour=dict)[alias]
349
349
  return func.Max(elements=column, alias_clause=alias, context=self._query_builder._context)
@@ -351,10 +351,11 @@ class MySQLStatements[T: Table, *Ts](BaseStatement[T, MySQLConnection]):
351
351
  @override
352
352
  def min[TProp](
353
353
  self,
354
- column: Callable[[T], TProp],
354
+ column: SelectCols[T, TProp],
355
355
  alias: str = "min",
356
356
  execute: bool = False,
357
- ) -> TProp:
357
+ ) -> int:
358
+ column = GlobalChecker.resolved_callback_object(column, self.models)
358
359
  if execute is True:
359
360
  return self.select_one(self.min(column, alias, execute=False), flavour=dict)[alias]
360
361
  return func.Min(elements=column, alias_clause=alias, context=self._query_builder._context)
@@ -362,10 +363,11 @@ class MySQLStatements[T: Table, *Ts](BaseStatement[T, MySQLConnection]):
362
363
  @override
363
364
  def sum[TProp](
364
365
  self,
365
- column: Callable[[T], TProp],
366
+ column: SelectCols[T, TProp],
366
367
  alias: str = "sum",
367
368
  execute: bool = False,
368
- ) -> TProp:
369
+ ) -> int:
370
+ column = GlobalChecker.resolved_callback_object(column, self.models)
369
371
  if execute is True:
370
372
  return self.select_one(self.sum(column, alias, execute=False), flavour=dict)[alias]
371
373
  return func.Sum(elements=column, alias_clause=alias, context=self._query_builder._context)
@@ -384,7 +386,7 @@ class MySQLStatements[T: Table, *Ts](BaseStatement[T, MySQLConnection]):
384
386
  by: JoinType = JoinType.INNER_JOIN,
385
387
  **kwargs,
386
388
  ):
387
- select_clause = GlobalChecker.resolved_callback_object(selector, self._models) if GlobalChecker.is_lambda_function(selector) else selector
389
+ select_clause = GlobalChecker.resolved_callback_object(selector, self._models)
388
390
 
389
391
  if selector is None:
390
392
  # COMMENT: if we do not specify any lambda function we assumed the user want to retreive only elements of the Model itself avoiding other models
@@ -463,7 +465,7 @@ class MySQLStatements[T: Table, *Ts](BaseStatement[T, MySQLConnection]):
463
465
  return self
464
466
 
465
467
  @override
466
- def alias[TProp](self, column: ColumnType[TProp], alias: str) -> ClauseInfo[T, TProp]:
468
+ def alias[TProp](self, column: ColumnType[TProp], alias: AliasType[ClauseInfo[T]]) -> ClauseInfo[T]:
467
469
  return Alias(
468
470
  table=column.table,
469
471
  column=column,
@@ -1,2 +1,2 @@
1
1
  from .create import create_engine # noqa: F401
2
- from .url import URL # noqa: F401
2
+ from .url import URL, make_url # noqa: F401
@@ -4,7 +4,6 @@ from enum import Enum
4
4
  from abc import abstractmethod, ABC
5
5
 
6
6
 
7
- from ormlambda.common.enums import JoinType
8
7
 
9
8
  if TYPE_CHECKING:
10
9
  from ormlambda.repository import BaseRepository
@@ -12,6 +11,10 @@ if TYPE_CHECKING:
12
11
  from ormlambda.sql.clause_info import IAggregate
13
12
  from ormlambda.sql.types import TupleJoinType, ColumnType
14
13
  from ormlambda.databases.my_sql.join_context import JoinContext
14
+ from ormlambda.common.enums import JoinType
15
+ from ormlambda.sql.clause_info import ClauseInfo
16
+ from ormlambda.sql.types import AliasType
17
+
15
18
 
16
19
  from ..types import (
17
20
  OrderTypes,
@@ -27,10 +30,9 @@ from ..types import (
27
30
  Select10,
28
31
  TypeExists,
29
32
  WhereTypes,
33
+ SelectCols,
30
34
  )
31
35
 
32
- type SelectCols[T, TProp] = Callable[[T], ColumnType[TProp]] | ColumnType[TProp]
33
-
34
36
 
35
37
  class IStatements[T: Table](ABC):
36
38
  @abstractmethod
@@ -132,12 +134,12 @@ class IStatements[T: Table](ABC):
132
134
  # endregion
133
135
  # region count
134
136
  @abstractmethod
135
- def count(
137
+ def count[TProp](
136
138
  self,
137
- selection: Callable[[T], tuple] = ...,
138
- alias_clause="count",
139
+ selection: None | SelectCols[T, TProp] = ...,
140
+ alias: str = ...,
139
141
  execute: bool = False,
140
- ) -> Optional[IStatements[T]]: ...
142
+ ) -> Optional[int]: ...
141
143
 
142
144
  # endregion
143
145
  # region delete
@@ -174,45 +176,41 @@ class IStatements[T: Table](ABC):
174
176
 
175
177
  # endregion
176
178
  # region order
177
- @overload
178
- def order[TValue](self, _lambda_col: Callable[[T], TValue]) -> IStatements[T]: ...
179
- @overload
180
- def order[TValue](self, _lambda_col: Callable[[T], TValue], order_type: OrderTypes) -> IStatements[T]: ...
181
179
  @abstractmethod
182
- def order[TValue](self, _lambda_col: Callable[[T], TValue], order_type: OrderTypes) -> IStatements[T]: ...
180
+ def order[TValue](self, columns: SelectCols[T, TValue], order_type: OrderTypes) -> IStatements[T]: ...
183
181
 
184
182
  # endregion
185
183
  # region concat
186
184
  @overload
187
- def concat(self, selector: Callable[[T], str], alias: str = "CONCAT") -> IAggregate: ...
185
+ def concat(self, selector: SelectCols[T, str], alias: str = "concat") -> IAggregate: ...
188
186
 
189
187
  # endregion
190
188
  # region max
191
- @overload
189
+ @abstractmethod
192
190
  def max[TProp](
193
191
  self,
194
192
  column: SelectCols[T, TProp],
195
193
  alias: Optional[str] = ...,
196
- execute: bool = ...,
197
- ) -> TProp: ...
194
+ execute: bool = False,
195
+ ) -> int: ...
198
196
  # endregion
199
197
  # region min
200
- @overload
198
+ @abstractmethod
201
199
  def min[TProp](
202
200
  self,
203
201
  column: SelectCols[T, TProp],
204
202
  alias: Optional[str] = ...,
205
- execute: bool = ...,
206
- ) -> TProp: ...
203
+ execute: bool = False,
204
+ ) -> int: ...
207
205
  # endregion
208
206
  # region sum
209
- @overload
207
+ @abstractmethod
210
208
  def sum[TProp](
211
209
  self,
212
210
  column: SelectCols[T, TProp],
213
211
  alias: Optional[str] = ...,
214
- execute: bool = ...,
215
- ) -> TProp: ...
212
+ execute: bool = False,
213
+ ) -> int: ...
216
214
 
217
215
  @overload
218
216
  def join[FKTable](self, joins: TupleJoinType[FKTable] | tuple[*TupleJoinType[FKTable]]) -> JoinContext[tuple[*TupleJoinType[FKTable]]]: ...
@@ -324,7 +322,7 @@ class IStatements[T: Table](ABC):
324
322
  # endregion
325
323
 
326
324
  @abstractmethod
327
- def alias(self, column: Callable[[T], Any], alias: str) -> IStatements[T]: ...
325
+ def alias[TProp](self, column: ColumnType[TProp], alias: AliasType[ClauseInfo[T]]) -> ClauseInfo[T]: ...
328
326
 
329
327
 
330
328
  class IStatements_two_generic[T, TPool](IStatements[T]):
@@ -10,10 +10,10 @@ from typing import (
10
10
  import enum
11
11
 
12
12
 
13
- from ormlambda.common.enums import JoinType
14
-
15
13
  if TYPE_CHECKING:
14
+ from ormlambda.common.enums import JoinType
16
15
  from ormlambda.sql.comparer import Comparer
16
+ from ormlambda.sql.types import ColumnType
17
17
 
18
18
  type OrderTypes = Literal["ASC", "DESC"] | OrderType | Iterable[OrderType]
19
19
 
@@ -52,3 +52,6 @@ type WhereTypes[LTable, LProp, RTable, RProp] = Union[
52
52
  tuple[Comparer[LTable, LProp, RTable, RProp], ...],
53
53
  Callable[[LTable], WhereTypes[LTable, LProp, RTable, RProp]],
54
54
  ]
55
+
56
+
57
+ type SelectCols[T, TProp] = Callable[[T], ColumnType[TProp]] | ColumnType[TProp]
@@ -1,12 +1,13 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: ormlambda
3
- Version: 3.11.0
3
+ Version: 3.11.2
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
10
11
  Requires-Dist: mysql-connector-python (>=9.0.0,<10.0.0)
11
12
  Requires-Dist: shapely (>=2.0.6,<3.0.0)
12
13
  Description-Content-Type: text/markdown
@@ -69,10 +70,12 @@ Once the `AddressModel` class is created, we will not only be able to access all
69
70
 
70
71
  ```python
71
72
  from models.address import Address
73
+ from ormlambda import create_engine, ORM
74
+
75
+ db = create_engine('mysql://root:1234@localhost:3306/sakila')
72
76
 
73
- db = MySQLRepository(**config_dict)
74
77
 
75
- AddressModel = ORM(Address,db)
78
+ AddressModel = ORM(Address, db)
76
79
 
77
80
  result = AddressModel.where(Address.City.Country.country.regex(r"^[aA]")).select(
78
81
  lambda address: (
@@ -360,10 +363,11 @@ class AddressCombine(BaseModel):
360
363
 
361
364
  model_config: ConfigDict = {"extra": "forbid"}
362
365
 
363
- ddbb = MySQLRepository(**config_dict)
364
- model = ORM(Address, ddbb)
366
+ db = create_engine('mysql://root:1234@localhost:3306/sakila')
367
+
365
368
  select = (
366
- model.order(lambda x: x.City.Country.country, "DESC")
369
+ ORM(Address, db)
370
+ .order(lambda x: x.City.Country.country, "DESC")
367
371
  .limit(10)
368
372
  .where(Address.City.Country.country == "Spain")
369
373
  .first(
@@ -1,7 +1,7 @@
1
- ormlambda/__init__.py,sha256=NKN-ggMFCOE4Zhir1cfFEf6c19hdPol_zWI6Fj5-h30,673
1
+ ormlambda/__init__.py,sha256=r_1UmdtPv8O7_kB9ZxpaR9JO2oWoSPcpQWoa_dlY3cU,682
2
2
  ormlambda/caster/__init__.py,sha256=JWJ6qdPTk_uyJHGfFpvFCZeOXdP6DzL4-MtMFZVDPRY,150
3
3
  ormlambda/caster/base_caster.py,sha256=c3vCGoKDyJ39kfUiS7sNKhKdjBRYSK1Ie88lwDIXqgE,1774
4
- ormlambda/caster/caster.py,sha256=ecDvGgMI3yFtJxqKD9XcSVtBcqQtYitfMTooWPlLnEY,1885
4
+ ormlambda/caster/caster.py,sha256=EiJFeb1t7wRLTloumuZYJgUt_ZNS8FEBAbLguBFLk30,1878
5
5
  ormlambda/caster/interfaces/ICaster.py,sha256=MCBBVBho9KH67vCcUk8nclY0a7QoqxgdyVJJR0-QDT0,759
6
6
  ormlambda/caster/interfaces/__init__.py,sha256=TRoIxxgxuhUhCJq2ldLS3UEa1THrMXEIyTH5K46vyGw,43
7
7
  ormlambda/common/__init__.py,sha256=g4yGxH4WEgvQ7Rix4lpp3FQ-3SeRhptNd5sabgZLQNk,59
@@ -39,7 +39,6 @@ ormlambda/databases/__init__.py,sha256=-m7uIigkbFNU5JHeOE8DeTA2bRVYEppw2XPASTSvW
39
39
  ormlambda/databases/my_sql/__init__.py,sha256=2Ue97WtcpfB6-8SgUIHLOzk_iT44YUzG6baXCHmV9uA,212
40
40
  ormlambda/databases/my_sql/caster/__init__.py,sha256=Df2sdZaAJ1Mi5Ego0sILMk5pF1NbK-nlV0hbpzd0PWE,47
41
41
  ormlambda/databases/my_sql/caster/caster.py,sha256=6byP5RJsWmnLZ2C9Br8OpdpilLedogDlTv3i8HMObu8,1217
42
- ormlambda/databases/my_sql/caster/read.py,sha256=PBseYoNJtMgmr4sL5aD6uef0f-mm6LakAz-v-IcBs7w,1096
43
42
  ormlambda/databases/my_sql/caster/types/__init__.py,sha256=lZ9YFqDjY6d6-Vy0tBMZfLI5EhyKXrb12Ys4eYiWjAg,396
44
43
  ormlambda/databases/my_sql/caster/types/bytes.py,sha256=Aq4iO-JmHeCXLqcQfNqsSTUpc1gceqY3TC4H3PJfv3g,899
45
44
  ormlambda/databases/my_sql/caster/types/datetime.py,sha256=Tw27k_svBFpmZGQDzTfi14Cl413VknOZ1t4nDXHk_dk,1062
@@ -49,14 +48,13 @@ ormlambda/databases/my_sql/caster/types/iterable.py,sha256=CVgYrQN9hIyAcFK4__e42
49
48
  ormlambda/databases/my_sql/caster/types/none.py,sha256=D2eF8sgLEywipKiJtXc_gYx3Edn5rcOUrw-DigTcprU,793
50
49
  ormlambda/databases/my_sql/caster/types/point.py,sha256=g5G691CsyQQtK6BGoKVpDzUtMRJNIKz_98xeHxqTGLE,1426
51
50
  ormlambda/databases/my_sql/caster/types/string.py,sha256=uYIfXHLrXhiShd9KRALBc2ULm7d5Y2swuz9lDX3Zucg,890
52
- ormlambda/databases/my_sql/caster/write.py,sha256=mfbtlAFamsnMbe1L4ARSAw2ch5qhz15jh5cSyAljcss,1322
53
51
  ormlambda/databases/my_sql/clauses/ST_AsText.py,sha256=Fx-CgQ01aSkcuSlcdmLIWb7f3kd7r6kWs_BGu1HOVx8,1165
54
52
  ormlambda/databases/my_sql/clauses/ST_Contains.py,sha256=K9cZwQaQQCgZTQdnAokln5lVSyV99CkeRnmOd2RIots,968
55
53
  ormlambda/databases/my_sql/clauses/__init__.py,sha256=H1DDCYiqAhrxXgovUaju5tsgLv8kU6y8Lh6vZO9uHTM,863
56
54
  ormlambda/databases/my_sql/clauses/alias.py,sha256=Xo0zQwyza3SMMRPIlBJWDQAJdW3bHjrC_UDps26P-QU,989
57
55
  ormlambda/databases/my_sql/clauses/count.py,sha256=rh7KNzpxkKEZpqmFV0oc8xHVgOHVGTGHrPGmCF-eLB4,1384
58
56
  ormlambda/databases/my_sql/clauses/create_database.py,sha256=zpd8uosxKJsf9BULvAHSd1-fU5de8OI7WRqVa8oyiA4,1209
59
- ormlambda/databases/my_sql/clauses/delete.py,sha256=Vm9lRKuX9x_m8faTlOs_A3v9zzoGGCnQ7CH_-QM6uK4,1900
57
+ ormlambda/databases/my_sql/clauses/delete.py,sha256=jJd6kIDepBJmf5f6CRxHjt-jGePG6iZXbgCDU_rQ-xk,1856
60
58
  ormlambda/databases/my_sql/clauses/drop_database.py,sha256=2GYhtWzHSWM7Yy3v_l2hiY4fFumG8DSCGGLgP0t3Rhk,437
61
59
  ormlambda/databases/my_sql/clauses/drop_table.py,sha256=ltaJJFcNXChBF7fYGNCZK9QQ4iWfG72HFacL57f2k6A,569
62
60
  ormlambda/databases/my_sql/clauses/group_by.py,sha256=m-Q6GjhjAx5Y1hH3bGmWOIvdMSE_ilEY8YNCV7fqT5g,849
@@ -72,15 +70,15 @@ ormlambda/databases/my_sql/clauses/upsert.py,sha256=VJAwfvpIT3xXwm3AnifVqiswnYNl
72
70
  ormlambda/databases/my_sql/clauses/where.py,sha256=IIyXt98S_ExpC0IHqEO2OL1j-VK9An3Kkbsd2t-2OQU,1694
73
71
  ormlambda/databases/my_sql/functions/__init__.py,sha256=hA8t3mUpV2p-pO4TVp5rjC5Yp7aIkWPsS8NpLi3DUh0,171
74
72
  ormlambda/databases/my_sql/functions/concat.py,sha256=jGUQEj28Gh89ilwJqwFpP5mXyw9tvZ4iC2DrvS4X25M,1346
75
- ormlambda/databases/my_sql/functions/max.py,sha256=01kkgougyP5m9_wdZB9_QvHKV86GnfZdotwsTSwAQfA,1493
73
+ ormlambda/databases/my_sql/functions/max.py,sha256=AjROl4V9RYPMQoo0TomoTB8fRiMyN5-n6hTGRT_G-pY,1461
76
74
  ormlambda/databases/my_sql/functions/min.py,sha256=9g8twv0wUfpxrRK2socnfkJtmd_78pU6HDk_4AiV03c,1487
77
75
  ormlambda/databases/my_sql/functions/sum.py,sha256=PUItqZ4ZbBcOfPzGbYDVvhVKV1RxLMuI63xNbSD8KrA,1487
78
76
  ormlambda/databases/my_sql/join_context.py,sha256=SLxVSwCURLOBSMB-aN7PV69sBQXOOP1sCezAKn3Wnqo,3256
79
77
  ormlambda/databases/my_sql/repository/__init__.py,sha256=_T7m-UpgJlx7eYdjBw8jdSVFGnjFYAcbp45g4EM7YEk,54
80
78
  ormlambda/databases/my_sql/repository/repository.py,sha256=DXxY1I4NMA7zshWpzSc6TKf3RlNsOfdk_DDjCF7PoxQ,12149
81
- ormlambda/databases/my_sql/statements.py,sha256=CVBUmzVWC91XW-TBsiH1640JPeaLVMdwOHcDWCB49tQ,17308
79
+ ormlambda/databases/my_sql/statements.py,sha256=iGfXBiaNAo2LqqBfU6zfcwB49by-vPUxklhgkIoHZHU,17340
82
80
  ormlambda/databases/my_sql/types.py,sha256=6c7LMS1VGR8ko1LB1T8DQzn1l10Mzk8PfIeYEOb9w30,1839
83
- ormlambda/engine/__init__.py,sha256=tTA0VcN-kxpmnTS0smq7IK0ohGVwpM5TIju-sDnZhfk,82
81
+ ormlambda/engine/__init__.py,sha256=Nubog0bQrWZHPsl7g-l3nlFN8be_aHMrQEYfE2RVme8,93
84
82
  ormlambda/engine/create.py,sha256=HwtLi9T_Z7mnZIPfSmutRPT7SlIDFfs82oJuVe-pObo,955
85
83
  ormlambda/engine/template.py,sha256=colmdl-IBSGc1eIqIYShsVkseQwF5_gwwc6Pt8ndN24,1350
86
84
  ormlambda/engine/url.py,sha256=4FnkQQO93jQcGWmZF38DiJgIrRcIgIYacy2N6Dy3YX8,25401
@@ -109,14 +107,14 @@ ormlambda/sql/table/table_constructor.py,sha256=_sc1WnhnjchvIzxQZ85qZJFGZExlmhgK
109
107
  ormlambda/sql/types.py,sha256=z5FME0m9j7zSKlxS21cZxHRg0pyTfiJbq7VWZ6IT0kM,832
110
108
  ormlambda/statements/__init__.py,sha256=mFER-VoLf5L2BjdQhWMw6rVQi8kpr-qZzi1ZSWRPIIU,99
111
109
  ormlambda/statements/base_statement.py,sha256=WLjQrWw72NhBdNkP8uO1UP8hzfv-leyFjmMa4ofa-fk,5660
112
- ormlambda/statements/interfaces/IStatements.py,sha256=eWSuNvV9vDlZh_5qFHcVq6GGLpvBzEiboXxRCpLSRTE,12010
110
+ ormlambda/statements/interfaces/IStatements.py,sha256=83G7KemLYWTTQqvDCm3GnXBhr00bli-28YpiAbyt1yU,11861
113
111
  ormlambda/statements/interfaces/__init__.py,sha256=a3RyTNVA7DwWMqvVi7gFYP4MArdU-RUYixJcxfc79HY,76
114
- ormlambda/statements/types.py,sha256=CYoWoopGbhg-_1GRkBZYMYpWzwciHw5Kbt-4vzGlclI,1805
112
+ ormlambda/statements/types.py,sha256=0AYnj6WCQcS-4fhsaK_yu2zQR3guPhPluq_sZxH1UhQ,1938
115
113
  ormlambda/utils/__init__.py,sha256=SEgDWkwbSrYRv0If92Ewq53DKnxxv5HqEAQbETd1C6Q,50
116
114
  ormlambda/utils/module_tree/__init__.py,sha256=LNQtqkwO1ul49Th3aHAIiyt0Wt899GmXCc44Uz1eDyY,53
117
115
  ormlambda/utils/module_tree/dfs_traversal.py,sha256=lSF03G63XtJFLp03ueAmsHMBvhUkjptDbK3IugXm8iU,1425
118
116
  ormlambda/utils/module_tree/dynamic_module.py,sha256=SJWpOC5oqASGjCXYHW0JwzEpcZ_DkxKLyK4SpIsMbaA,8700
119
- ormlambda-3.11.0.dist-info/LICENSE,sha256=xBprFw8GJLdHMOoUqDk0427EvjIcbEREvXXVFULuuXU,1080
120
- ormlambda-3.11.0.dist-info/METADATA,sha256=-BL6Em1Z3NajxNSMbWmmQ8-u_h-hUlygGiiZS_LmzWw,12450
121
- ormlambda-3.11.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
122
- ormlambda-3.11.0.dist-info/RECORD,,
117
+ ormlambda-3.11.2.dist-info/LICENSE,sha256=xBprFw8GJLdHMOoUqDk0427EvjIcbEREvXXVFULuuXU,1080
118
+ ormlambda-3.11.2.dist-info/METADATA,sha256=YEWvidWeBafsYuVZLKrBY8IcsnhkbzYbZewgiI567Eo,12584
119
+ ormlambda-3.11.2.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
120
+ ormlambda-3.11.2.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.9.0
2
+ Generator: poetry-core 2.1.2
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,39 +0,0 @@
1
- from datetime import datetime
2
- from typing import Optional
3
- from shapely import Point
4
- from types import NoneType
5
- from ormlambda.common.abstract_classes.caster.cast_base import ReadCastBase
6
-
7
-
8
- from .types.datetime import MySQLReadDatetime
9
- from .types.string import MySQLReadString
10
- from .types.int import MySQLReadInt
11
- from .types.float import MySQLReadFloat
12
- from .types.point import MySQLReadPoint
13
- from .types.none import MySQLReadNoneType
14
-
15
-
16
- class MySQLReadCastBase(ReadCastBase):
17
- @staticmethod
18
- def cast_str(value: str) -> str:
19
- return MySQLReadString.cast(value)
20
-
21
- @staticmethod
22
- def cast_int(value: str) -> int:
23
- return MySQLReadInt.cast(value)
24
-
25
- @staticmethod
26
- def cast_float(value: str) -> float:
27
- return MySQLReadFloat.cast(value)
28
-
29
- @staticmethod
30
- def cast_Point(value: str) -> Point:
31
- return MySQLReadPoint.cast(value)
32
-
33
- @staticmethod
34
- def cast_NoneType(value: str) -> NoneType:
35
- return MySQLReadNoneType.cast(value)
36
-
37
- @staticmethod
38
- def cast_datetime(value: str) -> datetime:
39
- return MySQLReadDatetime.cast(value)
@@ -1,37 +0,0 @@
1
- from datetime import datetime
2
- from shapely import Point
3
- from types import NoneType
4
- from ormlambda.common.abstract_classes.caster.cast_base import WriteCastBase
5
-
6
- from .types.datetime import MySQLWriteDatetime
7
- from .types.string import MySQLWriteString
8
- from .types.int import MySQLWriteInt
9
- from .types.float import MySQLWriteFloat
10
- from .types.point import MySQLWritePoint
11
- from .types.none import MySQLWriteNoneType
12
-
13
-
14
- class MySQLWriteCastBase(WriteCastBase):
15
- @staticmethod
16
- def cast_str(value: str, insert_data: bool = False) -> str:
17
- return MySQLWriteString.cast(value, insert_data)
18
-
19
- @staticmethod
20
- def cast_int(value: int, insert_data: bool = False) -> str:
21
- return MySQLWriteInt.cast(value, insert_data)
22
-
23
- @staticmethod
24
- def cast_float(value: float, insert_data: bool = False) -> str:
25
- return MySQLWriteFloat.cast(value, insert_data)
26
-
27
- @staticmethod
28
- def cast_Point(value: Point, insert_data: bool = False) -> str:
29
- return MySQLWritePoint.cast(value, insert_data)
30
-
31
- @staticmethod
32
- def cast_NoneType(value: NoneType, insert_data: bool = False) -> str:
33
- return MySQLWriteNoneType.cast(value, insert_data)
34
-
35
- @staticmethod
36
- def cast_datetime(value: datetime, insert_data: bool = False) -> str:
37
- return MySQLWriteDatetime.cast(value, insert_data)