@@ -191,6 +191,30 @@ def __repr__(self):
191191 args .append (f"language_code={ self .language_code !r} " )
192192 return f"{ self .__class__ .__name__ } ({ ', ' .join (args )} )"
193193
194+ def _to_dict (self ) -> dict [str , Value ]:
195+ options = {"query" : self .query ._to_pb ()}
196+ if self .limit is not None :
197+ options ["limit" ] = Value (integer_value = self .limit )
198+ if self .retrieval_depth is not None :
199+ options ["retrieval_depth" ] = Value (integer_value = self .retrieval_depth )
200+ if self .sort is not None :
201+ options ["sort" ] = Value (
202+ array_value = {"values" : [s ._to_pb () for s in self .sort ]}
203+ )
204+ if self .add_fields is not None :
205+ options ["add_fields" ] = Selectable ._to_value (self .add_fields )
206+ if self .select is not None :
207+ options ["select" ] = Selectable ._to_value (self .select )
208+ if self .offset is not None :
209+ options ["offset" ] = Value (integer_value = self .offset )
210+ if self .query_enhancement is not None :
211+ options ["query_enhancement" ] = Value (
212+ string_value = self .query_enhancement .value
213+ )
214+ if self .language_code is not None :
215+ options ["language_code" ] = Value (string_value = self .language_code )
216+ return options
217+
194218
195219class UnnestOptions :
196220 """Options for configuring the `Unnest` pipeline stage.
@@ -517,30 +541,7 @@ def _pb_args(self) -> list[Value]:
517541 return []
518542
519543 def _pb_options (self ) -> dict [str , Value ]:
520- options = {"query" : self .options .query ._to_pb ()}
521- if self .options .limit is not None :
522- options ["limit" ] = Value (integer_value = self .options .limit )
523- if self .options .retrieval_depth is not None :
524- options ["retrieval_depth" ] = Value (
525- integer_value = self .options .retrieval_depth
526- )
527- if self .options .sort is not None :
528- options ["sort" ] = Value (
529- array_value = {"values" : [s ._to_pb () for s in self .options .sort ]}
530- )
531- if self .options .add_fields is not None :
532- options ["add_fields" ] = Selectable ._to_value (self .options .add_fields )
533- if self .options .select is not None :
534- options ["select" ] = Selectable ._to_value (self .options .select )
535- if self .options .offset is not None :
536- options ["offset" ] = Value (integer_value = self .options .offset )
537- if self .options .query_enhancement is not None :
538- options ["query_enhancement" ] = Value (
539- string_value = self .options .query_enhancement .value
540- )
541- if self .options .language_code is not None :
542- options ["language_code" ] = Value (string_value = self .options .language_code )
543- return options
544+ return self .options ._to_dict ()
544545
545546
546547class Select (Stage ):
0 commit comments