@@ -83,19 +83,12 @@ def source(self) -> Component:
8383 return self ._source_component
8484
8585 @staticmethod
86- def _map_frequency_samples (
87- receiver : Receiver [Sample [Quantity ]],
88- ) -> Receiver [Sample [Frequency ]]:
86+ def _map_frequency_sample (sample : Sample [Quantity ]) -> Sample [Frequency ]:
8987 """Handle NaN values and map sample type to Frequency."""
90- return receiver .map (
91- lambda sample : (
92- Sample [Frequency ](sample .timestamp , None )
93- if sample .value is None or sample .value .isnan ()
94- else Sample (
95- sample .timestamp , Frequency .from_hertz (sample .value .base_value )
96- )
97- )
98- )
88+ if sample .value is None or sample .value .isnan ():
89+ return Sample [Frequency ](sample .timestamp , None )
90+
91+ return Sample (sample .timestamp , Frequency .from_hertz (sample .value .base_value ))
9992
10093 def new_receiver (self ) -> Receiver [Sample [Frequency ]]:
10194 """Create a receiver for grid frequency.
@@ -112,7 +105,8 @@ def new_receiver(self) -> Receiver[Sample[Frequency]]:
112105 self ._send_request (self ._forwarding_channel .new_sender ())
113106 )
114107
115- return self ._map_frequency_samples (self ._forwarding_channel .new_receiver ())
108+ receiver = self ._forwarding_channel .new_receiver ()
109+ return receiver .map (self ._map_frequency_sample )
116110
117111 async def subscribe (self ) -> Receiver [Sample [Frequency ]]:
118112 """Create a receiver for grid frequency."""
@@ -128,7 +122,7 @@ async def subscribe(self) -> Receiver[Sample[Frequency]]:
128122 )
129123 await self ._request_sender .send (component_metric_request )
130124 receiver = await telem_stream_receiver .receive ()
131- return self . _map_frequency_samples ( receiver )
125+ return receiver . map ( self . _map_frequency_sample )
132126
133127 async def _send_request (self , forwarding_sender : Sender [Sample [Quantity ]]) -> None :
134128 """Send the request for grid frequency."""
0 commit comments