sqlite-database 0.7.5__tar.gz → 0.7.7__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.
- {sqlite_database-0.7.5/sqlite_database.egg-info → sqlite_database-0.7.7}/PKG-INFO +1 -1
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database/__init__.py +2 -3
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database/_debug.py +1 -1
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database/models/__init__.py +1 -1
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database/models/query_builder.py +42 -14
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database/query_builder.py +19 -3
- {sqlite_database-0.7.5 → sqlite_database-0.7.7/sqlite_database.egg-info}/PKG-INFO +1 -1
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/tests/database/model_api/test_model_api.py +37 -12
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/.editorconfig +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/.github/ISSUE_TEMPLATE/question.md +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/.github/dependabot.yml +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/.github/workflows/pylint.yml +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/.github/workflows/pytest.yml +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/.github/workflows/python-publish.yml +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/.gitignore +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/.readthedocs.yaml +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/.vscode/settings.json +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/Features.md +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/History.md +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/LICENSE +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/README.md +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/SimpleGuide.md +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/TODO.md +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/bin/activate +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/bin/check.bat +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/bin/check.sh +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/bin/include/utility.bash +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/bin/install.bash +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/bin/need-installed/activate +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/bin/need-installed/pre-commit +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/bin/summarize-pylint.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/dev-config/black.toml +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/dev-config/pylint.toml +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/dev-config/pytest.ini +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/dev-requirements.txt +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/Makefile +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/ModelAPI.md +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/SimpleGuide.md +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/_.md +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/api_reference.rst +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/conf.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/index.rst +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/make.bat +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/modules.rst +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/sqlite_database.column.rst +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/sqlite_database.config.rst +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/sqlite_database.csv.rst +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/sqlite_database.database.rst +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/sqlite_database.errors.rst +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/sqlite_database.functions.rst +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/sqlite_database.locals.rst +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/sqlite_database.model.errors.rst +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/sqlite_database.model.helpers.rst +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/sqlite_database.model.query_builder.rst +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/sqlite_database.model.rst +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/sqlite_database.operators.rst +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/sqlite_database.query_builder.rst +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/sqlite_database.rst +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/sqlite_database.signature.rst +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/sqlite_database.subexp.rst +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/sqlite_database.table.rst +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/sqlite_database.typings.rst +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/sqlite_database.utils.rst +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs-requirements.txt +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/project-init.bash +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/pyproject.toml +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/setup.cfg +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/setup.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database/_utils.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database/column.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database/csv.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database/database.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database/errors.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database/functions.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database/locals.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database/models/errors.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database/models/helpers.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database/models/mixin.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database/models/type_checkers.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database/operators.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database/signature.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database/subquery.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database/table.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database/typings.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database/utils.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database.egg-info/SOURCES.txt +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database.egg-info/dependency_links.txt +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database.egg-info/requires.txt +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database.egg-info/top_level.txt +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database.egg-info/zip-safe +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/tests/__init__.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/tests/database/__init__.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/tests/database/model_api/__init__.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/tests/database/setup.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/tests/database/table_api/__init__.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/tests/database/table_api/test_csv.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/tests/database/table_api/test_delete.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/tests/database/table_api/test_insert.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/tests/database/table_api/test_others.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/tests/database/table_api/test_select.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/tests/database/table_api/test_update.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/tests/database/test_custom.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/tests/manual_test_performances.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/tests/test_internals.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/tests/user_benchmark.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/tests/user_helpers.py +0 -0
- {sqlite_database-0.7.5 → sqlite_database-0.7.7}/transient/README.md +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from .models import BaseModel, model, Foreign, Primary, Unique, hook, validate
|
|
4
4
|
from .database import Database
|
|
5
|
-
from ._utils import
|
|
5
|
+
from ._utils import Row, Null
|
|
6
6
|
from .column import Column, text, integer, blob, real
|
|
7
7
|
from .signature import op
|
|
8
8
|
from .operators import this
|
|
@@ -14,14 +14,13 @@ def test_installed():
|
|
|
14
14
|
return True
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
__version__ = "0.7.
|
|
17
|
+
__version__ = "0.7.7"
|
|
18
18
|
__all__ = [
|
|
19
19
|
"Database",
|
|
20
20
|
"Table",
|
|
21
21
|
"this",
|
|
22
22
|
"op",
|
|
23
23
|
"Column",
|
|
24
|
-
"null",
|
|
25
24
|
"Null",
|
|
26
25
|
"Row",
|
|
27
26
|
"text",
|
|
@@ -39,7 +39,7 @@ def if_debug_print(*args, sep=" ", end="\n", flush=True):
|
|
|
39
39
|
arg0 = args[0]
|
|
40
40
|
print(
|
|
41
41
|
arg0,
|
|
42
|
-
*(repr(arg) for arg in args if args.index(arg) != 0),
|
|
42
|
+
*(repr(arg) if arg != "\n" else "\n" for arg in args if args.index(arg) != 0),
|
|
43
43
|
sep=sep,
|
|
44
44
|
end=end,
|
|
45
45
|
flush=flush,
|
|
@@ -155,7 +155,7 @@ class BaseModel: # pylint: disable=too-few-public-methods,too-many-public-metho
|
|
|
155
155
|
def create(cls, **kwargs):
|
|
156
156
|
"""Create data based on kwargs"""
|
|
157
157
|
primary: str | None = cls._primary or kwargs.get("id", None)
|
|
158
|
-
id_present = bool(kwargs.get("id", None))
|
|
158
|
+
id_present = bool(kwargs.get(cls._primary or "id", None))
|
|
159
159
|
if primary and cls.__auto_id__ and not id_present: # type: ignore
|
|
160
160
|
kwargs[primary] = cls.__auto_id__() # type: ignore
|
|
161
161
|
instance = cls(**kwargs)
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
"""Model QueryBuilder"""
|
|
2
2
|
|
|
3
|
+
# pylint: disable=protected-access
|
|
4
|
+
|
|
3
5
|
from __future__ import annotations
|
|
4
6
|
from typing import Any, Generic, Type, TypeVar
|
|
5
7
|
from .errors import NoDataReturnedError
|
|
6
8
|
from ..column import check_one
|
|
7
9
|
from ..functions import Function
|
|
8
|
-
from .. import models
|
|
10
|
+
from .. import models # pylint: disable=unused-import
|
|
9
11
|
|
|
10
12
|
T = TypeVar("T", bound="models.BaseModel")
|
|
11
|
-
count = Function(
|
|
13
|
+
count = Function("COUNT")
|
|
14
|
+
|
|
12
15
|
|
|
13
16
|
class QueryBuilder(Generic[T]):
|
|
14
17
|
# pylint: disable=protected-access
|
|
@@ -27,7 +30,7 @@ class QueryBuilder(Generic[T]):
|
|
|
27
30
|
self._failing = True
|
|
28
31
|
return self
|
|
29
32
|
|
|
30
|
-
def where(self, **kwargs):
|
|
33
|
+
def where(self, **kwargs: Any):
|
|
31
34
|
"""Sets conditioning"""
|
|
32
35
|
self._filters.update(kwargs)
|
|
33
36
|
return self
|
|
@@ -50,26 +53,51 @@ class QueryBuilder(Generic[T]):
|
|
|
50
53
|
def fetch(self) -> list[T]:
|
|
51
54
|
"""Fetch data from table"""
|
|
52
55
|
records = self._model._tbl.select( # pylint: disable=protected-access
|
|
53
|
-
|
|
54
|
-
|
|
56
|
+
self._filters, limit=self._limit, offset=self._offset, order=self._order
|
|
57
|
+
)
|
|
55
58
|
if len(records) == 0 and self._failing:
|
|
56
|
-
raise NoDataReturnedError(
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
]
|
|
59
|
+
raise NoDataReturnedError(
|
|
60
|
+
f"Model {self._model.__name__} has no data for current scope"
|
|
61
|
+
)
|
|
62
|
+
return [self._model(**record) for record in records]
|
|
60
63
|
|
|
61
64
|
def fetch_one(self) -> T | None:
|
|
62
65
|
"""Fetch one data from table"""
|
|
63
66
|
# pylint: disable=protected-access
|
|
64
|
-
record = self._model._tbl.select_one(
|
|
65
|
-
self._filters, order=self._order
|
|
66
|
-
)
|
|
67
|
+
record = self._model._tbl.select_one(self._filters, order=self._order)
|
|
67
68
|
if not record and self._failing:
|
|
68
|
-
raise NoDataReturnedError(
|
|
69
|
+
raise NoDataReturnedError(
|
|
70
|
+
f"Model {self._model.__name__} has no data for current scope"
|
|
71
|
+
)
|
|
69
72
|
if not record:
|
|
70
73
|
return None
|
|
71
74
|
return self._model(**record)
|
|
72
75
|
|
|
76
|
+
def patch(self, **kwargs: Any):
|
|
77
|
+
"""Update a data based on the filter according to passed keyword args"""
|
|
78
|
+
affected_rows = self._model._tbl.update(
|
|
79
|
+
self._filters, kwargs, self._limit, self._order
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
if affected_rows == 0 and self._failing:
|
|
83
|
+
raise NoDataReturnedError(
|
|
84
|
+
f"Model {self._model.__name__} updates no data for current scope"
|
|
85
|
+
)
|
|
86
|
+
return affected_rows
|
|
87
|
+
|
|
88
|
+
def delete(self):
|
|
89
|
+
"""Delete data based on the filter"""
|
|
90
|
+
affected_rows = self._model._tbl.delete(self._filters, self._limit, self._order)
|
|
91
|
+
|
|
92
|
+
if affected_rows == 0 and self._failing:
|
|
93
|
+
raise NoDataReturnedError(
|
|
94
|
+
f"Model {self._model.__name__} delete exactly no rows"
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
return affected_rows
|
|
98
|
+
|
|
73
99
|
def count(self) -> int:
|
|
74
100
|
"""Count how much data is within this operation"""
|
|
75
|
-
return self._model._tbl.select(self._filters, what=count(
|
|
101
|
+
return self._model._tbl.select(self._filters, what=count("*"))
|
|
102
|
+
|
|
103
|
+
update = patch
|
|
@@ -26,6 +26,8 @@ DEFAULT_MAPPINGS = {value: value for value in _SQLITETYPES}
|
|
|
26
26
|
SQL_ACTIONS = {"null": "set null"}
|
|
27
27
|
MAX_SUBQUERY_STACK_LIMIT = 10
|
|
28
28
|
|
|
29
|
+
NAMING_FORMAT = "{key}{suffix}__{call_id}_{depth}_{condition_id}"
|
|
30
|
+
|
|
29
31
|
|
|
30
32
|
def set_subquery_stack_limit(value: int):
|
|
31
33
|
"""Set subquery stack limit"""
|
|
@@ -200,7 +202,7 @@ def _handle_like(key, middle, val):
|
|
|
200
202
|
return clause
|
|
201
203
|
|
|
202
204
|
|
|
203
|
-
def extract_signature(
|
|
205
|
+
def extract_signature( # pylint: disable=too-many-locals
|
|
204
206
|
filter_: Condition | CacheCond = None, suffix: str = "_check", depth: int = 0
|
|
205
207
|
):
|
|
206
208
|
"""Extract filter signature."""
|
|
@@ -227,7 +229,13 @@ def extract_signature( # pylint: disable=too-many-locals
|
|
|
227
229
|
|
|
228
230
|
val = (
|
|
229
231
|
Signature(
|
|
230
|
-
|
|
232
|
+
":"+NAMING_FORMAT.format(
|
|
233
|
+
key=key,
|
|
234
|
+
suffix=suffix,
|
|
235
|
+
call_id=call_id,
|
|
236
|
+
depth=depth,
|
|
237
|
+
condition_id=condition_id,
|
|
238
|
+
),
|
|
231
239
|
value.generate(),
|
|
232
240
|
value.data,
|
|
233
241
|
)
|
|
@@ -257,7 +265,15 @@ def extract_signature( # pylint: disable=too-many-locals
|
|
|
257
265
|
clauses.append(clause)
|
|
258
266
|
|
|
259
267
|
if val.value is not null:
|
|
260
|
-
data[
|
|
268
|
+
data[
|
|
269
|
+
NAMING_FORMAT.format(
|
|
270
|
+
key=key,
|
|
271
|
+
suffix=suffix,
|
|
272
|
+
call_id=call_id,
|
|
273
|
+
depth=depth,
|
|
274
|
+
condition_id=condition_id,
|
|
275
|
+
)
|
|
276
|
+
] = old_data
|
|
261
277
|
|
|
262
278
|
if not clauses:
|
|
263
279
|
return "", data
|
|
@@ -9,6 +9,9 @@ from sqlite_database.models.errors import ValidationError, NoDataReturnedError
|
|
|
9
9
|
|
|
10
10
|
from ..setup import setup_model_api
|
|
11
11
|
|
|
12
|
+
def auto_id():
|
|
13
|
+
return str(uuid4())
|
|
14
|
+
|
|
12
15
|
def test_model_api():
|
|
13
16
|
# pylint: disable=protected-access
|
|
14
17
|
"""Test 1100 Model API"""
|
|
@@ -147,9 +150,6 @@ def test_model_auto_id():
|
|
|
147
150
|
|
|
148
151
|
db = Database(":memory:")
|
|
149
152
|
|
|
150
|
-
def auto_id():
|
|
151
|
-
return str(uuid4())
|
|
152
|
-
|
|
153
153
|
@model(db)
|
|
154
154
|
class Users(BaseModel):
|
|
155
155
|
"""Base User class"""
|
|
@@ -172,9 +172,6 @@ def test_model_hidden():
|
|
|
172
172
|
|
|
173
173
|
db = Database(":memory:")
|
|
174
174
|
|
|
175
|
-
def auto_id():
|
|
176
|
-
return str(uuid4())
|
|
177
|
-
|
|
178
175
|
@model(db)
|
|
179
176
|
class Users(BaseModel):
|
|
180
177
|
"""Base User class"""
|
|
@@ -196,9 +193,6 @@ def test_model_fail():
|
|
|
196
193
|
|
|
197
194
|
db = Database(":memory:")
|
|
198
195
|
|
|
199
|
-
def auto_id():
|
|
200
|
-
return str(uuid4())
|
|
201
|
-
|
|
202
196
|
@model(db)
|
|
203
197
|
class Users(BaseModel):
|
|
204
198
|
"""Base User class"""
|
|
@@ -219,9 +213,6 @@ def test_model_api_runtime_typechecking():
|
|
|
219
213
|
|
|
220
214
|
db = Database(":memory:")
|
|
221
215
|
|
|
222
|
-
def auto_id():
|
|
223
|
-
return str(uuid4())
|
|
224
|
-
|
|
225
216
|
@model(db, True)
|
|
226
217
|
class Users(BaseModel):
|
|
227
218
|
"""Base User class"""
|
|
@@ -237,3 +228,37 @@ def test_model_api_runtime_typechecking():
|
|
|
237
228
|
Users.create(id=0, username=0, password=0)
|
|
238
229
|
|
|
239
230
|
assert Users.first() is None, "How?"
|
|
231
|
+
|
|
232
|
+
def test_model_api_query_builder_update():
|
|
233
|
+
"""Test Model API Querybuilder update()"""
|
|
234
|
+
|
|
235
|
+
db = Database(":memory:")
|
|
236
|
+
|
|
237
|
+
Users, _ = setup_model_api(db)
|
|
238
|
+
admin = Users.create(id=auto_id(), username="admin", is_active=True)
|
|
239
|
+
assert Users.where(id=admin.id).throw().patch(username="system") == 1, "Changes should be 1"
|
|
240
|
+
|
|
241
|
+
def test_model_api_query_builder_delete():
|
|
242
|
+
"""Test Model API QueryBuilder delete()"""
|
|
243
|
+
|
|
244
|
+
db = Database(":memory:")
|
|
245
|
+
|
|
246
|
+
Users, _ = setup_model_api(db)
|
|
247
|
+
admin = Users.create(id=auto_id(), username='admin', is_active=True)
|
|
248
|
+
|
|
249
|
+
assert Users.where(id=admin.id).throw().delete() == 1, "Changes should be 1"
|
|
250
|
+
|
|
251
|
+
def test_model_api_custom_id():
|
|
252
|
+
"""Test Model API Custom Primary ID"""
|
|
253
|
+
|
|
254
|
+
db = Database(":memory:")
|
|
255
|
+
db.foreign_pragma('ON')
|
|
256
|
+
|
|
257
|
+
@model(db)
|
|
258
|
+
class Users(BaseModel):
|
|
259
|
+
__schema__ = (Primary('uid'),)
|
|
260
|
+
|
|
261
|
+
uid: str
|
|
262
|
+
username: str
|
|
263
|
+
|
|
264
|
+
assert Users.create(uid="1", username='admin')
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
{sqlite_database-0.7.5 → sqlite_database-0.7.7}/docs/sqlite_database.model.query_builder.rst
RENAMED
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlite_database-0.7.5 → sqlite_database-0.7.7}/sqlite_database.egg-info/dependency_links.txt
RENAMED
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|