TypeDAL 3.15.0__tar.gz → 3.15.1__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.0 → typedal-3.15.1}/CHANGELOG.md +6 -0
  2. {typedal-3.15.0 → typedal-3.15.1}/PKG-INFO +1 -1
  3. {typedal-3.15.0 → typedal-3.15.1}/src/typedal/__about__.py +1 -1
  4. {typedal-3.15.0 → typedal-3.15.1}/src/typedal/core.py +9 -3
  5. {typedal-3.15.0 → typedal-3.15.1}/tests/test_main.py +4 -0
  6. {typedal-3.15.0 → typedal-3.15.1}/tests/test_query_builder.py +6 -2
  7. {typedal-3.15.0 → typedal-3.15.1}/.github/workflows/su6.yml +0 -0
  8. {typedal-3.15.0 → typedal-3.15.1}/.gitignore +0 -0
  9. {typedal-3.15.0 → typedal-3.15.1}/.readthedocs.yml +0 -0
  10. {typedal-3.15.0 → typedal-3.15.1}/README.md +0 -0
  11. {typedal-3.15.0 → typedal-3.15.1}/coverage.svg +0 -0
  12. {typedal-3.15.0 → typedal-3.15.1}/docs/1_getting_started.md +0 -0
  13. {typedal-3.15.0 → typedal-3.15.1}/docs/2_defining_tables.md +0 -0
  14. {typedal-3.15.0 → typedal-3.15.1}/docs/3_building_queries.md +0 -0
  15. {typedal-3.15.0 → typedal-3.15.1}/docs/4_relationships.md +0 -0
  16. {typedal-3.15.0 → typedal-3.15.1}/docs/5_py4web.md +0 -0
  17. {typedal-3.15.0 → typedal-3.15.1}/docs/6_migrations.md +0 -0
  18. {typedal-3.15.0 → typedal-3.15.1}/docs/7_mixins.md +0 -0
  19. {typedal-3.15.0 → typedal-3.15.1}/docs/css/code_blocks.css +0 -0
  20. {typedal-3.15.0 → typedal-3.15.1}/docs/index.md +0 -0
  21. {typedal-3.15.0 → typedal-3.15.1}/docs/requirements.txt +0 -0
  22. {typedal-3.15.0 → typedal-3.15.1}/example_new.py +0 -0
  23. {typedal-3.15.0 → typedal-3.15.1}/example_old.py +0 -0
  24. {typedal-3.15.0 → typedal-3.15.1}/mkdocs.yml +0 -0
  25. {typedal-3.15.0 → typedal-3.15.1}/pyproject.toml +0 -0
  26. {typedal-3.15.0 → typedal-3.15.1}/src/typedal/__init__.py +0 -0
  27. {typedal-3.15.0 → typedal-3.15.1}/src/typedal/caching.py +0 -0
  28. {typedal-3.15.0 → typedal-3.15.1}/src/typedal/cli.py +0 -0
  29. {typedal-3.15.0 → typedal-3.15.1}/src/typedal/config.py +0 -0
  30. {typedal-3.15.0 → typedal-3.15.1}/src/typedal/fields.py +0 -0
  31. {typedal-3.15.0 → typedal-3.15.1}/src/typedal/for_py4web.py +0 -0
  32. {typedal-3.15.0 → typedal-3.15.1}/src/typedal/for_web2py.py +0 -0
  33. {typedal-3.15.0 → typedal-3.15.1}/src/typedal/helpers.py +0 -0
  34. {typedal-3.15.0 → typedal-3.15.1}/src/typedal/mixins.py +0 -0
  35. {typedal-3.15.0 → typedal-3.15.1}/src/typedal/py.typed +0 -0
  36. {typedal-3.15.0 → typedal-3.15.1}/src/typedal/serializers/as_json.py +0 -0
  37. {typedal-3.15.0 → typedal-3.15.1}/src/typedal/types.py +0 -0
  38. {typedal-3.15.0 → typedal-3.15.1}/src/typedal/web2py_py4web_shared.py +0 -0
  39. {typedal-3.15.0 → typedal-3.15.1}/tests/__init__.py +0 -0
  40. {typedal-3.15.0 → typedal-3.15.1}/tests/configs/simple.toml +0 -0
  41. {typedal-3.15.0 → typedal-3.15.1}/tests/configs/valid.env +0 -0
  42. {typedal-3.15.0 → typedal-3.15.1}/tests/configs/valid.toml +0 -0
  43. {typedal-3.15.0 → typedal-3.15.1}/tests/test_cli.py +0 -0
  44. {typedal-3.15.0 → typedal-3.15.1}/tests/test_config.py +0 -0
  45. {typedal-3.15.0 → typedal-3.15.1}/tests/test_docs_examples.py +0 -0
  46. {typedal-3.15.0 → typedal-3.15.1}/tests/test_helpers.py +0 -0
  47. {typedal-3.15.0 → typedal-3.15.1}/tests/test_json.py +0 -0
  48. {typedal-3.15.0 → typedal-3.15.1}/tests/test_mixins.py +0 -0
  49. {typedal-3.15.0 → typedal-3.15.1}/tests/test_mypy.py +0 -0
  50. {typedal-3.15.0 → typedal-3.15.1}/tests/test_orm.py +0 -0
  51. {typedal-3.15.0 → typedal-3.15.1}/tests/test_py4web.py +0 -0
  52. {typedal-3.15.0 → typedal-3.15.1}/tests/test_relationships.py +0 -0
  53. {typedal-3.15.0 → typedal-3.15.1}/tests/test_row.py +0 -0
  54. {typedal-3.15.0 → typedal-3.15.1}/tests/test_stats.py +0 -0
  55. {typedal-3.15.0 → typedal-3.15.1}/tests/test_table.py +0 -0
  56. {typedal-3.15.0 → typedal-3.15.1}/tests/test_web2py.py +0 -0
  57. {typedal-3.15.0 → typedal-3.15.1}/tests/test_xx_others.py +0 -0
  58. {typedal-3.15.0 → typedal-3.15.1}/tests/timings.py +0 -0
