TypeDAL 3.15.2__tar.gz → 3.15.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.15.2 → typedal-3.15.3}/CHANGELOG.md +6 -0
  2. {typedal-3.15.2 → typedal-3.15.3}/PKG-INFO +1 -1
  3. {typedal-3.15.2 → typedal-3.15.3}/src/typedal/__about__.py +1 -1
  4. {typedal-3.15.2 → typedal-3.15.3}/src/typedal/core.py +8 -0
  5. {typedal-3.15.2 → typedal-3.15.3}/tests/test_relationships.py +6 -0
  6. {typedal-3.15.2 → typedal-3.15.3}/.github/workflows/su6.yml +0 -0
  7. {typedal-3.15.2 → typedal-3.15.3}/.gitignore +0 -0
  8. {typedal-3.15.2 → typedal-3.15.3}/.readthedocs.yml +0 -0
  9. {typedal-3.15.2 → typedal-3.15.3}/README.md +0 -0
  10. {typedal-3.15.2 → typedal-3.15.3}/coverage.svg +0 -0
  11. {typedal-3.15.2 → typedal-3.15.3}/docs/1_getting_started.md +0 -0
  12. {typedal-3.15.2 → typedal-3.15.3}/docs/2_defining_tables.md +0 -0
  13. {typedal-3.15.2 → typedal-3.15.3}/docs/3_building_queries.md +0 -0
  14. {typedal-3.15.2 → typedal-3.15.3}/docs/4_relationships.md +0 -0
  15. {typedal-3.15.2 → typedal-3.15.3}/docs/5_py4web.md +0 -0
  16. {typedal-3.15.2 → typedal-3.15.3}/docs/6_migrations.md +0 -0
  17. {typedal-3.15.2 → typedal-3.15.3}/docs/7_mixins.md +0 -0
  18. {typedal-3.15.2 → typedal-3.15.3}/docs/css/code_blocks.css +0 -0
  19. {typedal-3.15.2 → typedal-3.15.3}/docs/index.md +0 -0
  20. {typedal-3.15.2 → typedal-3.15.3}/docs/requirements.txt +0 -0
  21. {typedal-3.15.2 → typedal-3.15.3}/example_new.py +0 -0
  22. {typedal-3.15.2 → typedal-3.15.3}/example_old.py +0 -0
  23. {typedal-3.15.2 → typedal-3.15.3}/mkdocs.yml +0 -0
  24. {typedal-3.15.2 → typedal-3.15.3}/pyproject.toml +0 -0
  25. {typedal-3.15.2 → typedal-3.15.3}/src/typedal/__init__.py +0 -0
  26. {typedal-3.15.2 → typedal-3.15.3}/src/typedal/caching.py +0 -0
  27. {typedal-3.15.2 → typedal-3.15.3}/src/typedal/cli.py +0 -0
  28. {typedal-3.15.2 → typedal-3.15.3}/src/typedal/config.py +0 -0
  29. {typedal-3.15.2 → typedal-3.15.3}/src/typedal/fields.py +0 -0
  30. {typedal-3.15.2 → typedal-3.15.3}/src/typedal/for_py4web.py +0 -0
  31. {typedal-3.15.2 → typedal-3.15.3}/src/typedal/for_web2py.py +0 -0
  32. {typedal-3.15.2 → typedal-3.15.3}/src/typedal/helpers.py +0 -0
  33. {typedal-3.15.2 → typedal-3.15.3}/src/typedal/mixins.py +0 -0
  34. {typedal-3.15.2 → typedal-3.15.3}/src/typedal/py.typed +0 -0
  35. {typedal-3.15.2 → typedal-3.15.3}/src/typedal/serializers/as_json.py +0 -0
  36. {typedal-3.15.2 → typedal-3.15.3}/src/typedal/types.py +0 -0
  37. {typedal-3.15.2 → typedal-3.15.3}/src/typedal/web2py_py4web_shared.py +0 -0
  38. {typedal-3.15.2 → typedal-3.15.3}/tests/__init__.py +0 -0
  39. {typedal-3.15.2 → typedal-3.15.3}/tests/configs/simple.toml +0 -0
  40. {typedal-3.15.2 → typedal-3.15.3}/tests/configs/valid.env +0 -0
  41. {typedal-3.15.2 → typedal-3.15.3}/tests/configs/valid.toml +0 -0
  42. {typedal-3.15.2 → typedal-3.15.3}/tests/test_cli.py +0 -0
  43. {typedal-3.15.2 → typedal-3.15.3}/tests/test_config.py +0 -0
  44. {typedal-3.15.2 → typedal-3.15.3}/tests/test_docs_examples.py +0 -0
  45. {typedal-3.15.2 → typedal-3.15.3}/tests/test_helpers.py +0 -0
  46. {typedal-3.15.2 → typedal-3.15.3}/tests/test_json.py +0 -0
  47. {typedal-3.15.2 → typedal-3.15.3}/tests/test_main.py +0 -0
  48. {typedal-3.15.2 → typedal-3.15.3}/tests/test_mixins.py +0 -0
  49. {typedal-3.15.2 → typedal-3.15.3}/tests/test_mypy.py +0 -0
  50. {typedal-3.15.2 → typedal-3.15.3}/tests/test_orm.py +0 -0
  51. {typedal-3.15.2 → typedal-3.15.3}/tests/test_py4web.py +0 -0
  52. {typedal-3.15.2 → typedal-3.15.3}/tests/test_query_builder.py +0 -0
  53. {typedal-3.15.2 → typedal-3.15.3}/tests/test_row.py +0 -0
  54. {typedal-3.15.2 → typedal-3.15.3}/tests/test_stats.py +0 -0
  55. {typedal-3.15.2 → typedal-3.15.3}/tests/test_table.py +0 -0
  56. {typedal-3.15.2 → typedal-3.15.3}/tests/test_web2py.py +0 -0
  57. {typedal-3.15.2 → typedal-3.15.3}/tests/test_xx_others.py +0 -0
  58. {typedal-3.15.2 → typedal-3.15.3}/tests/timings.py +0 -0
