ormlambda 3.7.0__py3-none-any.whl → 3.7.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.
@@ -14,7 +14,7 @@ class BaseCaster[TProp, TType](abc.ABC):
14
14
  def wildcard_to_select(self, value: str) -> str: ...
15
15
  @overload
16
16
  def wildcard_to_select(self) -> str: ...
17
-
17
+
18
18
  @abc.abstractmethod
19
19
  def wildcard_to_select(self) -> str: ...
20
20
 
@@ -22,7 +22,7 @@ class BaseCaster[TProp, TType](abc.ABC):
22
22
  def wildcard_to_where(self, value: str) -> str: ...
23
23
  @overload
24
24
  def wildcard_to_where(self) -> str: ...
25
-
25
+
26
26
  @abc.abstractmethod
27
27
  def wildcard_to_where(self) -> str: ...
28
28
 
@@ -30,7 +30,7 @@ class BaseCaster[TProp, TType](abc.ABC):
30
30
  def wildcard_to_insert(self, value: str) -> str: ...
31
31
  @overload
32
32
  def wildcard_to_insert(self) -> str: ...
33
-
33
+
34
34
  @abc.abstractmethod
35
35
  def wildcard_to_insert(self) -> str: ...
36
36
 
@@ -23,6 +23,6 @@ class GlobalChecker:
23
23
  except TypeError as err:
24
24
  cond1 = r"takes \d+ positional argument but \d+ were given"
25
25
  cond2 = r"missing \d+ required positional arguments:"
26
- if re.search(r"("+f"{cond1}|{cond2}"+r")", err.args[0]):
26
+ if re.search(r"(" + f"{cond1}|{cond2}" + r")", err.args[0]):
27
27
  raise UnmatchedLambdaParameterError(len(tables), obj)
28
28
  raise err
@@ -6,12 +6,12 @@ from typing import TYPE_CHECKING
6
6
  if TYPE_CHECKING:
7
7
  from ormlambda.sql.clause_info import ClauseInfo
8
8
 
9
+
9
10
  class ISelect(IQuery):
10
11
  @property
11
12
  @abc.abstractmethod
12
- def FROM(self)->ClauseInfo: ...
13
-
13
+ def FROM(self) -> ClauseInfo: ...
14
+
14
15
  @property
15
16
  @abc.abstractmethod
16
- def COLUMNS(self)->str: ...
17
-
17
+ def COLUMNS(self) -> str: ...
@@ -1 +1 @@
1
- from .ISelect import ISelect # noqa: F401
1
+ from .ISelect import ISelect # noqa: F401
@@ -6,13 +6,13 @@ class BytesCaster[TType](BaseCaster[bytes, TType]):
6
6
  def __init__(self, value: bytes, type_value: TType):
7
7
  super().__init__(value, type_value)
8
8
 
9
- def wildcard_to_select(self, value:str = PLACEHOLDER) -> str:
9
+ def wildcard_to_select(self, value: str = PLACEHOLDER) -> str:
10
10
  return value
11
11
 
12
- def wildcard_to_where(self, value:str = PLACEHOLDER) -> str:
12
+ def wildcard_to_where(self, value: str = PLACEHOLDER) -> str:
13
13
  return value
14
14
 
15
- def wildcard_to_insert(self, value:str = PLACEHOLDER) -> str:
15
+ def wildcard_to_insert(self, value: str = PLACEHOLDER) -> str:
16
16
  return value
17
17
 
18
18
  @property
@@ -8,13 +8,13 @@ class DatetimeCaster[TType](BaseCaster[datetime, TType]):
8
8
  def __init__(self, value: datetime, type_value: TType):
9
9
  super().__init__(value, type_value)
10
10
 
11
- def wildcard_to_select(self, value:str=PLACEHOLDER) -> str:
11
+ def wildcard_to_select(self, value: str = PLACEHOLDER) -> str:
12
12
  return value
13
13
 
14
- def wildcard_to_where(self, value:str=PLACEHOLDER) -> str:
14
+ def wildcard_to_where(self, value: str = PLACEHOLDER) -> str:
15
15
  return value
16
16
 
17
- def wildcard_to_insert(self, value:str=PLACEHOLDER) -> str:
17
+ def wildcard_to_insert(self, value: str = PLACEHOLDER) -> str:
18
18
  return value
19
19
 
20
20
  @property
@@ -6,13 +6,13 @@ class FloatCaster[TType](BaseCaster[float, TType]):
6
6
  def __init__(self, value: float, type_value: TType):
7
7
  super().__init__(value, type_value)
8
8
 
9
- def wildcard_to_select(self, value:str=PLACEHOLDER) -> str:
9
+ def wildcard_to_select(self, value: str = PLACEHOLDER) -> str:
10
10
  return value
11
11
 
12
- def wildcard_to_where(self, value:str=PLACEHOLDER) -> str:
12
+ def wildcard_to_where(self, value: str = PLACEHOLDER) -> str:
13
13
  return value
14
14
 
15
- def wildcard_to_insert(self, value:str=PLACEHOLDER) -> str:
15
+ def wildcard_to_insert(self, value: str = PLACEHOLDER) -> str:
16
16
  return value
17
17
 
18
18
  @property