@@ -2,6 +2,12 @@
2
2
 
3
3
  <!--next-version-placeholder-->
4
4
 
5
+ ## v3.15.1 (2025-07-14)
6
+
7
+ ### Fix
8
+
9
+ * **find_model:** Map both name and rname ([`e402d66`](https://github.com/trialandsuccess/TypeDAL/commit/e402d6659516d119fd3bd3fc28cea32b360aa068))
10
+
5
11
  ## v3.15.0 (2025-06-23)
6
12
 
7
13
  ### Feature
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: TypeDAL
3
- Version: 3.15.0
3
+ Version: 3.15.1
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.0"
8
+ __version__ = "3.15.1"
@@ -120,7 +120,8 @@ OnQuery: typing.TypeAlias = typing.Optional[
120
120
  ]
121
121
  ]
122
122
 
123
- To_Type = typing.TypeVar("To_Type", type[Any], Type[Any], str)
123
+ # To_Type = typing.TypeVar("To_Type", type[Any], Type[Any], str)
124
+ To_Type = typing.TypeVar("To_Type")
124
125
 
125
126
 
126
127
  class Relationship(typing.Generic[To_Type]):
@@ -201,6 +202,7 @@ class Relationship(typing.Generic[To_Type]):
201
202
  Get the table this relationship is bound to.
202
203
  """
203
204
  table = self.table # can be a string because db wasn't available yet
205
+
204
206
  if isinstance(table, str):
205
207
  if mapped := db._class_map.get(table):
206
208
  # yay
@@ -249,7 +251,9 @@ class Relationship(typing.Generic[To_Type]):
249
251
  return None
250
252
 
251
253
 
252
- def relationship(_type: To_Type, condition: Condition = None, join: JOIN_OPTIONS = None, on: OnQuery = None) -> To_Type:
254
+ def relationship(
255
+ _type: typing.Type[To_Type], condition: Condition = None, join: JOIN_OPTIONS = None, on: OnQuery = None
256
+ ) -> To_Type:
253
257
  """
254
258
  Define a relationship to another table, when its id is not stored in the current table.
255
259
 
@@ -584,7 +588,9 @@ class TypeDAL(pydal.DAL): # type: ignore
584
588
  # by now, all relationships should be instances!
585
589
  relationships=typing.cast(dict[str, Relationship[Any]], relationships),
586
590
  )
591
+ # map both name and rname:
587
592
  self._class_map[str(table)] = cls
593
+ self._class_map[table._rname] = cls
588
594
  cls.__on_define__(self)
589
595
  else:
590
596
  warnings.warn("db.define used without inheriting TypedTable. This could lead to strange problems!")
@@ -713,7 +719,7 @@ class TypeDAL(pydal.DAL): # type: ignore
713
719
  table class matches the input name.
714
720
 
715
721
  Args:
716
- table_name: The name of the table to retrieve the mapped class for.
722
+ table_name: The rname of the table to retrieve the mapped class for.
717
723
 
718
724
  Returns:
719
725
  The mapped table class if it exists, otherwise None.
@@ -171,6 +171,10 @@ def test_mixed_defines(capsys):
171
171
  assert db.find_model("first_new_syntax") is FirstNewSyntax
172
172
  assert db.find_model("second_new_syntax") is SecondNewSyntax
173
173
 
174
+ assert db.find_model(db.old_syntax._rname) is None
175
+ assert db.find_model(FirstNewSyntax._rname) is FirstNewSyntax
176
+ assert db.find_model(SecondNewSyntax._rname) is SecondNewSyntax
177
+
174
178
 
175
179
  def test_dont_allow_bool_in_query():
176
180
  with pytest.raises(ValueError):
@@ -222,8 +222,12 @@ def test_select():
222
222
  assert not partial.number
223
223
  assert not partial.yet_another
224
224
 
225
- assert not partial.relations[0].name
226
- assert partial.relations[0].value
225
+ other = partial.relations[0]
226
+
227
+ assert isinstance(other, TestRelationship)
228
+
229
+ assert not other.name
230
+ assert other.value
227
231
 
228
232
 
229
233
  def test_paginate():
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