sqlengine-lite 2.2.2__tar.gz → 2.2.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sqlengine_lite-2.2.2/src/sqlengine_lite.egg-info → sqlengine_lite-2.2.3}/PKG-INFO +1 -1
- {sqlengine_lite-2.2.2 → sqlengine_lite-2.2.3}/pyproject.toml +1 -1
- {sqlengine_lite-2.2.2 → sqlengine_lite-2.2.3}/src/sqlengine/_internal/sqlgen.py +2 -0
- {sqlengine_lite-2.2.2 → sqlengine_lite-2.2.3}/src/sqlengine/_internal/statements.py +22 -5
- {sqlengine_lite-2.2.2 → sqlengine_lite-2.2.3/src/sqlengine_lite.egg-info}/PKG-INFO +1 -1
- {sqlengine_lite-2.2.2 → sqlengine_lite-2.2.3}/LICENSE +0 -0
- {sqlengine_lite-2.2.2 → sqlengine_lite-2.2.3}/README.md +0 -0
- {sqlengine_lite-2.2.2 → sqlengine_lite-2.2.3}/setup.cfg +0 -0
- {sqlengine_lite-2.2.2 → sqlengine_lite-2.2.3}/src/sqlengine/__init__.py +0 -0
- {sqlengine_lite-2.2.2 → sqlengine_lite-2.2.3}/src/sqlengine/_internal/__init__.py +0 -0
- {sqlengine_lite-2.2.2 → sqlengine_lite-2.2.3}/src/sqlengine/_internal/connection_manager.py +0 -0
- {sqlengine_lite-2.2.2 → sqlengine_lite-2.2.3}/src/sqlengine/_internal/repr.py +0 -0
- {sqlengine_lite-2.2.2 → sqlengine_lite-2.2.3}/src/sqlengine/_internal/types.py +0 -0
- {sqlengine_lite-2.2.2 → sqlengine_lite-2.2.3}/src/sqlengine/exceptions.py +0 -0
- {sqlengine_lite-2.2.2 → sqlengine_lite-2.2.3}/src/sqlengine/schema.py +0 -0
- {sqlengine_lite-2.2.2 → sqlengine_lite-2.2.3}/src/sqlengine/sqltable.py +0 -0
- {sqlengine_lite-2.2.2 → sqlengine_lite-2.2.3}/src/sqlengine/utils/__init__.py +0 -0
- {sqlengine_lite-2.2.2 → sqlengine_lite-2.2.3}/src/sqlengine/utils/connection.py +0 -0
- {sqlengine_lite-2.2.2 → sqlengine_lite-2.2.3}/src/sqlengine/utils/convert.py +0 -0
- {sqlengine_lite-2.2.2 → sqlengine_lite-2.2.3}/src/sqlengine_lite.egg-info/SOURCES.txt +0 -0
- {sqlengine_lite-2.2.2 → sqlengine_lite-2.2.3}/src/sqlengine_lite.egg-info/dependency_links.txt +0 -0
- {sqlengine_lite-2.2.2 → sqlengine_lite-2.2.3}/src/sqlengine_lite.egg-info/top_level.txt +0 -0
- {sqlengine_lite-2.2.2 → sqlengine_lite-2.2.3}/tests/test.py +0 -0
|
@@ -68,6 +68,7 @@ def select(
|
|
|
68
68
|
tablename : str,
|
|
69
69
|
columns : str | list[str] = "*",
|
|
70
70
|
where_clause: str | None = None,
|
|
71
|
+
group_by : str | None = None,
|
|
71
72
|
order_by : str | None = None,
|
|
72
73
|
limit : int | str | None = None
|
|
73
74
|
) -> str:
|
|
@@ -77,6 +78,7 @@ def select(
|
|
|
77
78
|
|
|
78
79
|
query = f"SELECT {_columns} FROM {tablename}"
|
|
79
80
|
query += f" WHERE {where_clause}" if where_clause else ""
|
|
81
|
+
query += f" GROUP BY {group_by}" if group_by else ""
|
|
80
82
|
query += f" ORDER BY {order_by}" if order_by else ""
|
|
81
83
|
query += f" LIMIT {limit}" if limit else ""
|
|
82
84
|
query += ";"
|
|
@@ -229,6 +229,7 @@ class Select(Statement):
|
|
|
229
229
|
|
|
230
230
|
self._columns : list[str] = []
|
|
231
231
|
self._order_by : list[str] = []
|
|
232
|
+
self._group_by : list[str] = []
|
|
232
233
|
self._aggregate : str | None = None
|
|
233
234
|
self._limit : int | None = None
|
|
234
235
|
|
|
@@ -254,12 +255,18 @@ class Select(Statement):
|
|
|
254
255
|
|
|
255
256
|
|
|
256
257
|
def order_by(self, column : str, ascending : bool = True) -> Self:
|
|
257
|
-
"""
|
|
258
|
+
""" Order returned rows by provided column """
|
|
258
259
|
order = "ASC" if ascending else "DESC"
|
|
259
260
|
self._order_by.append(f"{column} {order}")
|
|
260
261
|
return self
|
|
261
262
|
|
|
262
263
|
|
|
264
|
+
def group_by(self, *columns : str) -> Self:
|
|
265
|
+
""" Group by provided columns """
|
|
266
|
+
self._group_by.extend(columns)
|
|
267
|
+
return self
|
|
268
|
+
|
|
269
|
+
|
|
263
270
|
def limit(self, n : int) -> Self:
|
|
264
271
|
""" Limit number of returned rows """
|
|
265
272
|
self._limit = n
|
|
@@ -340,8 +347,9 @@ class Select(Statement):
|
|
|
340
347
|
|
|
341
348
|
def _build(self, where_clause : str, *args : SqlValue) -> tuple[str, tuple[SqlValue, ...]]:
|
|
342
349
|
|
|
343
|
-
order = sql.format_list(self._order_by, brackets=False)
|
|
344
|
-
|
|
350
|
+
order = sql.format_list(self._order_by, brackets=False) if self._order_by else None
|
|
351
|
+
group = sql.format_list(self._group_by, brackets=False) if self._group_by else None
|
|
352
|
+
columns = sql.format_list(self._columns, brackets=False) if self._columns else None
|
|
345
353
|
|
|
346
354
|
columns = "*" if not columns else columns
|
|
347
355
|
columns = columns if not self._aggregate else f"{self._aggregate}({columns})"
|
|
@@ -353,7 +361,14 @@ class Select(Statement):
|
|
|
353
361
|
else:
|
|
354
362
|
limit = None
|
|
355
363
|
|
|
356
|
-
query = sql.select(
|
|
364
|
+
query = sql.select(
|
|
365
|
+
tablename = self._tableschema["tablename"],
|
|
366
|
+
columns = columns,
|
|
367
|
+
where_clause= where_clause,
|
|
368
|
+
order_by = order,
|
|
369
|
+
group_by = group,
|
|
370
|
+
limit = limit,
|
|
371
|
+
)
|
|
357
372
|
|
|
358
373
|
return query, args
|
|
359
374
|
|
|
@@ -361,6 +376,7 @@ class Select(Statement):
|
|
|
361
376
|
def _reset(self) -> None:
|
|
362
377
|
self._columns = []
|
|
363
378
|
self._order_by = []
|
|
379
|
+
self._group_by = []
|
|
364
380
|
self._aggregate = None
|
|
365
381
|
self._limit = None
|
|
366
382
|
|
|
@@ -428,4 +444,5 @@ class Update(MutationalStatement):
|
|
|
428
444
|
|
|
429
445
|
def _reset(self) -> None:
|
|
430
446
|
self._set_clauses = []
|
|
431
|
-
self._set_args = []
|
|
447
|
+
self._set_args = []
|
|
448
|
+
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlengine_lite-2.2.2 → sqlengine_lite-2.2.3}/src/sqlengine_lite.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|