Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions pyiceberg/expressions/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
literal,
)
from pyiceberg.schema import Accessor, Schema
from pyiceberg.typedef import L, StructProtocol
from pyiceberg.typedef import L, StructProtocol, IcebergRootModel
Comment thread
nathanbijleveld marked this conversation as resolved.
Outdated
from pyiceberg.types import DoubleType, FloatType, NestedField
from pyiceberg.utils.singleton import Singleton

Expand Down Expand Up @@ -362,8 +362,9 @@ def __getnewargs__(self) -> Tuple[BooleanExpression]:
return (self.child,)


class AlwaysTrue(BooleanExpression, Singleton):
class AlwaysTrue(BooleanExpression, Singleton, IcebergRootModel):
Comment thread
nathanbijleveld marked this conversation as resolved.
Outdated
"""TRUE expression."""
root: str = "true"
Comment thread
nathanbijleveld marked this conversation as resolved.

def __invert__(self) -> AlwaysFalse:
"""Transform the Expression into its negated version."""
Expand All @@ -378,8 +379,9 @@ def __repr__(self) -> str:
return "AlwaysTrue()"


class AlwaysFalse(BooleanExpression, Singleton):
class AlwaysFalse(BooleanExpression, Singleton, IcebergRootModel):
Comment thread
nathanbijleveld marked this conversation as resolved.
Outdated
"""FALSE expression."""
root: str = "false"
Comment thread
nathanbijleveld marked this conversation as resolved.

def __invert__(self) -> AlwaysTrue:
"""Transform the Expression into its negated version."""
Expand Down
2 changes: 2 additions & 0 deletions tests/expressions/test_expressions.py
Original file line number Diff line number Diff line change
Expand Up @@ -738,6 +738,7 @@ def test_not() -> None:

def test_always_true() -> None:
always_true = AlwaysTrue()
assert always_true.model_dump_json() == '"true"'
assert str(always_true) == "AlwaysTrue()"
assert repr(always_true) == "AlwaysTrue()"
assert always_true == eval(repr(always_true))
Expand All @@ -746,6 +747,7 @@ def test_always_true() -> None:

def test_always_false() -> None:
always_false = AlwaysFalse()
assert always_false.model_dump_json() == '"false"'
assert str(always_false) == "AlwaysFalse()"
assert repr(always_false) == "AlwaysFalse()"
assert always_false == eval(repr(always_false))
Expand Down
Loading