
    i                         d dl mZ d dlmZ d dlZd dlZd dlmZ d dlm	Z	 d dl
mZ d dlmZ dd	lmZmZ d
efdefdd fdefdd fdd fgZ G d de      Zy)    )reduce)mulN)gettext)sxng_request)Answer)
BaseAnswer   )AnswererAnswererInfominmaxavgc                 0    t        |       t        |       z  S N)sumlenargss    +/root/searxng/searx/answerers/statistics.py<lambda>r      s    TSY.     r   prodc                 $    t        t        | d      S )Nr	   )r   r   r   s    r   r   r      s    &dA. r   rangec                 0    t        |       t        |       z
  S r   )r   r   r   s    r   r   r      s    3t9s4y0 r   c                   h    e Zd ZdZeD  cg c]  \  }}|	 c}}} Zd Zdedee	   fdZ
yc c}}} w )SXNGAnswererzStatistics functionsc           
          t        t        | j                        t        dj                  dj	                  | j
                                    | j
                  dg      S )NzCompute {func} of the arguments/)funczavg 123 548 2.04 24.2)namedescriptionkeywordsexamples)r   r   __doc__formatjoinr#   )selfs    r   infozSXNGAnswerer.info!   sO    & A H HchhW[WdWdNe H fg]]-.	
 	
r   queryreturnc                 R  
 g }|j                         }t        |      dk  r|S t        j                  j	                  t
        j                  j                  d      d      
	 |dd  D cg c]$  }t        j                  j                  |
d      & }}t        D ]{  \  }}||d   k(  s ||      }t        j                  j                  |
	      }d
j                  
fd|D              }	|j                  t        d
 d| d|	 d| d	              |S  |S c c}w #  |cY S xY w)N   locale-)sepr	   latn)numbering_systemr   r.   z, c              3   `   K   | ]%  }t         j                  j                  |        ' yw)r3   N)babelnumbersformat_decimal).0arg	ui_locales     r   	<genexpr>z&SXNGAnswerer.answer.<locals>.<genexpr>=   s&     !fZ]%--">">s9">"U!fs   +.[z] (z) =  )answer)splitr   r5   Localeparser   preferences	get_valuer6   parse_decimalkw2funcr7   r'   appendr   )r(   r*   resultspartsnumr   kr    resf_strr:   s             @r   r?   zSXNGAnswerer.answer*   s,   u:>NLL&&|'?'?'I'I('SY\&]		dijkjldmn]`EMM//YQW/XnDn
  	GAtE!H}4jmm223y2I		!fae!ffvq2aS%SEQR-STU	  o	Ns   #D  *)DD  D   D&N)__name__
__module____qualname__r%   rF   r#   r)   strlistr   r?   )r8   kw_s   000r   r   r      s>     '((ur1(H
C D$4  )s   -r   )	functoolsr   operatorr   r5   babel.numbersflask_babelr   searx.extended_typesr   searx.result_typesr   searx.result_types.answerr    r
   r   r   r   r   rF   r    r   r   <module>r^      sg   
      - % 0 $ CL
CL
./
CL./01%8 %r   