@@ -144,7 +144,7 @@ def literal(value: L) -> Literal[L]:
144144 elif isinstance (value , str ):
145145 return StringLiteral (value )
146146 elif isinstance (value , UUID ):
147- return UUIDLiteral (value .bytes ) # type: ignore
147+ return UUIDLiteral (UUID ( bytes = value .bytes ))
148148 elif isinstance (value , bytes ):
149149 return BinaryLiteral (value )
150150 elif isinstance (value , Decimal ):
@@ -586,8 +586,8 @@ def _(self, _: TimestamptzType) -> Literal[int]:
586586 return TimestampLiteral (timestamptz_to_micros (self .value ))
587587
588588 @to .register (UUIDType )
589- def _ (self , _ : UUIDType ) -> Literal [bytes ]:
590- return UUIDLiteral (UUID (self .value ). bytes )
589+ def _ (self , _ : UUIDType ) -> Literal [UUID ]:
590+ return UUIDLiteral (UUID (self .value ))
591591
592592 @to .register (DecimalType )
593593 def _ (self , type_var : DecimalType ) -> Literal [Decimal ]:
@@ -631,30 +631,30 @@ def __repr__(self) -> str:
631631 return f"literal({ repr (self .value )} )"
632632
633633
634- class UUIDLiteral (Literal [bytes ]):
635- def __init__ (self , value : bytes ) -> None :
636- super ().__init__ (value , bytes )
634+ class UUIDLiteral (Literal [UUID ]):
635+ def __init__ (self , value : UUID ) -> None :
636+ super ().__init__ (value , UUID )
637637
638638 @singledispatchmethod
639639 def to (self , type_var : IcebergType ) -> Literal : # type: ignore
640640 raise TypeError (f"Cannot convert UUIDLiteral into { type_var } " )
641641
642642 @to .register (UUIDType )
643- def _ (self , _ : UUIDType ) -> Literal [bytes ]:
643+ def _ (self , _ : UUIDType ) -> Literal [UUID ]:
644644 return self
645645
646646 @to .register (FixedType )
647647 def _ (self , type_var : FixedType ) -> Literal [bytes ]:
648648 if len (type_var ) == UUID_BYTES_LENGTH :
649- return FixedLiteral (self .value )
649+ return FixedLiteral (self .value . bytes )
650650 else :
651651 raise TypeError (
652652 f"Cannot convert UUIDLiteral into { type_var } , different length: { len (type_var )} <> { UUID_BYTES_LENGTH } "
653653 )
654654
655655 @to .register (BinaryType )
656656 def _ (self , _ : BinaryType ) -> Literal [bytes ]:
657- return BinaryLiteral (self .value )
657+ return BinaryLiteral (self .value . bytes )
658658
659659
660660class FixedLiteral (Literal [bytes ]):
@@ -679,9 +679,9 @@ def _(self, _: BinaryType) -> Literal[bytes]:
679679 return BinaryLiteral (self .value )
680680
681681 @to .register (UUIDType )
682- def _ (self , type_var : UUIDType ) -> Literal [bytes ]:
682+ def _ (self , type_var : UUIDType ) -> Literal [UUID ]:
683683 if len (self .value ) == UUID_BYTES_LENGTH :
684- return UUIDLiteral (self .value )
684+ return UUIDLiteral (UUID ( bytes = self .value ) )
685685 else :
686686 raise TypeError (
687687 f"Could not convert { self .value !r} into a { type_var } , lengths differ { len (self .value )} <> { UUID_BYTES_LENGTH } "
@@ -710,9 +710,9 @@ def _(self, type_var: FixedType) -> Literal[bytes]:
710710 )
711711
712712 @to .register (UUIDType )
713- def _ (self , type_var : UUIDType ) -> Literal [bytes ]:
713+ def _ (self , type_var : UUIDType ) -> Literal [UUID ]:
714714 if len (self .value ) == UUID_BYTES_LENGTH :
715- return UUIDLiteral (self .value )
715+ return UUIDLiteral (UUID ( bytes = self .value ) )
716716 else :
717717 raise TypeError (
718718 f"Cannot convert BinaryLiteral into { type_var } , different length: { UUID_BYTES_LENGTH } <> { len (self .value )} "
0 commit comments