
    'jt	                         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dS )
Resolver    N)chain)methodcaller)AnyList   )DeviceDomainMatcherMatchersOSPartialResult	UserAgent)IS_GRAALfa_simplifierc                       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dS )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    rUt          j        |          D ]>}t          j        t          |j
        j
                  |j
        j                  |_
        ?d S |dk    r7t          j        |          D ]$}t          |j
        j
                  |_        !d S d S d S )Nc              3   X   K   | ]%}t          t          |          d           rdndV  &dS )regexeagerlazyN)hasattrtype).0ms     S/home/ice/.hermes/hermes-agent/venv/lib/python3.11/site-packages/ua_parser/basic.py	<genexpr>z$Resolver.__init__.<locals>.<genexpr>'   sO          'tAww88DGGf         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 	K "0::    D w$28<<  G&(j%go&=>>%o3' ' 'GOO 
 $28<< K KG$1'/2I$J$JGMM#	K 	K  K Kr#   uadomainsc                   t          d|          }t          ||t          j        |v r1t	          t          d t          || j                            d           nd t          j        |v r1t	          t          d t          || j	                            d           nd t          j
        |v r1t	          t          d t          || j                            d           n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!E!EFF  
  9''	 4UD,<!=!=>>  
  =G++	 4UD,@!A!ABB  
 3
 
 
 	
r#   )__name__
__module____qualname____doc__r   r   r   __annotations__r   r	   r   r-   strr
   r   r1    r#   r!   r   r      s           gi01111gbk""""'&/****KK 
K 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      s  , 				       ! ! ! ! ! !                          + * * * * * * *@
 @
 @
 @
 @
 @
 @
 @
 @
 @
r#   