@@ -799,18 +799,25 @@ def __init__(
799799 self .deferred_fragment_records = deferred_fragment_records
800800
801801
802- class SubsequentResultRecord :
803- """Subsequent result record"""
802+ class DeferredFragmentRecord :
803+ """Deferred fragment record"""
804804
805805 path : Path | None
806806 label : str | None
807807 id : str | None
808+ parent : DeferredFragmentRecord | None
808809
809- __slots__ = "id" , "label" , "path"
810+ __slots__ = "id" , "label" , "parent" , " path"
810811
811- def __init__ (self , path : Path | None , label : str | None = None ) -> None :
812+ def __init__ (
813+ self ,
814+ path : Path | None = None ,
815+ label : str | None = None ,
816+ parent : DeferredFragmentRecord | None = None ,
817+ ) -> None :
812818 self .path = path
813819 self .label = label
820+ self .parent = parent
814821 self .id = None
815822
816823 def __repr__ (self ) -> str :
@@ -823,38 +830,44 @@ def __repr__(self) -> str:
823830 return f"{ name } ({ ', ' .join (args )} )"
824831
825832
826- class DeferredFragmentRecord ( SubsequentResultRecord ) :
827- """Deferred fragment record
833+ class StreamRecord :
834+ """Stream record"""
828835
829- For internal use only.
830- """
831-
832- parent : DeferredFragmentRecord | None
836+ path : Path
837+ label : str | None
838+ id : str | None
833839
834- __slots__ = ( "parent" ,)
840+ __slots__ = "id" , "label" , "path"
835841
836842 def __init__ (
837843 self ,
838- path : Path | None = None ,
844+ path : Path ,
839845 label : str | None = None ,
840- parent : DeferredFragmentRecord | None = None ,
841846 ) -> None :
842- super ().__init__ (path , label )
843- self .parent = parent
847+ self .path = path
848+ self .label = label
849+ self .id = None
850+
851+ def __repr__ (self ) -> str :
852+ name = self .__class__ .__name__
853+ args : list [str ] = [f"path={ self .path .as_list ()!r} " ]
854+ if self .label :
855+ args .append (f"label={ self .label !r} " )
856+ return f"{ name } ({ ', ' .join (args )} )"
857+
844858
859+ SubsequentResultRecord = Union [DeferredFragmentRecord , StreamRecord ]
845860
846- class CancellableStreamRecord (SubsequentResultRecord ):
861+
862+ class CancellableStreamRecord (StreamRecord ):
847863 """Cancellable stream record"""
848864
849865 early_return : Awaitable [None ]
850866
851867 __slots__ = ("early_return" ,)
852868
853869 def __init__ (
854- self ,
855- early_return : Awaitable [None ],
856- path : Path | None = None ,
857- label : str | None = None ,
870+ self , early_return : Awaitable [None ], path : Path , label : str | None = None
858871 ) -> None :
859872 super ().__init__ (path , label )
860873 self .early_return = early_return
@@ -870,7 +883,7 @@ def is_cancellable_stream_record(
870883class ReconcilableStreamItemsResult (NamedTuple ):
871884 """Reconcilable stream items result"""
872885
873- stream_record : SubsequentResultRecord
886+ stream_record : StreamRecord
874887 result : BareStreamItemsResult
875888 incremental_data_records : list [IncrementalDataRecord ] | None = None
876889 errors : None = None
@@ -886,7 +899,7 @@ def is_reconcilable_stream_items_result(
886899class TerminatingStreamItemsResult (NamedTuple ):
887900 """Terminating stream items result"""
888901
889- stream_record : SubsequentResultRecord
902+ stream_record : StreamRecord
890903 result : None = None
891904 incremental_data_record : None = None
892905 errors : None = None
@@ -895,7 +908,7 @@ class TerminatingStreamItemsResult(NamedTuple):
895908class NonReconcilableStreamItemsResult (NamedTuple ):
896909 """Non-reconcilable stream items result"""
897910
898- stream_record : SubsequentResultRecord
911+ stream_record : StreamRecord
899912 errors : list [GraphQLError ]
900913 result : None = None
901914
@@ -912,12 +925,12 @@ class StreamItemsRecord:
912925
913926 __slots__ = "result" , "stream_record"
914927
915- stream_record : SubsequentResultRecord
928+ stream_record : StreamRecord
916929 result : AwaitableOrValue [StreamItemsResult ]
917930
918931 def __init__ (
919932 self ,
920- stream_record : SubsequentResultRecord ,
933+ stream_record : StreamRecord ,
921934 result : AwaitableOrValue [StreamItemsResult ],
922935 ) -> None :
923936 self .stream_record = stream_record
0 commit comments