@@ -6,13 +6,13 @@ class IntegerCaster[TType](BaseCaster[int, TType]):
6
6
  def __init__(self, value: int, type_value: TType):
7
7
  super().__init__(value, type_value)
8
8
 
9
- def wildcard_to_select(self, value:str=PLACEHOLDER) -> str:
9
+ def wildcard_to_select(self, value: str = PLACEHOLDER) -> str:
10
10
  return value
11
11
 
12
- def wildcard_to_where(self, value:str=PLACEHOLDER) -> str:
12
+ def wildcard_to_where(self, value: str = PLACEHOLDER) -> str:
13
13
  return value
14
14
 
15
- def wildcard_to_insert(self, value:str=PLACEHOLDER) -> str:
15
+ def wildcard_to_insert(self, value: str = PLACEHOLDER) -> str:
16
16
  return value
17
17
 
18
18
  @property
@@ -6,13 +6,13 @@ class IterableCaster[TType](BaseCaster[bytes, TType]):
6
6
  def __init__(self, value: bytes, type_value: TType):
7
7
  super().__init__(value, type_value)
8
8
 
9
- def wildcard_to_select(self, value:str=PLACEHOLDER) -> str:
9
+ def wildcard_to_select(self, value: str = PLACEHOLDER) -> str:
10
10
  return value
11
11
 
12
- def wildcard_to_where(self, value:str=PLACEHOLDER) -> str:
12
+ def wildcard_to_where(self, value: str = PLACEHOLDER) -> str:
13
13
  return value
14
14
 
15
- def wildcard_to_insert(self, value:str=PLACEHOLDER) -> str:
15
+ def wildcard_to_insert(self, value: str = PLACEHOLDER) -> str:
16
16
  return value
17
17
 
18
18
  @property
@@ -6,13 +6,13 @@ class NoneTypeCaster[TType](BaseCaster[NoneType, TType]):
6
6
  def __init__(self, value: NoneType, type_value: TType):
7
7
  super().__init__(value, type_value)
8
8
 
9
- def wildcard_to_select(self, value:str=PLACEHOLDER) -> str:
9
+ def wildcard_to_select(self, value: str = PLACEHOLDER) -> str:
10
10
  return value
11
11
 
12
- def wildcard_to_where(self, value:str=PLACEHOLDER) -> str:
12
+ def wildcard_to_where(self, value: str = PLACEHOLDER) -> str:
13
13
  return value
14
14
 
15
- def wildcard_to_insert(self, value:str=PLACEHOLDER) -> str:
15
+ def wildcard_to_insert(self, value: str = PLACEHOLDER) -> str:
16
16
  return value
17
17
 
18
18
  # TODOL: cheched if it's right
@@ -6,13 +6,13 @@ class StringCaster[TType](BaseCaster[str, TType]):
6
6
  def __init__(self, value: str, type_value: TType):
7
7
  super().__init__(value, type_value)
8
8
 
9
- def wildcard_to_select(self, value:str = PLACEHOLDER) -> str:
9
+ def wildcard_to_select(self, value: str = PLACEHOLDER) -> str:
10
10
  return value
11
11
 
12
- def wildcard_to_where(self, value:str = PLACEHOLDER) -> str:
12
+ def wildcard_to_where(self, value: str = PLACEHOLDER) -> str:
13
13
  return value
14
14
 
15
- def wildcard_to_insert(self, value:str = PLACEHOLDER) -> str:
15
+ def wildcard_to_insert(self, value: str = PLACEHOLDER) -> str:
16
16
  return value
17
17
 
18
18
  @property
@@ -56,7 +56,7 @@ class UpdateQuery[T: Type[Table]](UpdateQueryBase[T, IRepositoryBase]):
56
56
 
57
57
  if self.__is_valid__(col):
58
58
  clean_data = CASTER.for_value(value)
59
- col_names.append((col.column_name,clean_data.wildcard_to_insert()))
59
+ col_names.append((col.column_name, clean_data.wildcard_to_insert()))
60
60
  self._values.append(clean_data.to_database)
61
61
 
62
62
  set_query: str = ",".join(["=".join(col_data) for col_data in col_names])
@@ -72,4 +72,3 @@ class JoinContext[TParent: Table, TRepo]:
72
72
  parent_table = conditions.difference(model).pop()
73
73
 
74
74
  return clause_dicc[parent_table], clause_dicc[parent_table].table.__name__
75
-
@@ -1,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
  import contextlib
3
3
  from pathlib import Path
4
- from typing import Any, Generator, Iterable, Optional, Type, override, TYPE_CHECKING
4
+ from typing import Any, Generator, Iterable, Optional, Type, override, TYPE_CHECKING, Unpack
5
5
  import shapely as shp
6
6
 
7
7
  # from mysql.connector.pooling import MySQLConnectionPool
@@ -22,6 +22,7 @@ if TYPE_CHECKING:
22
22
  from ormlambda.common.abstract_classes.decomposition_query import ClauseInfo
23
23
  from ormlambda import Table
24
24
  from ormlambda.databases.my_sql.clauses.select import Select
25
+ from ..types import MySQLArgs
25
26
 
26
27
  type TResponse[TFlavour, *Ts] = TFlavour | tuple[dict[str, tuple[*Ts]]] | tuple[tuple[*Ts]] | tuple[TFlavour]
