
    i                     Z    d dl Z d dlZ G d d      Ze j                   G d d             Zy)    Nc                   6    e Zd ZdZdZdedefdZd Zd Zd Z	y	)
	EngineRefz,Reference by names to an engine and categorynamecategoryr   r   c                      || _         || _        y Nr   )selfr   r   s      $/root/searxng/searx/search/models.py__init__zEngineRef.__init__   s    	     c                 N    dj                  | j                  | j                        S )NzEngineRef({!r}, {!r}))formatr   r   r
   s    r   __repr__zEngineRef.__repr__   s    &--diiGGr   c                 j    | j                   |j                   k(  xr | j                  |j                  k(  S r	   r   r
   others     r   __eq__zEngineRef.__eq__   s'    yyEJJ&J4==ENN+JJr   c                 D    t        | j                  | j                  f      S r	   )hashr   r   r   s    r   __hash__zEngineRef.__hash__   s    TYY.//r   N)
__name__
__module____qualname____doc__	__slots__strr   r   r   r    r   r   r   r      s.    6"I!S !C !HK0r   r   c                       e Zd ZdZ	 	 	 	 	 	 	 	 ddedee   dedej                  d   de	d	ej                  d
   dz  de
dz  dedz  deeeeef   f   dz  dedz  fdZed        Zd Zd Zd Zd Zy)SearchQueryzAcontainer for all the search parameters (query, language, etc...)Nqueryengineref_listlang
safesearch)r         pageno
time_range)dayweekmonthyeartimeout_limitexternal_bangengine_dataredirect_to_first_resultc                 h   || _         || _        || _        || _        || _        || _        || _        || _        |	xs i | _        |
| _	        d | _
        | j                  r2	 t        j                  j                  | j                  d      | _
        y y # t        j                  j                  $ r Y y w xY w)N-)sep)r"   r#   r$   r%   r(   r)   r.   r/   r0   r1   localebabelLocaleparsecoreUnknownLocaleError)r
   r"   r#   r$   r%   r(   r)   r.   r/   r0   r1   s              r   r   zSearchQuery.__init__   s     
,	3=Q[**&,"(@%99#ll000D  ::00 s   0B B10B1c                 T    t        t        t        d | j                                    S )Nc                     | j                   S r	   )r   )	enginerefs    r   <lambda>z(SearchQuery.categories.<locals>.<lambda>@   s    i.@.@ r   )listsetmapr#   r   s    r   
categorieszSearchQuery.categories>   s     C@$BUBUVWXXr   c                     dj                  | j                  | j                  | j                  | j                  | j
                  | j                  | j                  | j                  | j                  	      S )NzASearchQuery({!r}, {!r}, {!r}, {!r}, {!r}, {!r}, {!r}, {!r}, {!r}))
r   r"   r#   r$   r%   r(   r)   r.   r/   r1   r   s    r   r   zSearchQuery.__repr__B   s\    RYYJJIIOOKKOO))

 
	
r   c                    | j                   |j                   k(  xr | j                  |j                  k(  xr | j                  |j                  k(  xr | j                  |j                  k(  xr | j                  |j                  k(  xrj | j
                  |j
                  k(  xrO | j                  |j                  k(  xr4 | j                  |j                  k(  xr | j                  |j                  k(  S r	   )	r"   r#   r$   r%   r(   r)   r.   r/   r1   r   s     r   r   zSearchQuery.__eq__O   s    JJ%++% P##u';';;P		UZZ'P 5#3#33P u||+	P
 5#3#33P ""e&9&99P ""e&9&99P --1O1OO
	
r   c                     t        | j                  t        | j                        | j                  | j
                  | j                  | j                  | j                  | j                  | j                  f	      S r	   )r   r"   tupler#   r$   r%   r(   r)   r.   r/   r1   r   s    r   r   zSearchQuery.__hash__\   s`    

d))*		""""--

 	
r   c                     t        | j                  | j                  | j                  | j                  | j
                  | j                  | j                  | j                  | j                  | j                  
      S r	   )r!   r"   r#   r$   r%   r(   r)   r.   r/   r0   r1   r   s    r   __copy__zSearchQuery.__copy__k   s_    JJIIOOKKOO))
 	
r   )allr   r&   NNNNN)r   r   r   r   r   r?   r   typingLiteralintfloatdictboolr   propertyrB   r   r   r   rH   r   r   r   r!   r!      s    K ./LP&*$(8<04 Y 	
 NN7+  NN#ABTI t| Tz #tCH~-.5 #'+> Y Y



r   r!   )rJ   r6   r   finalr!   r   r   r   <module>rR      s7     0 0& [
 [
 [
r   