TypeDAL 3.17.2__tar.gz → 3.17.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.

Potentially problematic release.


This version of TypeDAL might be problematic. Click here for more details.

Files changed (58) hide show
  1. {typedal-3.17.2 → typedal-3.17.3}/CHANGELOG.md +6 -0
  2. {typedal-3.17.2 → typedal-3.17.3}/PKG-INFO +1 -1
  3. {typedal-3.17.2 → typedal-3.17.3}/src/typedal/__about__.py +1 -1
  4. {typedal-3.17.2 → typedal-3.17.3}/src/typedal/core.py +1 -1
  5. {typedal-3.17.2 → typedal-3.17.3}/tests/test_query_builder.py +7 -1
  6. {typedal-3.17.2 → typedal-3.17.3}/.github/workflows/su6.yml +0 -0
  7. {typedal-3.17.2 → typedal-3.17.3}/.gitignore +0 -0
  8. {typedal-3.17.2 → typedal-3.17.3}/.readthedocs.yml +0 -0
  9. {typedal-3.17.2 → typedal-3.17.3}/README.md +0 -0
  10. {typedal-3.17.2 → typedal-3.17.3}/coverage.svg +0 -0
  11. {typedal-3.17.2 → typedal-3.17.3}/docs/1_getting_started.md +0 -0
  12. {typedal-3.17.2 → typedal-3.17.3}/docs/2_defining_tables.md +0 -0
  13. {typedal-3.17.2 → typedal-3.17.3}/docs/3_building_queries.md +0 -0
  14. {typedal-3.17.2 → typedal-3.17.3}/docs/4_relationships.md +0 -0
  15. {typedal-3.17.2 → typedal-3.17.3}/docs/5_py4web.md +0 -0
  16. {typedal-3.17.2 → typedal-3.17.3}/docs/6_migrations.md +0 -0
  17. {typedal-3.17.2 → typedal-3.17.3}/docs/7_mixins.md +0 -0
  18. {typedal-3.17.2 → typedal-3.17.3}/docs/css/code_blocks.css +0 -0
  19. {typedal-3.17.2 → typedal-3.17.3}/docs/index.md +0 -0
  20. {typedal-3.17.2 → typedal-3.17.3}/docs/requirements.txt +0 -0
  21. {typedal-3.17.2 → typedal-3.17.3}/example_new.py +0 -0
  22. {typedal-3.17.2 → typedal-3.17.3}/example_old.py +0 -0
  23. {typedal-3.17.2 → typedal-3.17.3}/mkdocs.yml +0 -0
  24. {typedal-3.17.2 → typedal-3.17.3}/pyproject.toml +0 -0
  25. {typedal-3.17.2 → typedal-3.17.3}/src/typedal/__init__.py +0 -0
  26. {typedal-3.17.2 → typedal-3.17.3}/src/typedal/caching.py +0 -0
  27. {typedal-3.17.2 → typedal-3.17.3}/src/typedal/cli.py +0 -0
  28. {typedal-3.17.2 → typedal-3.17.3}/src/typedal/config.py +0 -0
  29. {typedal-3.17.2 → typedal-3.17.3}/src/typedal/fields.py +0 -0
  30. {typedal-3.17.2 → typedal-3.17.3}/src/typedal/for_py4web.py +0 -0
  31. {typedal-3.17.2 → typedal-3.17.3}/src/typedal/for_web2py.py +0 -0
  32. {typedal-3.17.2 → typedal-3.17.3}/src/typedal/helpers.py +0 -0
  33. {typedal-3.17.2 → typedal-3.17.3}/src/typedal/mixins.py +0 -0
  34. {typedal-3.17.2 → typedal-3.17.3}/src/typedal/py.typed +0 -0
  35. {typedal-3.17.2 → typedal-3.17.3}/src/typedal/serializers/as_json.py +0 -0
  36. {typedal-3.17.2 → typedal-3.17.3}/src/typedal/types.py +0 -0
  37. {typedal-3.17.2 → typedal-3.17.3}/src/typedal/web2py_py4web_shared.py +0 -0
  38. {typedal-3.17.2 → typedal-3.17.3}/tests/__init__.py +0 -0
  39. {typedal-3.17.2 → typedal-3.17.3}/tests/configs/simple.toml +0 -0
  40. {typedal-3.17.2 → typedal-3.17.3}/tests/configs/valid.env +0 -0
  41. {typedal-3.17.2 → typedal-3.17.3}/tests/configs/valid.toml +0 -0
  42. {typedal-3.17.2 → typedal-3.17.3}/tests/test_cli.py +0 -0
  43. {typedal-3.17.2 → typedal-3.17.3}/tests/test_config.py +0 -0
  44. {typedal-3.17.2 → typedal-3.17.3}/tests/test_docs_examples.py +0 -0
  45. {typedal-3.17.2 → typedal-3.17.3}/tests/test_helpers.py +0 -0
  46. {typedal-3.17.2 → typedal-3.17.3}/tests/test_json.py +0 -0
  47. {typedal-3.17.2 → typedal-3.17.3}/tests/test_main.py +0 -0
  48. {typedal-3.17.2 → typedal-3.17.3}/tests/test_mixins.py +0 -0
  49. {typedal-3.17.2 → typedal-3.17.3}/tests/test_mypy.py +0 -0
  50. {typedal-3.17.2 → typedal-3.17.3}/tests/test_orm.py +0 -0
  51. {typedal-3.17.2 → typedal-3.17.3}/tests/test_py4web.py +0 -0
  52. {typedal-3.17.2 → typedal-3.17.3}/tests/test_relationships.py +0 -0
  53. {typedal-3.17.2 → typedal-3.17.3}/tests/test_row.py +0 -0
  54. {typedal-3.17.2 → typedal-3.17.3}/tests/test_stats.py +0 -0
  55. {typedal-3.17.2 → typedal-3.17.3}/tests/test_table.py +0 -0
  56. {typedal-3.17.2 → typedal-3.17.3}/tests/test_web2py.py +0 -0
  57. {typedal-3.17.2 → typedal-3.17.3}/tests/test_xx_others.py +0 -0
  58. {typedal-3.17.2 → typedal-3.17.3}/tests/timings.py +0 -0
