
    Hoht	                         d gZ ddlZddlmZ ddlmZ ddlmZmZ ddl	m
Z
mZmZmZmZmZmZ ddlmZmZ  G d	 d       Zy)
Resolver    N)chain)methodcaller)AnyList   )DeviceDomainMatcherMatchersOSPartialResult	UserAgent)IS_GRAALfa_simplifierc                   x    e Zd ZU dZeee      ed<   eee      ed<   eee	      ed<   de
ddfdZd	ed
edefdZy)r   zA simple pure-python resolver based around trying a number of
    regular expressions in sequence for each domain, and returning a
    result when one matches.

    user_agent_matchersos_matchersdevice_matchersmatchersreturnNc                    |\  | _         | _        | _        t        rt	        d t        j                  |      D        d       }|dk(  rht        j                  |      D ]O  }t        j                  t        |j                  j                        |j                  j                        |_
        Q y |dk(  r?t        j                  |      D ]&  }t        |j                  j                        |_        ( y y y )Nc              3   N   K   | ]  }t        t        |      d       rdnd  yw)regexeagerlazyN)hasattrtype).0ms     k/var/www/html/wine-match-dev/backend/winematch-backend/venv/lib/python3.12/site-packages/ua_parser/basic.py	<genexpr>z$Resolver.__init__.<locals>.<genexpr>'   s*        'tAw8GfDs   #%r   )flagsr   )r   r   r   r   nextr   from_iterablerecompiler   patternr#   r   )selfr   kindmatchers       r!   __init__zResolver.__init__   s     LTH $"2D4H"00: D w$228< G&(jj%goo&=&=>%oo33'GO
 $228< KG$1'//2I2I$JGMK       uadomainsc                   t        d|      }t        ||t        j                  |v r*t	        t        d t        || j                              d       nd t        j                  |v r*t	        t        d t        || j                              d       nd t        j                  |v r/t	        t        d t        || j                              d             S d       S )N__call__)r/   string
user_agentosdevice)r   r   r
   
USER_AGENTr$   filtermapr   r   r   DEVICEr   )r)   r.   r/   parses       r!   r1   zResolver.__call__7   s    Z, $$/	 4UD,D,D!EF
  99'	 4UD,<,<!=>
  ==G+	 4UD,@,@!AB)
 	
2 3
 	
r-   )__name__
__module____qualname____doc__r   r   r   __annotations__r   r	   r   r,   strr
   r   r1    r-   r!   r   r      sk     gi011gbk""'&/**KK 
K0
3 
 
} 
r-   )__all__r&   	itertoolsr   operatorr   typingr   r   corer	   r
   r   r   r   r   r   utilsr   r   r   rA   r-   r!   <module>rH      s8   , 	  !    +@
 @
r-   