TypeDAL 3.8.2__tar.gz → 3.8.4__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.
Potentially problematic release.
This version of TypeDAL might be problematic. Click here for more details.
- {typedal-3.8.2 → typedal-3.8.4}/CHANGELOG.md +15 -0
- {typedal-3.8.2 → typedal-3.8.4}/PKG-INFO +1 -1
- {typedal-3.8.2 → typedal-3.8.4}/src/typedal/__about__.py +1 -1
- {typedal-3.8.2 → typedal-3.8.4}/src/typedal/core.py +4 -4
- {typedal-3.8.2 → typedal-3.8.4}/tests/test_query_builder.py +7 -0
- {typedal-3.8.2 → typedal-3.8.4}/.github/workflows/su6.yml +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/.gitignore +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/.readthedocs.yml +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/README.md +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/coverage.svg +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/docs/1_getting_started.md +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/docs/2_defining_tables.md +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/docs/3_building_queries.md +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/docs/4_relationships.md +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/docs/5_py4web.md +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/docs/6_migrations.md +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/docs/7_mixins.md +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/docs/css/code_blocks.css +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/docs/index.md +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/docs/requirements.txt +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/example_new.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/example_old.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/mkdocs.yml +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/pyproject.toml +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/src/typedal/__init__.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/src/typedal/caching.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/src/typedal/cli.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/src/typedal/config.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/src/typedal/fields.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/src/typedal/for_py4web.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/src/typedal/for_web2py.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/src/typedal/helpers.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/src/typedal/mixins.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/src/typedal/py.typed +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/src/typedal/serializers/as_json.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/src/typedal/types.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/src/typedal/web2py_py4web_shared.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/tests/__init__.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/tests/configs/simple.toml +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/tests/configs/valid.env +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/tests/configs/valid.toml +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/tests/test_cli.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/tests/test_config.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/tests/test_docs_examples.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/tests/test_helpers.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/tests/test_json.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/tests/test_main.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/tests/test_mixins.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/tests/test_mypy.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/tests/test_orm.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/tests/test_py4web.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/tests/test_relationships.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/tests/test_row.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/tests/test_stats.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/tests/test_table.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/tests/test_web2py.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/tests/test_xx_others.py +0 -0
- {typedal-3.8.2 → typedal-3.8.4}/tests/timings.py +0 -0
|
@@ -2,9 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
<!--next-version-placeholder-->
|
|
4
4
|
|
|
5
|
+
## v3.8.4 (2024-10-24)
|
|
6
|
+
|
|
7
|
+
### Fix
|
|
8
|
+
|
|
9
|
+
* Paginate with limit=0 will yield all rows instead of crashing pt2 ([`78f1ae7`](https://github.com/trialandsuccess/TypeDAL/commit/78f1ae7257af0ba90040a7356ad579d3c77aa231))
|
|
10
|
+
|
|
11
|
+
## v3.8.3 (2024-10-24)
|
|
12
|
+
|
|
13
|
+
### Fix
|
|
14
|
+
|
|
15
|
+
* Paginate with limit=0 will yield all rows instead of crashing ([`76813e6`](https://github.com/trialandsuccess/TypeDAL/commit/76813e63fc2a0915de2ae5aa3df5be0254678f8b))
|
|
16
|
+
|
|
5
17
|
## v3.8.2 (2024-10-23)
|
|
6
18
|
|
|
19
|
+
### Fix
|
|
7
20
|
|
|
21
|
+
* Improvements in relationship detection and multiple mixins
|
|
22
|
+
* make Mixin base class define __settings__ so other mixins can use them without checking for existance
|
|
8
23
|
|
|
9
24
|
## v3.8.1 (2024-10-22)
|
|
10
25
|
|
|
@@ -2744,17 +2744,17 @@ class QueryBuilder(typing.Generic[T_MetaInstance]):
|
|
|
2744
2744
|
limit: int,
|
|
2745
2745
|
page: int = 1,
|
|
2746
2746
|
) -> "QueryBuilder[T_MetaInstance]":
|
|
2747
|
-
_from = limit * (page - 1)
|
|
2748
|
-
_to = limit * page
|
|
2749
|
-
|
|
2750
2747
|
available = self.count()
|
|
2751
2748
|
|
|
2749
|
+
_from = limit * (page - 1)
|
|
2750
|
+
_to = (limit * page) if limit else available
|
|
2751
|
+
|
|
2752
2752
|
metadata: Metadata = {}
|
|
2753
2753
|
|
|
2754
2754
|
metadata["pagination"] = {
|
|
2755
2755
|
"limit": limit,
|
|
2756
2756
|
"current_page": page,
|
|
2757
|
-
"max_page": math.ceil(available / limit),
|
|
2757
|
+
"max_page": math.ceil(available / limit) if limit else 1,
|
|
2758
2758
|
"rows": available,
|
|
2759
2759
|
"min_max": (_from, _to),
|
|
2760
2760
|
}
|
|
@@ -273,6 +273,13 @@ def test_paginate():
|
|
|
273
273
|
assert page_dict["next_page"] is None
|
|
274
274
|
assert page_dict["prev_page"] is None
|
|
275
275
|
|
|
276
|
+
# what if no limit?
|
|
277
|
+
all_rows = TestQueryTable.join(method="left").paginate(limit=0, page=1)
|
|
278
|
+
assert len(all_rows) == 5
|
|
279
|
+
assert all_rows.pagination["total_items"] == 5
|
|
280
|
+
assert all_rows.pagination["total_pages"] == 1
|
|
281
|
+
assert not all_rows.pagination["has_next_page"]
|
|
282
|
+
|
|
276
283
|
|
|
277
284
|
def test_chunking():
|
|
278
285
|
_setup_data()
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|