TypeDAL 5.0.3__tar.gz → 5.0.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.
Files changed (28) hide show
  1. {typedal-5.0.3 → typedal-5.0.5}/PKG-INFO +1 -1
  2. {typedal-5.0.3 → typedal-5.0.5}/pyproject.toml +1 -1
  3. {typedal-5.0.3 → typedal-5.0.5}/pyproject.toml.orig +1 -1
  4. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/fields.py +2 -1
  5. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/types.py +13 -1
  6. {typedal-5.0.3 → typedal-5.0.5}/README.md +0 -0
  7. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/__about__.py +0 -0
  8. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/__init__.py +0 -0
  9. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/asynchronous.py +0 -0
  10. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/caching.py +0 -0
  11. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/cli.py +0 -0
  12. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/config.py +0 -0
  13. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/constants.py +0 -0
  14. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/core.py +0 -0
  15. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/define.py +0 -0
  16. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/enum_helpers.py +0 -0
  17. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/for_py4web.py +0 -0
  18. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/for_web2py.py +0 -0
  19. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/helpers.py +0 -0
  20. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/mixins.py +0 -0
  21. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/py.typed +0 -0
  22. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/query_builder.py +0 -0
  23. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/relationships.py +0 -0
  24. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/rows.py +0 -0
  25. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/serializers/as_json.py +0 -0
  26. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/serializers/typescript.py +0 -0
  27. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/tables.py +0 -0
  28. {typedal-5.0.3 → typedal-5.0.5}/src/typedal/web2py_py4web_shared.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: TypeDAL
3
- Version: 5.0.3
3
+ Version: 5.0.5
4
4
  Summary: Typing support for PyDAL
5
5
  Keywords:
6
6
  Author: Robin van der Noord
@@ -6,7 +6,7 @@ build-backend = "uv_build"
6
6
  name = "TypeDAL"
7
7
  description = "Typing support for PyDAL"
8
8
  readme = "README.md"
9
- version = "5.0.3"
9
+ version = "5.0.5"
10
10
  requires-python = ">=3.12"
11
11
  license-expression = "MIT"
12
12
  keywords = []
@@ -6,7 +6,7 @@ build-backend = "uv_build"
6
6
  name = "TypeDAL"
7
7
  description = 'Typing support for PyDAL'
8
8
  readme = "README.md"
9
- version = "5.0.3"
9
+ version = "5.0.5"
10
10
  requires-python = ">=3.12"
11
11
  license-expression = "MIT"
12
12
  keywords = []
@@ -79,7 +79,7 @@ class TypedField[T_Value](Expression): # pragma: no cover
79
79
  authorize: AnyCallable | None
80
80
  autodelete: bool
81
81
  requires: Validator | t.Iterable[Validator]
82
- represent: t.Callable[[T_Value, TypedTable | None], t.Any]
82
+ represent: t.Callable[[T_Value, t.Any], t.Any] # second argument is the model class but we can't type that
83
83
  compute: AnyCallable | None
84
84
  custom_store: AnyCallable | None
85
85
  custom_retrieve: AnyCallable | None
@@ -514,6 +514,7 @@ def BigintField(**kw: t.Unpack[FieldSettings]) -> TypedField[int]:
514
514
 
515
515
  Bigint = BigintField
516
516
 
517
+
517
518
  ## Custom:
518
519
 
519
520
 
@@ -203,6 +203,18 @@ class Field(_Field):
203
203
 
204
204
  _rname: str
205
205
 
206
+ def __eq__(self, other: t.Any) -> Query: # ty: ignore[invalid-method-override]
207
+ """Comparing fields produces a PyDAL query."""
208
+ return t.cast(Query, super().__eq__(other))
209
+
210
+ def __ne__(self, other: t.Any) -> Query: # ty: ignore[invalid-method-override]
211
+ """Comparing fields produces a PyDAL query."""
212
+ return t.cast(Query, super().__ne__(other))
213
+
214
+ def __hash__(self) -> int:
215
+ """Keep fields hashable after overriding equality."""
216
+ return super().__hash__()
217
+
206
218
 
207
219
  class Rows(_Rows):
208
220
  """Pydal Rows object. Make mypy happy."""
@@ -418,7 +430,7 @@ type P_Table = TableProtocol
418
430
 
419
431
  type QueryLike = Query | _Query | bool
420
432
 
421
- type Condition = t.Callable[[P_Table, P_Table], QueryLike] | None
433
+ type Condition = t.Callable[[type["TypedTable"], type["TypedTable"]], QueryLike] | None
422
434
 
423
435
  # An `on` callback can include an alias binding for later join expressions.
424
436
  # QueryBuilder ignores table entries when it constructs the actual joins.
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