@@ -2,6 +2,12 @@
2
2
 
3
3
  <!--next-version-placeholder-->
4
4
 
5
+ ## v3.17.3 (2025-09-30)
6
+
7
+ ### Fix
8
+
9
+ * Make `first_or_fail` accept any exception (including BaseException) to support e.g. py4web's HTTP ([`7b42724`](https://github.com/trialandsuccess/TypeDAL/commit/7b42724dbebc8151545c5456cd49fe93ae63157f))
10
+
5
11
  ## v3.17.2 (2025-09-24)
6
12
 
7
13
  ### Fix
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: TypeDAL
3
- Version: 3.17.2
3
+ Version: 3.17.3
4
4
  Summary: Typing support for PyDAL
5
5
  Project-URL: Documentation, https://typedal.readthedocs.io/
6
6
  Project-URL: Issues, https://github.com/trialandsuccess/TypeDAL/issues
@@ -5,4 +5,4 @@ This file contains the Version info for this package.
5
5
  # SPDX-FileCopyrightText: 2023-present Robin van der Noord <robinvandernoord@gmail.com>
6
6
  #
7
7
  # SPDX-License-Identifier: MIT
8
- __version__ = "3.17.2"
8
+ __version__ = "3.17.3"
@@ -3343,7 +3343,7 @@ class QueryBuilder(typing.Generic[T_MetaInstance]):
3343
3343
  def _first(self) -> str:
3344
3344
  return self._paginate(page=1, limit=1)
3345
3345
 
3346
- def first_or_fail(self, exception: typing.Optional[Exception] = None, verbose: bool = False) -> T_MetaInstance:
3346
+ def first_or_fail(self, exception: typing.Optional[BaseException] = None, verbose: bool = False) -> T_MetaInstance:
3347
3347
  """
3348
3348
  Call .first() and raise an error if nothing found.
3349
3349
 
@@ -521,9 +521,15 @@ def test_collect_with_extra_fields():
521
521
 
522
522
  assert builder.execute()
523
523
 
524
- row = builder.first_or_fail()
524
+ class HTTP(BaseException):
525
+ ...
526
+
527
+ row = builder.first_or_fail(HTTP(404))
525
528
 
526
529
  assert row.id
527
530
  assert row.name
528
531
  assert row._extra
529
532
  assert row[TestRelationship.querytable.count()]
533
+
534
+ with pytest.raises(HTTP):
535
+ TestRelationship.where(TestRelationship.id == 3245892384).first_or_fail(HTTP(404))
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