TypeDAL 4.4.1__tar.gz → 4.4.2__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 (72) hide show
  1. {typedal-4.4.1 → typedal-4.4.2}/CHANGELOG.md +6 -0
  2. {typedal-4.4.1 → typedal-4.4.2}/PKG-INFO +1 -1
  3. {typedal-4.4.1 → typedal-4.4.2}/src/typedal/__about__.py +1 -1
  4. {typedal-4.4.1 → typedal-4.4.2}/src/typedal/caching.py +6 -21
  5. {typedal-4.4.1 → typedal-4.4.2}/tests/test_relationships.py +1 -1
  6. {typedal-4.4.1 → typedal-4.4.2}/.crush/.gitignore +0 -0
  7. {typedal-4.4.1 → typedal-4.4.2}/.crush/crush.db-shm +0 -0
  8. {typedal-4.4.1 → typedal-4.4.2}/.crush/crush.db-wal +0 -0
  9. {typedal-4.4.1 → typedal-4.4.2}/.crush/init +0 -0
  10. {typedal-4.4.1 → typedal-4.4.2}/.crush/logs/crush.log +0 -0
  11. {typedal-4.4.1 → typedal-4.4.2}/.github/workflows/su6.yml +0 -0
  12. {typedal-4.4.1 → typedal-4.4.2}/.gitignore +0 -0
  13. {typedal-4.4.1 → typedal-4.4.2}/.readthedocs.yml +0 -0
  14. {typedal-4.4.1 → typedal-4.4.2}/README.md +0 -0
  15. {typedal-4.4.1 → typedal-4.4.2}/coverage.svg +0 -0
  16. {typedal-4.4.1 → typedal-4.4.2}/docs/1_getting_started.md +0 -0
  17. {typedal-4.4.1 → typedal-4.4.2}/docs/2_defining_tables.md +0 -0
  18. {typedal-4.4.1 → typedal-4.4.2}/docs/3_building_queries.md +0 -0
  19. {typedal-4.4.1 → typedal-4.4.2}/docs/4_relationships.md +0 -0
  20. {typedal-4.4.1 → typedal-4.4.2}/docs/5_py4web.md +0 -0
  21. {typedal-4.4.1 → typedal-4.4.2}/docs/6_migrations.md +0 -0
  22. {typedal-4.4.1 → typedal-4.4.2}/docs/7_configuration.md +0 -0
  23. {typedal-4.4.1 → typedal-4.4.2}/docs/8_mixins.md +0 -0
  24. {typedal-4.4.1 → typedal-4.4.2}/docs/9_memoization.md +0 -0
  25. {typedal-4.4.1 → typedal-4.4.2}/docs/css/code_blocks.css +0 -0
  26. {typedal-4.4.1 → typedal-4.4.2}/docs/index.md +0 -0
  27. {typedal-4.4.1 → typedal-4.4.2}/docs/requirements.txt +0 -0
  28. {typedal-4.4.1 → typedal-4.4.2}/example_new.py +0 -0
  29. {typedal-4.4.1 → typedal-4.4.2}/example_old.py +0 -0
  30. {typedal-4.4.1 → typedal-4.4.2}/mkdocs.yml +0 -0
  31. {typedal-4.4.1 → typedal-4.4.2}/pyproject.toml +0 -0
  32. {typedal-4.4.1 → typedal-4.4.2}/src/typedal/__init__.py +0 -0
  33. {typedal-4.4.1 → typedal-4.4.2}/src/typedal/cli.py +0 -0
  34. {typedal-4.4.1 → typedal-4.4.2}/src/typedal/config.py +0 -0
  35. {typedal-4.4.1 → typedal-4.4.2}/src/typedal/constants.py +0 -0
  36. {typedal-4.4.1 → typedal-4.4.2}/src/typedal/core.py +0 -0
  37. {typedal-4.4.1 → typedal-4.4.2}/src/typedal/define.py +0 -0
  38. {typedal-4.4.1 → typedal-4.4.2}/src/typedal/fields.py +0 -0
  39. {typedal-4.4.1 → typedal-4.4.2}/src/typedal/for_py4web.py +0 -0
  40. {typedal-4.4.1 → typedal-4.4.2}/src/typedal/for_web2py.py +0 -0
  41. {typedal-4.4.1 → typedal-4.4.2}/src/typedal/helpers.py +0 -0
  42. {typedal-4.4.1 → typedal-4.4.2}/src/typedal/mixins.py +0 -0
  43. {typedal-4.4.1 → typedal-4.4.2}/src/typedal/py.typed +0 -0
  44. {typedal-4.4.1 → typedal-4.4.2}/src/typedal/query_builder.py +0 -0
  45. {typedal-4.4.1 → typedal-4.4.2}/src/typedal/relationships.py +0 -0
  46. {typedal-4.4.1 → typedal-4.4.2}/src/typedal/rows.py +0 -0
  47. {typedal-4.4.1 → typedal-4.4.2}/src/typedal/serializers/as_json.py +0 -0
  48. {typedal-4.4.1 → typedal-4.4.2}/src/typedal/tables.py +0 -0
  49. {typedal-4.4.1 → typedal-4.4.2}/src/typedal/types.py +0 -0
  50. {typedal-4.4.1 → typedal-4.4.2}/src/typedal/web2py_py4web_shared.py +0 -0
  51. {typedal-4.4.1 → typedal-4.4.2}/tests/__init__.py +0 -0
  52. {typedal-4.4.1 → typedal-4.4.2}/tests/configs/simple.toml +0 -0
  53. {typedal-4.4.1 → typedal-4.4.2}/tests/configs/valid.env +0 -0
  54. {typedal-4.4.1 → typedal-4.4.2}/tests/configs/valid.toml +0 -0
  55. {typedal-4.4.1 → typedal-4.4.2}/tests/py314_tests.py +0 -0
  56. {typedal-4.4.1 → typedal-4.4.2}/tests/test_cli.py +0 -0
  57. {typedal-4.4.1 → typedal-4.4.2}/tests/test_config.py +0 -0
  58. {typedal-4.4.1 → typedal-4.4.2}/tests/test_docs_examples.py +0 -0
  59. {typedal-4.4.1 → typedal-4.4.2}/tests/test_helpers.py +0 -0
  60. {typedal-4.4.1 → typedal-4.4.2}/tests/test_json.py +0 -0
  61. {typedal-4.4.1 → typedal-4.4.2}/tests/test_main.py +0 -0
  62. {typedal-4.4.1 → typedal-4.4.2}/tests/test_mixins.py +0 -0
  63. {typedal-4.4.1 → typedal-4.4.2}/tests/test_mypy.py +0 -0
  64. {typedal-4.4.1 → typedal-4.4.2}/tests/test_orm.py +0 -0
  65. {typedal-4.4.1 → typedal-4.4.2}/tests/test_py4web.py +0 -0
  66. {typedal-4.4.1 → typedal-4.4.2}/tests/test_query_builder.py +0 -0
  67. {typedal-4.4.1 → typedal-4.4.2}/tests/test_row.py +0 -0
  68. {typedal-4.4.1 → typedal-4.4.2}/tests/test_stats.py +0 -0
  69. {typedal-4.4.1 → typedal-4.4.2}/tests/test_table.py +0 -0
  70. {typedal-4.4.1 → typedal-4.4.2}/tests/test_web2py.py +0 -0
  71. {typedal-4.4.1 → typedal-4.4.2}/tests/test_xx_others.py +0 -0
  72. {typedal-4.4.1 → typedal-4.4.2}/tests/timings.py +0 -0
