U vi@sddlmZddlmZmZmZmZmZddlm Z m Z mZedZ eGdddZ d eej e efee e ge efdd d Zd gZdS) ) dataclass)AnyCallableOptionalTypeVarcast) Observable operatorstyping_Tc@seZdZUeed<eed<dS) AverageValuesumcountN)__name__ __module__ __qualname__float__annotations__intrrM/opt/alt/python38/lib/python3.8/site-packages/reactivex/operators/_average.pyr s r N) key_mapperreturncs ttttdfdd }|S)N)sourcercsfp dd}tttddd}ttddd}td d d }|t|t||tt|}|S) aPartially applied average operator. Computes the average of an observable sequence of values that are in the sequence or obtained by invoking a transform function on each element of the input sequence if present. Examples: >>> res = average(source) Args: source: Source observable to average. Returns: An observable sequence containing a single element with the average of the sequence of values. cSsttt|S)N)rrr)xrrr%z+average_..average..)prevcurrcSst|j||jddS)Nr r)r r r)rrrrr accumulator(sz.average_..average..accumulator)srcSs"|jdkrtd|jt|jS)NrzThe input sequence was empty)r Exceptionr r)r"rrrmapper+s z)average_..average..mapperrr )r rpiper mapscanlast)rZ key_mapper_r!r$seedretrrraverages  zaverage_..average)rrr)rr,rr+raverage_s)r-)N) dataclassesrr rrrrrZ reactivexrr r r ZMapperrr-__all__rrrrs  /