TypeDAL 3.15.3__tar.gz → 3.15.5__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.3 → typedal-3.15.5}/CHANGELOG.md +12 -0
  2. {typedal-3.15.3 → typedal-3.15.5}/PKG-INFO +1 -1
  3. {typedal-3.15.3 → typedal-3.15.5}/src/typedal/__about__.py +1 -1
  4. {typedal-3.15.3 → typedal-3.15.5}/src/typedal/core.py +4 -1
  5. {typedal-3.15.3 → typedal-3.15.5}/src/typedal/web2py_py4web_shared.py +2 -2
  6. {typedal-3.15.3 → typedal-3.15.5}/tests/test_row.py +2 -0
  7. {typedal-3.15.3 → typedal-3.15.5}/.github/workflows/su6.yml +0 -0
  8. {typedal-3.15.3 → typedal-3.15.5}/.gitignore +0 -0
  9. {typedal-3.15.3 → typedal-3.15.5}/.readthedocs.yml +0 -0
  10. {typedal-3.15.3 → typedal-3.15.5}/README.md +0 -0
  11. {typedal-3.15.3 → typedal-3.15.5}/coverage.svg +0 -0
  12. {typedal-3.15.3 → typedal-3.15.5}/docs/1_getting_started.md +0 -0
  13. {typedal-3.15.3 → typedal-3.15.5}/docs/2_defining_tables.md +0 -0
  14. {typedal-3.15.3 → typedal-3.15.5}/docs/3_building_queries.md +0 -0
  15. {typedal-3.15.3 → typedal-3.15.5}/docs/4_relationships.md +0 -0
  16. {typedal-3.15.3 → typedal-3.15.5}/docs/5_py4web.md +0 -0
  17. {typedal-3.15.3 → typedal-3.15.5}/docs/6_migrations.md +0 -0
  18. {typedal-3.15.3 → typedal-3.15.5}/docs/7_mixins.md +0 -0
  19. {typedal-3.15.3 → typedal-3.15.5}/docs/css/code_blocks.css +0 -0
  20. {typedal-3.15.3 → typedal-3.15.5}/docs/index.md +0 -0
  21. {typedal-3.15.3 → typedal-3.15.5}/docs/requirements.txt +0 -0
  22. {typedal-3.15.3 → typedal-3.15.5}/example_new.py +0 -0
  23. {typedal-3.15.3 → typedal-3.15.5}/example_old.py +0 -0
  24. {typedal-3.15.3 → typedal-3.15.5}/mkdocs.yml +0 -0
  25. {typedal-3.15.3 → typedal-3.15.5}/pyproject.toml +0 -0
  26. {typedal-3.15.3 → typedal-3.15.5}/src/typedal/__init__.py +0 -0
  27. {typedal-3.15.3 → typedal-3.15.5}/src/typedal/caching.py +0 -0
  28. {typedal-3.15.3 → typedal-3.15.5}/src/typedal/cli.py +0 -0
  29. {typedal-3.15.3 → typedal-3.15.5}/src/typedal/config.py +0 -0
  30. {typedal-3.15.3 → typedal-3.15.5}/src/typedal/fields.py +0 -0
  31. {typedal-3.15.3 → typedal-3.15.5}/src/typedal/for_py4web.py +0 -0
  32. {typedal-3.15.3 → typedal-3.15.5}/src/typedal/for_web2py.py +0 -0
  33. {typedal-3.15.3 → typedal-3.15.5}/src/typedal/helpers.py +0 -0
  34. {typedal-3.15.3 → typedal-3.15.5}/src/typedal/mixins.py +0 -0
  35. {typedal-3.15.3 → typedal-3.15.5}/src/typedal/py.typed +0 -0
  36. {typedal-3.15.3 → typedal-3.15.5}/src/typedal/serializers/as_json.py +0 -0
  37. {typedal-3.15.3 → typedal-3.15.5}/src/typedal/types.py +0 -0
  38. {typedal-3.15.3 → typedal-3.15.5}/tests/__init__.py +0 -0
  39. {typedal-3.15.3 → typedal-3.15.5}/tests/configs/simple.toml +0 -0
  40. {typedal-3.15.3 → typedal-3.15.5}/tests/configs/valid.env +0 -0
  41. {typedal-3.15.3 → typedal-3.15.5}/tests/configs/valid.toml +0 -0
  42. {typedal-3.15.3 → typedal-3.15.5}/tests/test_cli.py +0 -0
  43. {typedal-3.15.3 → typedal-3.15.5}/tests/test_config.py +0 -0
  44. {typedal-3.15.3 → typedal-3.15.5}/tests/test_docs_examples.py +0 -0
  45. {typedal-3.15.3 → typedal-3.15.5}/tests/test_helpers.py +0 -0
  46. {typedal-3.15.3 → typedal-3.15.5}/tests/test_json.py +0 -0
  47. {typedal-3.15.3 → typedal-3.15.5}/tests/test_main.py +0 -0
  48. {typedal-3.15.3 → typedal-3.15.5}/tests/test_mixins.py +0 -0
  49. {typedal-3.15.3 → typedal-3.15.5}/tests/test_mypy.py +0 -0
  50. {typedal-3.15.3 → typedal-3.15.5}/tests/test_orm.py +0 -0
  51. {typedal-3.15.3 → typedal-3.15.5}/tests/test_py4web.py +0 -0
  52. {typedal-3.15.3 → typedal-3.15.5}/tests/test_query_builder.py +0 -0
  53. {typedal-3.15.3 → typedal-3.15.5}/tests/test_relationships.py +0 -0
  54. {typedal-3.15.3 → typedal-3.15.5}/tests/test_stats.py +0 -0
  55. {typedal-3.15.3 → typedal-3.15.5}/tests/test_table.py +0 -0
  56. {typedal-3.15.3 → typedal-3.15.5}/tests/test_web2py.py +0 -0
  57. {typedal-3.15.3 → typedal-3.15.5}/tests/test_xx_others.py +0 -0
  58. {typedal-3.15.3 → typedal-3.15.5}/tests/timings.py +0 -0