@@ -2,6 +2,12 @@
2
2
 
3
3
  <!--next-version-placeholder-->
4
4
 
5
+ ## v4.4.2 (2026-01-26)
6
+
7
+ ### Fix
8
+
9
+ * **memoize:** Simplify `related_tables` logic by just looking at the raw Rows.fields ([`3dee337`](https://github.com/trialandsuccess/TypeDAL/commit/3dee3379a2bbcd493be273344303aff0aff069a7))
10
+
5
11
  ## v4.4.1 (2026-01-26)
6
12
 
7
13
  ### Fix
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: TypeDAL
3
- Version: 4.4.1
3
+ Version: 4.4.2
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__ = "4.4.1"
8
+ __version__ = "4.4.2"
@@ -577,30 +577,15 @@ def memoize(
577
577
  return cached, "cached"
578
578
  # Cache miss - compute result
579
579
 
580
- def track_execute(qb: "QueryBuilder[t.Any]", raw: Rows):
580
+ def track_execute(_qb: "QueryBuilder[t.Any]", raw: Rows):
581
581
  # find dependant table+id combinations, includes relationships:
582
582
  deps.update(_determine_dependencies_auto(raw))
583
583
 
584
- # tables: qb.model;
585
- # something with qb.relationships
586
- # something with qb.select_args
587
-
588
- related_tables = (
589
- {
590
- # original table
591
- str(qb.model)
592
- }
593
- | {
594
- # other tables in select()
595
- _get_table_name(arg)
596
- for arg in qb.select_args
597
- }
598
- | {
599
- # other tables in relationships
600
- str(r.table)
601
- for r in qb.relationships.values()
602
- }
603
- )
584
+ related_tables = {
585
+ # skip qb.select, just look at the final fields in the raw data:
586
+ _get_table_name(field)
587
+ for field in raw.fields
588
+ }
604
589
 
605
590
  # mark dependency for every relevant table in this query without id:
606
591
  deps.update({(table, 0) for table in related_tables})
@@ -789,7 +789,7 @@ def test_memoize_with_empty_table():
789
789
 
790
790
  # Memoize a function with empty table
791
791
  def get_all_users() -> list[str]:
792
- users = User.join().select(User.name).execute() # also tests execute instead of collect
792
+ users = User.join().select("user.name").execute() # also tests execute instead of collect
793
793
  return [user[User.name] for user in users]
794
794
 
795
795
  # First call with empty table
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