sqlite-database 0.6.9__tar.gz → 0.7.0__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.
Files changed (95) hide show
  1. {sqlite_database-0.6.9/sqlite_database.egg-info → sqlite_database-0.7.0}/PKG-INFO +1 -1
  2. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database/__init__.py +1 -1
  3. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database/model/query_builder.py +62 -62
  4. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database/table.py +72 -72
  5. {sqlite_database-0.6.9 → sqlite_database-0.7.0/sqlite_database.egg-info}/PKG-INFO +1 -1
  6. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/tests/test_database.py +4 -4
  7. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/.editorconfig +0 -0
  8. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  9. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  10. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/.github/ISSUE_TEMPLATE/question.md +0 -0
  11. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/.github/dependabot.yml +0 -0
  12. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/.github/workflows/pylint.yml +0 -0
  13. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/.github/workflows/pytest.yml +0 -0
  14. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/.github/workflows/python-publish.yml +0 -0
  15. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/.gitignore +0 -0
  16. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/.readthedocs.yaml +0 -0
  17. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/.vscode/settings.json +0 -0
  18. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/Features.md +0 -0
  19. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/History.md +0 -0
  20. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/LICENSE +0 -0
  21. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/README.md +0 -0
  22. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/SimpleGuide.md +0 -0
  23. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/TODO.md +0 -0
  24. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/bin/activate +0 -0
  25. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/bin/check.bat +0 -0
  26. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/bin/check.sh +0 -0
  27. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/bin/include/utility.bash +0 -0
  28. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/bin/install.bash +0 -0
  29. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/bin/need-installed/activate +0 -0
  30. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/bin/need-installed/pre-commit +0 -0
  31. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/bin/summarize-pylint.py +0 -0
  32. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/dev-config/black.toml +0 -0
  33. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/dev-config/pylint.toml +0 -0
  34. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/dev-config/pytest.ini +0 -0
  35. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/dev-requirements.txt +0 -0
  36. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/Makefile +0 -0
  37. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/SimpleGuide.md +0 -0
  38. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/api_reference.rst +0 -0
  39. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/conf.py +0 -0
  40. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/index.rst +0 -0
  41. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/make.bat +0 -0
  42. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/modules.rst +0 -0
  43. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/sqlite_database.column.rst +0 -0
  44. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/sqlite_database.config.rst +0 -0
  45. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/sqlite_database.csv.rst +0 -0
  46. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/sqlite_database.database.rst +0 -0
  47. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/sqlite_database.errors.rst +0 -0
  48. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/sqlite_database.functions.rst +0 -0
  49. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/sqlite_database.locals.rst +0 -0
  50. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/sqlite_database.model.errors.rst +0 -0
  51. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/sqlite_database.model.helpers.rst +0 -0
  52. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/sqlite_database.model.query_builder.rst +0 -0
  53. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/sqlite_database.model.rst +0 -0
  54. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/sqlite_database.operators.rst +0 -0
  55. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/sqlite_database.query_builder.rst +0 -0
  56. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/sqlite_database.rst +0 -0
  57. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/sqlite_database.signature.rst +0 -0
  58. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/sqlite_database.subexp.rst +0 -0
  59. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/sqlite_database.table.rst +0 -0
  60. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/sqlite_database.typings.rst +0 -0
  61. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/sqlite_database.utils.rst +0 -0
  62. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs/usage.md +0 -0
  63. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/docs-requirements.txt +0 -0
  64. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/project-init.bash +0 -0
  65. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/pyproject.toml +0 -0
  66. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/setup.cfg +0 -0
  67. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/setup.py +0 -0
  68. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database/_debug.py +0 -0
  69. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database/_utils.py +0 -0
  70. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database/column.py +0 -0
  71. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database/csv.py +0 -0
  72. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database/database.py +0 -0
  73. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database/errors.py +0 -0
  74. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database/functions.py +0 -0
  75. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database/locals.py +0 -0
  76. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database/model/__init__.py +0 -0
  77. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database/model/errors.py +0 -0
  78. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database/model/helpers.py +0 -0
  79. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database/model/mixin.py +0 -0
  80. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database/operators.py +0 -0
  81. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database/query_builder.py +0 -0
  82. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database/signature.py +0 -0
  83. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database/subquery.py +0 -0
  84. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database/typings.py +0 -0
  85. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database/utils.py +0 -0
  86. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database.egg-info/SOURCES.txt +0 -0
  87. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database.egg-info/dependency_links.txt +0 -0
  88. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database.egg-info/requires.txt +0 -0
  89. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database.egg-info/top_level.txt +0 -0
  90. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/sqlite_database.egg-info/zip-safe +0 -0
  91. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/tests/__init__.py +0 -0
  92. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/tests/manual_test_performances.py +0 -0
  93. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/tests/test_internals.py +0 -0
  94. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/tests/user_benchmark.py +0 -0
  95. {sqlite_database-0.6.9 → sqlite_database-0.7.0}/tests/user_helpers.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlite_database