27
28
 
@@ -86,7 +87,16 @@ class Response[TFlavour, *Ts]:
86
87
  return [list(x) for x in data]
87
88
 
88
89
  def _default(**kwargs) -> list[TFlavour]:
89
- return self._flavour(data, **kwargs)
90
+ replacer_dicc: dict[str, str] = {x.alias_clause: x.column for x in self._select.all_clauses}
91
+
92
+ cleaned_column_names = [replacer_dicc[col] for col in self._columns]
93
+
94
+ result = []
95
+ for attr in data:
96
+ dicc_attr = dict(zip(cleaned_column_names, attr))
97
+ result.append(self._flavour(**dicc_attr, **kwargs))
98
+
99
+ return result
90
100
 
91
101
  selector: dict[Type[object], Any] = {
92
102
  dict: _dict,
@@ -146,7 +156,7 @@ class MySQLRepository(BaseRepository[MySQLConnectionPool]):
146
156
 
147
157
  #
148
158
 
149
- def __init__(self, **kwargs):
159
+ def __init__(self, **kwargs: Unpack[MySQLArgs]):
150
160
  super().__init__(MySQLConnectionPool, **kwargs)
151
161
 
152
162
  @contextlib.contextmanager
@@ -354,7 +354,6 @@ class MySQLStatements[T: Table, *Ts](BaseStatement[T, MySQLConnection]):
354
354
  self._query_builder.by = by
355
355
  self._query: str = self._query_builder.query
356
356
 
357
- self._query_builder.clear()
358
357
  if flavour:
359
358
  result = self._return_flavour(self.query, flavour, select, **kwargs)
360
359
  if issubclass(flavour, tuple) and isinstance(select_clause, Column | ClauseInfo):
@@ -363,10 +362,17 @@ class MySQLStatements[T: Table, *Ts](BaseStatement[T, MySQLConnection]):
363
362
  return self._return_model(select, self.query)
364
363
 
365
364
  @override
366
- def select_one[TValue, TFlavour, *Ts](self, selector: Optional[tuple[TValue, *Ts]] = None, *, flavour: Optional[Type[TFlavour]] = None, by: JoinType = JoinType.INNER_JOIN):
365
+ def select_one[TValue, TFlavour, *Ts](
366
+ self,
367
+ selector: Optional[tuple[TValue, *Ts]] = None,
368
+ *,
369
+ flavour: Optional[Type[TFlavour]] = None,
370
+ by: JoinType = JoinType.INNER_JOIN,
371
+ **kwargs,
372
+ ):
367
373
  self.limit(1)
368
374
 
369
- response = self.select(selector=selector, flavour=flavour, by=by)
375
+ response = self.select(selector=selector, flavour=flavour, by=by, **kwargs)
370
376
 
371
377
  if not isinstance(response, Iterable):
372
378
  return response
@@ -384,8 +390,20 @@ class MySQLStatements[T: Table, *Ts](BaseStatement[T, MySQLConnection]):
384
390
  return tuple([res[0] for res in response])
385
391
 
386
392
  @override
387
- def first[TValue, *Ts](self, selector: Optional[tuple[TValue, *Ts]] = None):
388
- return self.select_one(selector)
393
+ def first[TValue, TFlavour, *Ts](
394
+ self,
395
+ selector: Optional[tuple[TValue, *Ts]] = None,
396
+ *,
397
+ flavour: Optional[Type[TFlavour]] = None,
398
+ by: JoinType = JoinType.INNER_JOIN,
399
+ **kwargs,
400
+ ):
401
+ return self.select_one(
402
+ selector=selector,
403
+ flavour=flavour,
404
+ by=by,
405
+ **kwargs,
406
+ )
389
407
 
390
408
  @override
391
409
  def group_by(self, column: str | Callable[[T, *Ts], Any]):
@@ -0,0 +1,73 @@
1
+ from typing import Callable, Optional, Type, TypedDict, Any
2
+
3
+ from mysql.connector.constants import (
4
+ CharacterSet,
5
+ ClientFlag,
6
+ )
7
+ from mysql.connector.types import HandShakeType, BinaryProtocolType
8
+ from mysql.connector.conversion import MySQLConverter
9
+
10
+
11
+ class MySQLArgs(TypedDict):
12
+ client_flags: ClientFlag | int
13
+ sql_mode: Optional[str]
14
+ time_zone: Optional[str]
15
+ autocommit: bool
16
+ server_version: Optional[tuple[int, ...]]
17
+ handshake: Optional[HandShakeType]
18
+ conn_attrs: dict[str, str]
19
+
20
+ user: str
21
+ password: str
22
+ password1: str
23
+ password2: str
24
+ password3: str
25
+ database: str
26
+ host: str
27
+ port: int
28
+ unix_socket: Optional[str]
29
+ client_host: str
30
+ client_port: int
31
+ ssl: dict[str, Optional[str | bool | list[str]]]
32
+ ssl_disabled: bool
33
+ force_ipv6: bool
34
+ oci_config_file: Optional[str]
35
+ oci_config_profile: Optional[str]
36
+ webauthn_callback: Optional[str | Callable[[str], None]]
37
+ krb_service_principal: Optional[str]
38
+ openid_token_file: Optional[str]
39
+
40
+ use_unicode: bool
41
+ get_warnings: bool
42
+ raise_on_warnings: bool
43
+ connection_timeout: Optional[int]
44
+ read_timeout: Optional[int]
45
+ write_timeout: Optional[int]
46
+ buffered: bool
47
+ unread_result: bool
48
+ have_next_result: bool
49
+ raw: bool
50
+ in_transaction: bool
51
+ allow_local_infile: bool
52
+ allow_local_infile_in_path: Optional[str]
53
+
54
+ prepared_statements: Any
55
+ query_attrs: dict[str, BinaryProtocolType]
56
+
57
+ ssl_active: bool
58
+ auth_plugin: Optional[str]
59
+ auth_plugin_class: Optional[str]
60
+ pool_config_version: Any
61
+ converter_class: Optional[Type[MySQLConverter]]
62
+ converter_str_fallback: bool
63
+ compress: bool
64
+
65
+ consume_results: bool
66
+ init_command: Optional[str]
67
+ character_set: CharacterSet
68
+
69
+
70
+ __all__ = [
71
+ "MySQLArgs",
72
+ "ClientFlag",
73
+ ]
@@ -1,11 +1,11 @@
1
1
  import contextlib
2
- from typing import Generator, Type
2
+ from typing import Generator, Type, Unpack
3
3
  from ormlambda.repository import IRepositoryBase
4
4
  import abc
5
5
 
6
6
 
7
7
  class BaseRepository[TPool](IRepositoryBase):
8
- def __init__(self, pool: Type[TPool], **kwargs: str) -> None:
8
+ def __init__[TArgs](self, pool: Type[TPool], **kwargs: Unpack[TArgs]) -> None:
9
9
  self._data_config: dict[str, str] = kwargs
10
10
  self._pool: TPool = pool(**kwargs)
11
11
 
@@ -5,6 +5,7 @@ from typing import Optional, Type, Iterable, TYPE_CHECKING
5
5
  if TYPE_CHECKING:
6
6
  from ormlambda.statements.types import TypeExists
7
7
 
8
+
8
9
  class IRepositoryBase(ABC):
9
10
  def __repr__(self) -> str:
10
11
  return f"{IRepositoryBase.__name__}: {self.__class__.__name__}"
@@ -170,8 +170,8 @@ class Table(metaclass=TableMeta):
170
170
  return tuple([x for x in cls.__annotations__.values() if isinstance(x, Column)])
171
171
 
172
172
  @classmethod
173
- def get_column[TProp](cls,name:str) -> Column[TProp]:
174
- for key,value in cls.__annotations__.items():
173
+ def get_column[TProp](cls, name: str) -> Column[TProp]:
174
+ for key, value in cls.__annotations__.items():
175
175
  if name == key:
176
176
  return value
177
177
 
@@ -253,19 +253,19 @@ class IStatements[T: Table](ABC):
253
253
  @overload
254
254
  def select_one(self) -> T: ...
255
255
  @overload
256
- def select_one[TFlavour](self, *, by: Optional[Enum] = ..., flavour: Type[TFlavour]) -> TFlavour: ...
256
+ def select_one[TFlavour](self, *, by: Optional[Enum] = ..., flavour: Type[TFlavour], **kwargs) -> TFlavour: ...
257
257
  @overload
258
258
  def select_one[T1](self, selector: Callable[[T], T1 | tuple[T1]], *, by: Optional[Enum] = ...) -> T1: ...
259
259
  @overload
260
260
  def select_one[*TRes](self, selector: Callable[[T], tuple[*TRes]], *, by: Optional[Enum] = ...) -> tuple[*TRes]: ...
261
261
  @overload
262
- def select_one[T1](self, selector: Callable[[T], tuple[T1]], *, by: Optional[Enum] = ..., flavour: Type) -> T1: ...
262
+ def select_one[T1](self, selector: Callable[[T], tuple[T1]], *, by: Optional[Enum] = ..., flavour: Type, **kwargs) -> T1: ...
263
263
  @overload
264
- def select_one[T1, TFlavour](self, selector: Callable[[T], T1], *, by: Optional[Enum] = ..., flavour: Type[TFlavour]) -> T1: ...
264
+ def select_one[T1, TFlavour](self, selector: Callable[[T], T1], *, by: Optional[Enum] = ..., flavour: Type[TFlavour], **kwargs) -> TFlavour: ...
265
265
  @overload
266
- def select_one[*TRest](self, selector: Callable[[T], tuple[*TRest]], *, by: Optional[Enum] = ..., flavour: Type[tuple]) -> tuple[*TRest]: ...
266
+ def select_one[*TRest](self, selector: Callable[[T], tuple[*TRest]], *, by: Optional[Enum] = ..., flavour: Type[tuple], **kwargs) -> tuple[*TRest]: ...
267
267
  @overload
268
- def select_one[TFlavour](self, selector: Callable[[T], tuple], *, by: Optional[Enum] = ..., flavour: Type[TFlavour]) -> TFlavour: ...
268
+ def select_one[TFlavour](self, selector: Callable[[T], tuple], *, by: Optional[Enum] = ..., flavour: Type[TFlavour], **kwargs) -> TFlavour: ...
269
269
  @abstractmethod
270
270
  def select_one[TValue, TFlavour, *TRest](
271
271
  self,
@@ -280,6 +280,28 @@ class IStatements[T: Table](ABC):
280
280
  # region first
281
281
  @overload
282
282
  def first(self) -> T: ...
283
+ @overload
284
+ def first[TFlavour](self, *, by: Optional[Enum] = ..., flavour: Type[TFlavour], **kwargs) -> TFlavour: ...
285
+ @overload
286
+ def first[T1](self, selector: Callable[[T], T1 | tuple[T1]], *, by: Optional[Enum] = ...) -> T1: ...
287
+ @overload
288
+ def first[*TRes](self, selector: Callable[[T], tuple[*TRes]], *, by: Optional[Enum] = ...) -> tuple[*TRes]: ...
289
+ @overload
290
+ def first[T1](self, selector: Callable[[T], tuple[T1]], *, by: Optional[Enum] = ..., flavour: Type, **kwargs) -> T1: ...
291
+ @overload
292
+ def first[T1, TFlavour](self, selector: Callable[[T], T1], *, by: Optional[Enum] = ..., flavour: Type[TFlavour], **kwargs) -> TFlavour: ...
293
+ @overload
294
+ def first[*TRest](self, selector: Callable[[T], tuple[*TRest]], *, by: Optional[Enum] = ..., flavour: Type[tuple], **kwargs) -> tuple[*TRest]: ...
295
+ @overload
296
+ def first[TFlavour](self, selector: Callable[[T], tuple], *, by: Optional[Enum] = ..., flavour: Type[TFlavour], **kwargs) -> TFlavour: ...
297
+ @abstractmethod
298
+ def first[TValue, TFlavour, *TRest](
299
+ self,
300
+ selector: Optional[Callable[[T], tuple[TValue, *TRest]]] = lambda: None,
301
+ *,
302
+ flavour: Type[TFlavour] = ...,
303
+ by: Optional[Enum] = ...,
304
+ ): ...
283
305
 
284
306
  # endregion
285
307
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ormlambda
3
- Version: 3.7.0
3
+ Version: 3.7.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
@@ -1,6 +1,6 @@
1
1
  ormlambda/__init__.py,sha256=KGnAPj90RWKP1GnuSQD1rAaREXfE2pwzg7vCTYB36ZI,619
2
2
  ormlambda/caster/__init__.py,sha256=JWJ6qdPTk_uyJHGfFpvFCZeOXdP6DzL4-MtMFZVDPRY,150
3
- ormlambda/caster/base_caster.py,sha256=ogihKXZIyeDsJ2N0EDKujf6BIfVSJAZ9G1jIbBXJV2o,1786
3
+ ormlambda/caster/base_caster.py,sha256=c3vCGoKDyJ39kfUiS7sNKhKdjBRYSK1Ie88lwDIXqgE,1774
4
4
  ormlambda/caster/caster.py,sha256=ecDvGgMI3yFtJxqKD9XcSVtBcqQtYitfMTooWPlLnEY,1885
5
5
  ormlambda/caster/interfaces/ICaster.py,sha256=MCBBVBho9KH67vCcUk8nclY0a7QoqxgdyVJJR0-QDT0,759
6
6
  ormlambda/caster/interfaces/__init__.py,sha256=TRoIxxgxuhUhCJq2ldLS3UEa1THrMXEIyTH5K46vyGw,43
@@ -13,7 +13,7 @@ ormlambda/common/enums/__init__.py,sha256=4lVKCHi1JalwgNzjsAXqX-C54NJEH83y2v5baM
13
13
  ormlambda/common/enums/condition_types.py,sha256=QZnhhlTwzLcZ9kkmG6a08fQjUUJsJ5XGAH7QCiJRL1A,330
14
14
  ormlambda/common/enums/join_type.py,sha256=EosZVnvAc72LlZHuICIgoKWwUJzhvWOIIAohcbDYPQo,354
15
15
  ormlambda/common/errors/__init__.py,sha256=nc6SJs6v7MbXwcEgcSW7SSG_iBECfz_10YzWwqU1D-E,888
16
- ormlambda/common/global_checker.py,sha256=R_m3_byStbnOj8qeVggHWBBR9VlkA_Lz5fm8M4OCzvY,890
16
+ ormlambda/common/global_checker.py,sha256=9FtdGl0SCSLEBBFBtburmP_Sh5h2tx88ZG08vjUordc,894
17
17
  ormlambda/common/interfaces/ICustomAlias.py,sha256=gEzjLFXT_JhkzGuBfWz36cqPrZ_B9999C3S61IicLoQ,159
18
18
  ormlambda/common/interfaces/IDecompositionQuery.py,sha256=2fwcXONBnYpxL1YHPHaLxqQJ4NANGuTky69QNa74xd4,853
19
19
  ormlambda/common/interfaces/IJoinSelector.py,sha256=-w-MJmwq65tpDLtigWSLgvAqeOl75DA-EyWIugNkfCs,490
@@ -27,8 +27,8 @@ ormlambda/components/delete/abstract_delete.py,sha256=ca-AO3nM9MMhy0hofNLjnCod92
27
27
  ormlambda/components/insert/IInsert.py,sha256=YIfMPlKu7UGgnVpZuhpr0Mtnefe-O85hqk8-GZrVK7w,139
28
28
  ormlambda/components/insert/__init__.py,sha256=TGShCJZwejK3zZCRistBAKoDy2NNDRR_w1LXIbN66Dk,102
29
29
  ormlambda/components/insert/abstract_insert.py,sha256=OmsfVMx8ifD2_ajRSXX8-EeKRTS7FTwbgSjdwASz_eg,695
30
- ormlambda/components/select/ISelect.py,sha256=PcHvp8G1Zp_Gvn-_iZp-8SRBab7WVTxrtMr2FgQ_0sU,372
31
- ormlambda/components/select/__init__.py,sha256=MAnVr3gsyXozsB9Q8jOl5KKCnOfQwxARuWpPS-h5Ooc,42
30
+ ormlambda/components/select/ISelect.py,sha256=saA0Iat4lXfd1vc7a7t6Stc_3BJHAysGWH1AcmrhQhw,372
31
+ ormlambda/components/select/__init__.py,sha256=aIO4Bkk1od7cC9qbwyZ__K1X8hw92OozmfSaKdu3inY,43
32
32
  ormlambda/components/update/IUpdate.py,sha256=U-3Wx8lyCglhxf9gCXWO3MVgydG6gfRpzp00_MHC5cU,168
33
33
  ormlambda/components/update/__init__.py,sha256=o1VjlfXgjftZgp64O10rzCGaDZCbdTZRRtjIlojTUWA,102
34
34
  ormlambda/components/update/abstract_update.py,sha256=BXskuatPtWzYtB2xKN30SFTe4iVu_XApTNLjR0ZY5Ig,893
@@ -41,14 +41,14 @@ ormlambda/databases/my_sql/caster/__init__.py,sha256=Df2sdZaAJ1Mi5Ego0sILMk5pF1N
41
41
  ormlambda/databases/my_sql/caster/caster.py,sha256=D8hDwyZXOw5GRTQwONZyLaYe0sAimbDGb7DnDxUv_Ng,1181
42
42
  ormlambda/databases/my_sql/caster/read.py,sha256=PBseYoNJtMgmr4sL5aD6uef0f-mm6LakAz-v-IcBs7w,1096
43
43
  ormlambda/databases/my_sql/caster/types/__init__.py,sha256=lZ9YFqDjY6d6-Vy0tBMZfLI5EhyKXrb12Ys4eYiWjAg,396
44
- ormlambda/databases/my_sql/caster/types/bytes.py,sha256=8rf2JEDFtwY5vsWZJ3r5Y8ruH76KwvRpLjjQOFdg5aA,896
45
- ormlambda/databases/my_sql/caster/types/datetime.py,sha256=TXgHLJZ1v7LYqQnygK51K0WMHR96GVOOdtqd5HqXOx4,1053
46
- ormlambda/databases/my_sql/caster/types/float.py,sha256=KCU6n6vH7c9NtRYbad91T-EEjKCDmr9iR_14Q6oswF4,890
47
- ormlambda/databases/my_sql/caster/types/int.py,sha256=oqtZnqxVLysP2tTt5KXxWbpsYmv45gocU1MEBMaewBw,880
48
- ormlambda/databases/my_sql/caster/types/iterable.py,sha256=kcaZcz7Mjip6CEG2oBlEQ7h9gAlo9PV5IosMm0WYOu4,893
49
- ormlambda/databases/my_sql/caster/types/none.py,sha256=pdqcmcpHld-tM1-YjMJTrV7Aa_h2_sAprnRkaS-XIzc,784
44
+ ormlambda/databases/my_sql/caster/types/bytes.py,sha256=Aq4iO-JmHeCXLqcQfNqsSTUpc1gceqY3TC4H3PJfv3g,899
45
+ ormlambda/databases/my_sql/caster/types/datetime.py,sha256=Tw27k_svBFpmZGQDzTfi14Cl413VknOZ1t4nDXHk_dk,1062
46
+ ormlambda/databases/my_sql/caster/types/float.py,sha256=8nyQIvZD0N99Z7TRAbJkMW138JSZTX5kQLtqSUtco8s,899
47
+ ormlambda/databases/my_sql/caster/types/int.py,sha256=-fhwtaq05LxtM9VDrBy7lLh5VRh-2aGJDotT-Z8PtX4,889
48
+ ormlambda/databases/my_sql/caster/types/iterable.py,sha256=CVgYrQN9hIyAcFK4__e42HC3u0Rh4yKuzy3Rvc28xJk,902
49
+ ormlambda/databases/my_sql/caster/types/none.py,sha256=D2eF8sgLEywipKiJtXc_gYx3Edn5rcOUrw-DigTcprU,793
50
50
  ormlambda/databases/my_sql/caster/types/point.py,sha256=g5G691CsyQQtK6BGoKVpDzUtMRJNIKz_98xeHxqTGLE,1426
51
- ormlambda/databases/my_sql/caster/types/string.py,sha256=NY03rRqLHAi_mxYWXDDIsPHtPiiw6pHAdSbn01yZuU4,887
51
+ ormlambda/databases/my_sql/caster/types/string.py,sha256=uYIfXHLrXhiShd9KRALBc2ULm7d5Y2swuz9lDX3Zucg,890
52
52
  ormlambda/databases/my_sql/caster/write.py,sha256=mfbtlAFamsnMbe1L4ARSAw2ch5qhz15jh5cSyAljcss,1322
53
53
  ormlambda/databases/my_sql/clauses/ST_AsText.py,sha256=Fx-CgQ01aSkcuSlcdmLIWb7f3kd7r6kWs_BGu1HOVx8,1165
54
54
  ormlambda/databases/my_sql/clauses/ST_Contains.py,sha256=K9cZwQaQQCgZTQdnAokln5lVSyV99CkeRnmOd2RIots,968
@@ -66,7 +66,7 @@ ormlambda/databases/my_sql/clauses/limit.py,sha256=32Fii_WHjrX7K5B7H5uWlzYM6KBMF
66
66
  ormlambda/databases/my_sql/clauses/offset.py,sha256=PKieZvCYLSSza-Nhcam5DJEYv--jBU8RHwju3P_f9Kk,390
67
67
  ormlambda/databases/my_sql/clauses/order.py,sha256=8sUKxWvkkOc5nn-r6GGL5MbFkCAD_St1CWMQkStSrLE,2147
68
68
  ormlambda/databases/my_sql/clauses/select.py,sha256=O1dZWKG3_93-s_X_EjOF_alp_U82EzfDUKBMBcajxKY,1830
69
- ormlambda/databases/my_sql/clauses/update.py,sha256=-3S_SwmSg_-qu_iDwhr1BY5ZtGGq0Og7eyO2YzdRFrU,2939
69
+ ormlambda/databases/my_sql/clauses/update.py,sha256=GAXqEPEnUUO-M1zlaTU1Esso0s6lL7nmZWSEErZK2iE,2940
70
70
  ormlambda/databases/my_sql/clauses/upsert.py,sha256=VJAwfvpIT3xXwm3AnifVqiswnYNleDTnbY0CgnQqC0s,1945
71
71
  ormlambda/databases/my_sql/clauses/where.py,sha256=IR4BR4Rl13GiupCC3ilkUgqYu-LmISux7XZ6JIQGziw,1692
72
72
  ormlambda/databases/my_sql/functions/__init__.py,sha256=hA8t3mUpV2p-pO4TVp5rjC5Yp7aIkWPsS8NpLi3DUh0,171
@@ -74,18 +74,19 @@ ormlambda/databases/my_sql/functions/concat.py,sha256=ih5An-1vxEVw0On0VLTuszVMku
74
74
  ormlambda/databases/my_sql/functions/max.py,sha256=01kkgougyP5m9_wdZB9_QvHKV86GnfZdotwsTSwAQfA,1493
75
75
  ormlambda/databases/my_sql/functions/min.py,sha256=9g8twv0wUfpxrRK2socnfkJtmd_78pU6HDk_4AiV03c,1487
76
76
  ormlambda/databases/my_sql/functions/sum.py,sha256=PUItqZ4ZbBcOfPzGbYDVvhVKV1RxLMuI63xNbSD8KrA,1487
77
- ormlambda/databases/my_sql/join_context.py,sha256=CEKz0BPqkLBRoY9ciYAcLSon1jRNPq2-4HDw4ID8nkw,3192
77
+ ormlambda/databases/my_sql/join_context.py,sha256=Rx_FO9wOKeox6IZo8E-WNmgWbHxQ0qm049ZxiBPfcNY,3191
78
78
  ormlambda/databases/my_sql/repository/__init__.py,sha256=_T7m-UpgJlx7eYdjBw8jdSVFGnjFYAcbp45g4EM7YEk,54
79
- ormlambda/databases/my_sql/repository/repository.py,sha256=AfTYGX96Sg9sNZNik69_e0r6YlP6fnuw92XPmk6wS-4,10246
80
- ormlambda/databases/my_sql/statements.py,sha256=zAJ3432zMVp4GPjCOvaEn88eYxBqB71wHekTtdc-uak,15995
79
+ ormlambda/databases/my_sql/repository/repository.py,sha256=jSD3RDI5-UZQcRoboDXCkfhi6_6wx5htwixG0Qmtm38,10661
80
+ ormlambda/databases/my_sql/statements.py,sha256=4wPaihZe6vMRn5hhTkRjTjr-k95qRsCC5PqsXtjVt9I,16292
81
+ ormlambda/databases/my_sql/types.py,sha256=6c7LMS1VGR8ko1LB1T8DQzn1l10Mzk8PfIeYEOb9w30,1839
81
82
  ormlambda/engine/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
83
  ormlambda/engine/template.py,sha256=colmdl-IBSGc1eIqIYShsVkseQwF5_gwwc6Pt8ndN24,1350
83
84
  ormlambda/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
84
85
  ormlambda/model/base_model.py,sha256=S_PYs5ZO-LTgiJSyAmGUtXwFKLb9VnM2Rqlq4pdhppY,1021
85
86
  ormlambda/repository/__init__.py,sha256=4KAhKn6vWV7bslewvGMNqbbbUnz1DLnH4yy-M5QNAQA,112
86
- ormlambda/repository/base_repository.py,sha256=jyHkj33nP6kGEDAdqqXcADK9GH2MVY7MQVIZljZr2L0,448
87
+ ormlambda/repository/base_repository.py,sha256=tcuAOnFdaE8J9nZXMSVGFVTjKzG6qA700OJoGg4t-yU,473
87
88
  ormlambda/repository/interfaces/IDatabaseConnection.py,sha256=pxczjx0b53yjjg5hvVDloMgUTFDahVC3HlJLQjo9_1w,283
88
- ormlambda/repository/interfaces/IRepositoryBase.py,sha256=dxgMzALU_HtAiXwzUdNu4KeYR2PN_dqbepX4f_nA9NQ,1205
89
+ ormlambda/repository/interfaces/IRepositoryBase.py,sha256=24AFQ9ZBnFBQtdt3nkyFXkUbEzEsD2P7OS0FnFECJB8,1206
89
90
  ormlambda/repository/interfaces/__init__.py,sha256=t8Mn0aRZm8uF4MGaqjEANTTADCdOwNF0THZ_qebyzwo,126
90
91
  ormlambda/sql/__init__.py,sha256=0CWQzfxhTRWXozoRsg460o_ZwjW9w4uyL5jQUcD4eHg,121
91
92
  ormlambda/sql/clause_info/__init__.py,sha256=ft8qh3pxXx3eAJfeBfSNwjzTjEAJob59XYLOnQQCJYI,205
@@ -100,18 +101,18 @@ ormlambda/sql/foreign_key.py,sha256=lO_OiVTmMsFQpfp-102XZgPSsYBoVCO74i6YVdQ89yk,
100
101
  ormlambda/sql/interfaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
101
102
  ormlambda/sql/table/__init__.py,sha256=nAHXi63eDJeGGCf4f0A7W6x4Rh3FJ2dpfzxPEN6r3bc,62
102
103
  ormlambda/sql/table/fields.py,sha256=ovNR3bJ473aKW-2NhbKr0iJlVpgW06jurHLob2IyZU8,2116
103
- ormlambda/sql/table/table_constructor.py,sha256=UQLxg2xZrNBH76MVQf-lp8de-TikZUNDIhWCNA9m7A4,8639
104
+ ormlambda/sql/table/table_constructor.py,sha256=_sc1WnhnjchvIzxQZ85qZJFGZExlmhgKBoeWA-tk1eU,8642
104
105
  ormlambda/sql/types.py,sha256=z5FME0m9j7zSKlxS21cZxHRg0pyTfiJbq7VWZ6IT0kM,832
105
106
  ormlambda/statements/__init__.py,sha256=mFER-VoLf5L2BjdQhWMw6rVQi8kpr-qZzi1ZSWRPIIU,99
106
107
  ormlambda/statements/base_statement.py,sha256=WLjQrWw72NhBdNkP8uO1UP8hzfv-leyFjmMa4ofa-fk,5660
107
- ormlambda/statements/interfaces/IStatements.py,sha256=nmpGRlsLqhx_uO9BYsUFiW48Qp8WhU2G-ePw4VtQiCA,10135
108
+ ormlambda/statements/interfaces/IStatements.py,sha256=At_qfRdjewpzSLIntT6_oGKUkFOY8VtcHIse30LTpyg,11435
108
109
  ormlambda/statements/interfaces/__init__.py,sha256=a3RyTNVA7DwWMqvVi7gFYP4MArdU-RUYixJcxfc79HY,76
109
110
  ormlambda/statements/types.py,sha256=5HiOXjIm4aQzafB5Mq9b8OyBV2AyEH_P-kjQ8aQ8bIY,1743
110
111
  ormlambda/utils/__init__.py,sha256=SEgDWkwbSrYRv0If92Ewq53DKnxxv5HqEAQbETd1C6Q,50
111
112
  ormlambda/utils/module_tree/__init__.py,sha256=LNQtqkwO1ul49Th3aHAIiyt0Wt899GmXCc44Uz1eDyY,53
112
113
  ormlambda/utils/module_tree/dfs_traversal.py,sha256=lSF03G63XtJFLp03ueAmsHMBvhUkjptDbK3IugXm8iU,1425
113
114
  ormlambda/utils/module_tree/dynamic_module.py,sha256=SJWpOC5oqASGjCXYHW0JwzEpcZ_DkxKLyK4SpIsMbaA,8700
114
- ormlambda-3.7.0.dist-info/LICENSE,sha256=xBprFw8GJLdHMOoUqDk0427EvjIcbEREvXXVFULuuXU,1080
115
- ormlambda-3.7.0.dist-info/METADATA,sha256=mHVqTwLEX25rq7hhIuQaFkRJ50nUxN11749d8-BDSqc,9305
116
- ormlambda-3.7.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
117
- ormlambda-3.7.0.dist-info/RECORD,,
115
+ ormlambda-3.7.2.dist-info/LICENSE,sha256=xBprFw8GJLdHMOoUqDk0427EvjIcbEREvXXVFULuuXU,1080
116
+ ormlambda-3.7.2.dist-info/METADATA,sha256=k5LnQJmw-8gweaFIOv8l4AvbW7dpqiH5hvT-WEAuxsY,9305
117
+ ormlambda-3.7.2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
118
+ ormlambda-3.7.2.dist-info/RECORD,,