@@ -2,6 +2,18 @@
2
2
 
3
3
  <!--next-version-placeholder-->
4
4
 
5
+ ## v3.15.5 (2025-08-29)
6
+
7
+ ### Fix
8
+
9
+ * Make `auth_user.email.requires` a list so users can append to it ([`716d511`](https://github.com/trialandsuccess/TypeDAL/commit/716d5115687049c897b2ad5878166a88065027b3))
10
+
11
+ ## v3.15.4 (2025-08-01)
12
+
13
+ ### Fix
14
+
15
+ * Support `.as_dict(Field)` in addtion to just `.as_dict('field')` ([`3951cba`](https://github.com/trialandsuccess/TypeDAL/commit/3951cba06cbaba25137301571490a7149232e385))
16
+
5
17
  ## v3.15.3 (2025-07-25)
6
18
 
7
19
  ### Fix
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: TypeDAL
3
- Version: 3.15.3
3
+ Version: 3.15.5
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.3"
8
+ __version__ = "3.15.5"
@@ -2153,7 +2153,7 @@ class TypedRows(typing.Collection[T_MetaInstance], Rows):
2153
2153
 
2154
2154
  def as_dict(
2155
2155
  self,
2156
- key: str = None,
2156
+ key: str | Field = None,
2157
2157
  compact: bool = False,
2158
2158
  storage_to_dict: bool = False,
2159
2159
  datetime_to_str: bool = False,
@@ -2164,6 +2164,9 @@ class TypedRows(typing.Collection[T_MetaInstance], Rows):
2164
2164
  """
2165
2165
  if any([key, compact, storage_to_dict, datetime_to_str, custom_types]):
2166
2166
  # functionality not guaranteed
2167
+ if isinstance(key, Field):
2168
+ key = key.name
2169
+
2167
2170
  return typing.cast(
2168
2171
  dict[int, AnyDict],
2169
2172
  super().as_dict(
@@ -35,10 +35,10 @@ class AuthUser(TypedTable):
35
35
  """
36
36
  super().__on_define__(db)
37
37
 
38
- cls.email.requires = (
38
+ cls.email.requires = [
39
39
  IS_EMAIL(),
40
40
  IS_NOT_IN_DB(
41
41
  db,
42
42
  "auth_user.email",
43
43
  ),
44
- )
44
+ ]
@@ -137,6 +137,8 @@ def test_rows():
137
137
 
138
138
  assert new_rows.as_dict(storage_to_dict=True)
139
139
 
140
+ assert new_rows.as_dict("int_field")[1] == new_rows.as_dict(NewStyleClass.int_field)[1]
141
+
140
142
  assert old_rows.as_json() == new_rows.as_json() == new_rows.json() == old_rows.json()
141
143
 
142
144
  assert old_rows.as_list()[0]["string_field"] == new_rows.as_list()[0]["string_field"]
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