@@ -2,6 +2,12 @@
2
2
 
3
3
  <!--next-version-placeholder-->
4
4
 
5
+ ## v3.15.3 (2025-07-25)
6
+
7
+ ### Fix
8
+
9
+ * Support `dict(row)` via `row.keys()`, also returning relationships ([`99fc2ef`](https://github.com/trialandsuccess/TypeDAL/commit/99fc2ef7b398947efae64f9be34770828a8d1730))
10
+
5
11
  ## v3.15.2 (2025-07-24)
6
12
 
7
13
  ### Fix
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: TypeDAL
3
- Version: 3.15.2
3
+ Version: 3.15.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.15.2"
8
+ __version__ = "3.15.3"
@@ -1697,6 +1697,14 @@ class TypedTable(_TypedTable, metaclass=TableMeta):
1697
1697
 
1698
1698
  raise AttributeError(item)
1699
1699
 
1700
+ def keys(self):
1701
+ """
1702
+ Return the combination of row + relationship keys.
1703
+
1704
+ Used by dict(row).
1705
+ """
1706
+ return list(self._row.keys()) + getattr(self, "_with", [])
1707
+
1700
1708
  def get(self, item: str, default: Any = None) -> Any:
1701
1709
  """
1702
1710
  Try to get a column from this instance, else return default.
@@ -293,6 +293,12 @@ def test_typedal_way():
293
293
 
294
294
  assert len(role_writer.users) == 2
295
295
 
296
+ author1 = User.where(id=4).join().first()
297
+
298
+ assert (
299
+ len(author1.as_dict()["articles"]) == len(author1.__dict__["articles"]) == len(dict(author1)["articles"]) == 2
300
+ )
301
+
296
302
 
297
303
  def test_reprs():
298
304
  _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