3
- Version: 0.6.9
3
+ Version: 0.7.0
4
4
  Summary: A weird wrapper for SQLite Connection
5
5
  Home-page: https://github.com/RimuEirnarn/sqlite_database
6
6
  Author: RimuEirnarn
@@ -14,7 +14,7 @@ def test_installed():
14
14
  return True
15
15
 
16
16
 
17
- __version__ = "0.6.9"
17
+ __version__ = "0.7.0"
18
18
  __all__ = [
19
19
  "Database",
20
20
  "Table",
@@ -1,62 +1,62 @@
1
- """Model QueryBuilder"""
2
-
3
- from __future__ import annotations
4
- from typing import Any, Generic, Type, TypeVar
5
- from ..column import check_one
6
- from ..functions import Function
7
- from .. import model as models # pylint: disable=unused-import
8
-
9
- T = TypeVar("T", bound="models.BaseModel")
10
- count = Function('COUNT')
11
-
12
- class QueryBuilder(Generic[T]):
13
- # pylint: disable=protected-access
14
- """Query builder for Model ORM"""
15
-
16
- def __init__(self, model: Type[T]) -> None:
17
- self._model = model
18
- self._filters: dict[str, Any] = {}
19
- self._limit = 0
20
- self._offset = 0
21
- self._order = None
22
-
23
- def where(self, **kwargs):
24
- """Sets conditioning"""
25
- self._filters.update(kwargs)
26
- return self
27
-
28
- def limit(self, value: int):
29
- """Sets limit"""
30
- self._limit = value
31
- return self
32
-
33
- def offset(self, value: int):
34
- """Sets offset"""
35
- self._offset = value
36
- return self
37
-
38
- def order_by(self, column: str, descending: bool = False):
39
- """Order the query by a column"""
40
- self._order = (check_one(column), "asc" if descending is False else "desc")
41
- return self
42
-
43
- def fetch(self) -> list[T]:
44
- """Fetch data from table"""
45
- return [
46
- self._model(**record)
47
- for record in self._model._tbl.select( # pylint: disable=protected-access
48
- self._filters, limit=self._limit, offset=self._offset, order=self._order
49
- )
50
- ]
51
-
52
- def fetch_one(self) -> T:
53
- """Fetch one data from table"""
54
- # pylint: disable=protected-access
55
- record = self._model._tbl.select_one(
56
- self._filters, order=self._order
57
- )
58
- return self._model(**record)
59
-
60
- def count(self) -> int:
61
- """Count how much data is within this operation"""
62
- return self._model._tbl.select(self._filters, only=count('*'))
1
+ """Model QueryBuilder"""
2
+
3
+ from __future__ import annotations
4
+ from typing import Any, Generic, Type, TypeVar
5
+ from ..column import check_one
6
+ from ..functions import Function
7
+ from .. import model as models # pylint: disable=unused-import
8
+
9
+ T = TypeVar("T", bound="models.BaseModel")
10
+ count = Function('COUNT')
11
+
12
+ class QueryBuilder(Generic[T]):
13
+ # pylint: disable=protected-access
14
+ """Query builder for Model ORM"""
15
+
16
+ def __init__(self, model: Type[T]) -> None:
17
+ self._model = model
18
+ self._filters: dict[str, Any] = {}
19
+ self._limit = 0
20
+ self._offset = 0
21
+ self._order = None
22
+
23
+ def where(self, **kwargs):
24
+ """Sets conditioning"""
25
+ self._filters.update(kwargs)
26
+ return self
27
+
28
+ def limit(self, value: int):
29
+ """Sets limit"""
30
+ self._limit = value
31
+ return self
32
+
33
+ def offset(self, value: int):
34
+ """Sets offset"""
35
+ self._offset = value
36
+ return self
37
+
38
+ def order_by(self, column: str, descending: bool = False):
39
+ """Order the query by a column"""
40
+ self._order = (check_one(column), "asc" if descending is False else "desc")
41
+ return self
42
+
43
+ def fetch(self) -> list[T]:
44
+ """Fetch data from table"""
45
+ return [
46
+ self._model(**record)
47
+ for record in self._model._tbl.select( # pylint: disable=protected-access
48
+ self._filters, limit=self._limit, offset=self._offset, order=self._order
49
+ )
50
+ ]
51
+
52
+ def fetch_one(self) -> T:
53
+ """Fetch one data from table"""
54
+ # pylint: disable=protected-access
55
+ record = self._model._tbl.select_one(
56
+ self._filters, order=self._order
57
+ )
58
+ return self._model(**record)
59
+
60
+ def count(self) -> int:
61
+ """Count how much data is within this operation"""
62
+ return self._model._tbl.select(self._filters, what=count('*'))
@@ -193,14 +193,14 @@ class Table: # pylint: disable=too-many-instance-attributes
193
193
 
194
194
  def delete(
195
195
  self,
196
- condition: Condition = None,
196
+ where: Condition = None,
197
197
  limit: int = 0,
198
198
  order: Optional[Orders] = None,
199
199
  ):
200
200
  """Delete row or rows
201
201
 
202
202
  Args:
203
- condition (Condition, optional): Condition to determine deletion
203
+ where (Condition, optional): Condition to determine deletion
204
204
  See `Signature` class about conditional stuff. Defaults to None.
205
205
  limit (int, optional): Limit deletion by integer. Defaults to 0.
206
206
  order (Optional[Orders], optional): Order of deletion. Defaults to None.
@@ -208,7 +208,7 @@ class Table: # pylint: disable=too-many-instance-attributes
208
208
  Returns:
209
209
  int: Rows affected
210
210
  """
211
- query, data = build_delete(self._table, condition, limit, order) # type: ignore
211
+ query, data = build_delete(self._table, where, limit, order) # type: ignore
212
212
  self._control()
213
213
  cursor = self._exec(query, data)
214
214
  rcount = cursor.rowcount
@@ -218,15 +218,15 @@ class Table: # pylint: disable=too-many-instance-attributes
218
218
  self._dirty = True
219
219
  return rcount
220
220
 
221
- def delete_one(self, condition: Condition = None, order: Optional[Orders] = None):
221
+ def delete_one(self, where: Condition = None, order: Optional[Orders] = None):
222
222
  """Delete a row
223
223
 
224
224
  Args:
225
- condition (Condition, optional): Conditional to determine deletion.
225
+ where (Condition, optional): Conditional to determine deletion.
226
226
  Defaults to None.
227
227
  order (Optional[Orders], optional): Order of deletion. Defaults to None.
228
228
  """
229
- return self.delete(condition, 1, order)
229
+ return self.delete(where, 1, order)
230
230
 
231
231
  def insert(self, data: Data):
232
232
  """Insert data to current table
@@ -267,7 +267,7 @@ class Table: # pylint: disable=too-many-instance-attributes
267
267
 
268
268
  def update(
269
269
  self,
270
- condition: Condition | None = None,
270
+ where: Condition | None = None,
271
271
  data: Data | None = None,
272
272
  limit: int = 0,
273
273
  order: Optional[Orders] = None,
@@ -276,7 +276,7 @@ class Table: # pylint: disable=too-many-instance-attributes
276
276
 
277
277
  Args:
278
278
  data (Data): New data to update
279
- condition (Condition, optional): Condition dictionary.
279
+ where (Condition, optional): Condition dictionary.
280
280
  See `Signature` about how condition works. Defaults to None.
281
281
  limit (int, optional): Limit updates. Defaults to 0.
282
282
  order (Optional[Orders], optional): Order of change. Defaults to None.
@@ -287,7 +287,7 @@ class Table: # pylint: disable=too-many-instance-attributes
287
287
  if data is None:
288
288
  raise ValueError("data parameter must not be None")
289
289
  query, data = build_update(
290
- self._table, data, condition, limit, order
290
+ self._table, data, where, limit, order
291
291
  ) # type: ignore
292
292
  self._control()
293
293
  cursor = self._exec(query, data)
@@ -300,75 +300,75 @@ class Table: # pylint: disable=too-many-instance-attributes
300
300
 
301
301
  def update_one(
302
302
  self,
303
- condition: Condition | None = None,
304
- new_data: Data | None = None,
303
+ where: Condition | None = None,
304
+ data: Data | None = None,
305
305
  order: Orders | None = None,
306
306
  ) -> int:
307
307
  """Update 1 data only"""
308
- return self.update(condition, new_data, 1, order)
308
+ return self.update(where, data, 1, order)
309
309
 
310
310
  @overload
311
311
  def select(
312
312
  self,
313
- condition: Condition = None,
314
- only: OnlyColumn = "*",
313
+ where: Condition = None,
314
+ what: OnlyColumn = "*",
315
315
  limit: int = 0,
316
316
  offset: int = 0,
317
317
  order: Optional[Orders] = None,
318
- squash: Literal[False] = False,
318
+ flatten: Literal[False] = False,
319
319
  ) -> Queries: # type: ignore
320
320
  pass
321
321
 
322
322
  @overload
323
323
  def select(
324
324
  self,
325
- condition: Condition = None,
326
- only: OnlyColumn = "*",
325
+ where: Condition = None,
326
+ what: OnlyColumn = "*",
327
327
  limit: int = 0,
328
328
  offset: int = 0,
329
329
  order: Optional[Orders] = None,
330
- squash: Literal[True] = True,
330
+ flatten: Literal[True] = True,
331
331
  ) -> SquashedSqueries:
332
332
  pass
333
333
 
334
334
  @overload
335
335
  def select(
336
336
  self,
337
- condition: Condition = None,
338
- only: ParsedFn = _null,
337
+ where: Condition = None,
338
+ what: ParsedFn = _null,
339
339
  limit: int = 0,
340
340
  offset: int = 0,
341
341
  order: Optional[Orders] = None,
342
- squash: Literal[False] = False,
342
+ flatten: Literal[False] = False,
343
343
  ) -> Any:
344
344
  pass
345
345
 
346
346
  @overload
347
347
  def select(
348
348
  self,
349
- condition: Condition = None,
350
- only: JustAColumn = "_COLUMN",
349
+ where: Condition = None,
350
+ what: JustAColumn = "_COLUMN",
351
351
  limit: int = 0,
352
352
  offset: int = 0,
353
353
  order: Optional[Orders] = None,
354
- squash: Literal[False] = False,
354
+ flatten: Literal[False] = False,
355
355
  ) -> list[Any]:
356
356
  pass
357
357
 
358
358
  def select(
359
359
  self, # pylint: disable=too-many-arguments
360
- condition: Condition = None,
361
- only: OnlyColumn | ParsedFn | JustAColumn = "*",
360
+ where: Condition = None,
361
+ what: OnlyColumn | ParsedFn | JustAColumn = "*",
362
362
  limit: int = 0,
363
363
  offset: int = 0,
364
364
  order: Optional[Orders] = None,
365
- squash: bool = False,
365
+ flatten: bool = False,
366
366
  ):
367
367
  """Select data in current table. Bare .select() returns all data.
368
368
 
369
369
  Args:
370
- condition (Condition, optional): Conditions to used. Defaults to None.
371
- only: (OnlyColumn, ParsedFn, optional): Select what you want. Default to None.
370
+ where (Condition, optional): Conditions to used. Defaults to None.
371
+ what: (OnlyColumn, ParsedFn, optional): Select what you want. Default to None.
372
372
  limit (int, optional): Limit of select. Defaults to 0.
373
373
  offset (int, optional): Offset. Defaults to 0
374
374
  order (Optional[Orders], optional): Selection order. Defaults to None.
@@ -380,72 +380,72 @@ class Table: # pylint: disable=too-many-instance-attributes
380
380
  self._control()
381
381
  self._query_control()
382
382
  query, data = build_select(
383
- self._table, condition, only, limit, offset, order
383
+ self._table, where, what, limit, offset, order
384
384
  ) # type: ignore
385
- just_a_column = (isinstance(only, tuple) and len(only) == 1) or (
386
- isinstance(only, str) and only != "*"
385
+ just_a_column = (isinstance(what, tuple) and len(what) == 1) or (
386
+ isinstance(what, str) and what != "*"
387
387
  )
388
388
  with self._sql:
389
389
  cursor = self._exec(query, data)
390
390
  data = cursor.fetchall()
391
391
  if just_a_column:
392
- return [d[only] for d in data]
393
- if squash:
392
+ return [d[what] for d in data]
393
+ if flatten:
394
394
  return crunch(data)
395
- if isinstance(only, ParsedFn):
396
- return data[0][only.parse_sql()[0]]
395
+ if isinstance(what, ParsedFn):
396
+ return data[0][what.parse_sql()[0]]
397
397
  return data
398
398
 
399
399
  @overload
400
400
  def paginate_select(
401
401
  self,
402
- condition: Condition = None,
403
- only: OnlyColumn = "*",
402
+ where: Condition = None,
403
+ what: OnlyColumn = "*",
404
404
  page: int = 0,
405
405
  length: int = 10,
406
406
  order: Optional[Orders] = None,
407
- squash: Literal[False] = False,
407
+ flatten: Literal[False] = False,
408
408
  ) -> Generator[Queries, None, None]: # type: ignore
409
409
  pass
410
410
 
411
411
  @overload
412
412
  def paginate_select(
413
413
  self,
414
- condition: Condition = None,
415
- only: JustAColumn = "_COLUMN",
414
+ where: Condition = None,
415
+ what: JustAColumn = "_COLUMN",
416
416
  page: int = 0,
417
417
  length: int = 10,
418
418
  order: Optional[Orders] = None,
419
- squash: Literal[False] = False,
419
+ flatten: Literal[False] = False,
420
420
  ) -> Generator[list[Any], None, None]: # type: ignore
421
421
  pass
422
422
 
423
423
  @overload
424
424
  def paginate_select(
425
425
  self,
426
- condition: Condition = None,
427
- only: OnlyColumn = "*",
426
+ where: Condition = None,
427
+ what: OnlyColumn = "*",
428
428
  page: int = 0,
429
429
  length: int = 10,
430
430
  order: Optional[Orders] = None,
431
- squash: Literal[True] = True,
431
+ flatten: Literal[True] = True,
432
432
  ) -> Generator[SquashedSqueries, None, None]:
433
433
  pass
434
434
 
435
435
  def paginate_select(
436
436
  self,
437
- condition: Condition = None,
438
- only: OnlyColumn | JustAColumn = "*",
437
+ where: Condition = None,
438
+ what: OnlyColumn | JustAColumn = "*",
439
439
  page: int = 0,
440
440
  length: int = 10,
441
441
  order: Optional[Orders] = None,
442
- squash: bool = False,
442
+ flatten: bool = False,
443
443
  ):
444
444
  """Paginate select
445
445
 
446
446
  Args:
447
- condition (Condition, optional): Confitions to use. Defaults to None.
448
- only (OnlyColumn, optional): Select what you want. Default to None.
447
+ where (Condition, optional): Confitions to use. Defaults to None.
448
+ what (OnlyColumn, optional): Select what you want. Default to None.
449
449
  page (int): Which page number be returned first
450
450
  length (int, optional): Pagination length. Defaults to 10.
451
451
  order (Optional[Orders], optional): Order. Defaults to None.
@@ -462,19 +462,19 @@ class Table: # pylint: disable=too-many-instance-attributes
462
462
  start = page * length
463
463
  # ! A `only` keyword as a string or tuple of 1 element will
464
464
  # ! actually be a problem if they left alone because the end result is a list
465
- just_a_column = (isinstance(only, str) and only != "*") or (
466
- isinstance(only, tuple) and len(only) == 1
465
+ just_a_column = (isinstance(what, str) and what != "*") or (
466
+ isinstance(what, tuple) and len(what) == 1
467
467
  )
468
468
  while True:
469
469
  query, data = build_select(
470
- self._table, condition, only, length, start, order
470
+ self._table, where, what, length, start, order
471
471
  ) # type: ignore
472
472
  with self._sql:
473
473
  cursor = self._exec(query, data)
474
474
  fetched = cursor.fetchmany(length)
475
475
  if len(fetched) == 0:
476
476
  return
477
- if squash and not just_a_column:
477
+ if flatten and not just_a_column:
478
478
  fetched = crunch(fetched)
479
479
  if len(fetched) != length:
480
480
  yield fetched
@@ -485,8 +485,8 @@ class Table: # pylint: disable=too-many-instance-attributes
485
485
  @overload
486
486
  def select_one(
487
487
  self,
488
- condition: Condition = None,
489
- only: ParsedFn = _null,
488
+ where: Condition = None,
489
+ what: ParsedFn = _null,
490
490
  order: Optional[Orders] = None,
491
491
  ) -> Any:
492
492
  pass
@@ -494,8 +494,8 @@ class Table: # pylint: disable=too-many-instance-attributes
494
494
  @overload
495
495
  def select_one(
496
496
  self,
497
- condition: Condition = None,
498
- only: OnlyColumn = "*",
497
+ where: Condition = None,
498
+ what: OnlyColumn = "*",
499
499
  order: Optional[Orders] = None,
500
500
  ) -> Query:
501
501
  pass
@@ -503,23 +503,23 @@ class Table: # pylint: disable=too-many-instance-attributes
503
503
  @overload
504
504
  def select_one(
505
505
  self,
506
- condition: Condition = None,
507
- only: JustAColumn = "_COLUMN",
506
+ where: Condition = None,
507
+ what: JustAColumn = "_COLUMN",
508
508
  order: Optional[Orders] = None,
509
509
  ) -> Any:
510
510
  pass
511
511
 
512
512
  def select_one(
513
513
  self,
514
- condition: Condition = None,
515
- only: OnlyColumn | JustAColumn | ParsedFn = "*",
514
+ where: Condition = None,
515
+ what: OnlyColumn | JustAColumn | ParsedFn = "*",
516
516
  order: Optional[Orders] = None,
517
517
  ):
518
518
  """Select one data
519
519
 
520
520
  Args:
521
- condition (Condition, optional): Condition to use. Defaults to None.
522
- only: (OnlyColumn, optional): Select what you want. Default to None.
521
+ where (Condition, optional): Condition to use. Defaults to None.
522
+ what: (OnlyColumn, optional): Select what you want. Default to None.
523
523
  order (Optional[Orders], optional): Order of selection. Defaults to None.
524
524
 
525
525
  Returns:
@@ -528,19 +528,19 @@ class Table: # pylint: disable=too-many-instance-attributes
528
528
  self._control()
529
529
  self._query_control()
530
530
  query, data = build_select(
531
- self._table, condition, only, 1, 0, order
531
+ self._table, where, what, 1, 0, order
532
532
  ) # type: ignore
533
533
  with self._sql:
534
534
  cursor = self._exec(query, data)
535
535
  data = cursor.fetchone()
536
- if isinstance(only, ParsedFn):
537
- return data[only.parse_sql()[0]]
536
+ if isinstance(what, ParsedFn):
537
+ return data[what.parse_sql()[0]]
538
538
  if not data:
539
539
  return Row()
540
- if isinstance(only, tuple) and len(only) == 1:
541
- return data[only]
542
- if isinstance(only, str) and only != "*":
543
- return data[only]
540
+ if isinstance(what, tuple) and len(what) == 1:
541
+ return data[what]
542
+ if isinstance(what, str) and what != "*":
543
+ return data[what]
544
544
  return data
545
545
 
546
546
  def columns(self):
@@ -595,7 +595,7 @@ constraint is enabled."
595
595
  def count(self):
596
596
  """Count how much objects/rows stored in this table"""
597
597
  # ? Might as well uses __len__? But it's quite expensive.
598
- return self.select(only=count("*"))
598
+ return self.select(what=count("*"))
599
599
 
600
600
  def __repr__(self) -> str:
601
601
  return f"<Table({self._table}) -> {self._parent_repr}>"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlite_database
3
- Version: 0.6.9
3
+ Version: 0.7.0
4
4
  Summary: A weird wrapper for SQLite Connection
5
5
  Home-page: https://github.com/RimuEirnarn/sqlite_database
6
6
  Author: RimuEirnarn
@@ -206,7 +206,7 @@ def test_00_04_select_crunch():
206
206
  database = Database(":memory:")
207
207
  setup_database(database)
208
208
  groups = database.table("groups")
209
- assert groups.select(squash=True) == GROUP_BASE_CRUNCHED
209
+ assert groups.select(flatten=True) == GROUP_BASE_CRUNCHED
210
210
 
211
211
 
212
212
  def test_00_05_select_one_only_one_item():
@@ -222,8 +222,8 @@ def test_00_06_select_order_by():
222
222
  database = Database(":memory:")
223
223
  setup_orderable(database)
224
224
  items = database.table("items")
225
- first_high = items.select(only="quantity", limit=3, order=("quantity", "asc"))
226
- first_low = items.select(only="quantity", limit=3, order=("quantity", "desc"))
225
+ first_high = items.select(what="quantity", limit=3, order=("quantity", "asc"))
226
+ first_low = items.select(what="quantity", limit=3, order=("quantity", "desc"))
227
227
  assert first_high == [0, 1, 2]
228
228
  assert first_low == [99, 98, 97]
229
229
 
@@ -404,7 +404,7 @@ def test_08_00_function_count():
404
404
  database = Database(":memory:")
405
405
  setup_database_fns(database)
406
406
  counted = count("*")
407
- data = database.table("checkout").select(only=counted)
407
+ data = database.table("checkout").select(what=counted)
408
408
  print(data)
409
409
  assert data == 4
410
410
 
File without changes
File without changes