o
    bh                     @   s   g d Z ddlZddlmZmZmZ ddlmZmZm	Z	m
Z
 ddlmZmZ G dd dee
 ZG d	d
 d
ee	 ZG dd dee ZdS ))DeviceMatcher	OSMatcherUserAgentMatcher    N)LiteralOptionalPattern   )DeviceMatcherOS	UserAgent)getreplacerc                   @   s   e Zd ZU dZee ed< eed< ee ed< ee ed< ee ed< ee ed< 					dd	edee dee dee dee dee d
dfddZded
ee	 fddZ
ed
efddZd
efddZdS )r   zSEager user agent matcher, compiles the input ``regex`` at
    initialisation.

    patternfamilymajorminorpatchpatch_minorNregexreturnc                 C   s2   t || _|p	d| _|| _|| _|| _|| _d S )N$1recompiler   r   r   r   r   r   selfr   r   r   r   r   r    r   ^/var/www/html/Testing_prj/Navya-Bakers/venv/lib/python3.10/site-packages/ua_parser/matchers.py__init__   s   	

zUserAgentMatcher.__init__uac                 C   st   | j | }r8td| jv r| jd|d n| j| jp t|d| jp't|d| jp.t|d| j	p5t|ddS d S )Nr   r               r   r   r   r   r   )
r   searchr   r   replacer   r   r   r   r   )r   r    mr   r   r   __call__'   s   
zUserAgentMatcher.__call__c                 C      | j j S Nr   r   r   r   r   r   6      zUserAgentMatcher.regexc                 C   s`   d| j dkr	| j nd fd| jfd| jfd| jfd| jfg}ddd	 |D }d
| j| dS )Nr   r   r   r   r   r    c                 s   ,    | ]\}}|d urd| d|V  qd S Nz, =r   .0kvr   r   r   	<genexpr>B      * z,UserAgentMatcher.__repr__.<locals>.<genexpr>zUserAgentMatcher()r   r   r   r   r   joinr   r   fieldsargsr   r   r   __repr__:   s   zUserAgentMatcher.__repr__NNNNN)__name__
__module____qualname____doc__r   str__annotations__r   r   r   r)   propertyr   r?   r   r   r   r   r   
   s@   
 
r   c                   @   s   e Zd ZU dZee ed< eed< eed< eed< eed< eed< 					dd	edee dee dee dee dee d
dfddZded
ee	 fddZ
ed
efddZd
efddZdS )r   zKEager OS matcher, compiles the input ``regex`` at
    initialisation.

    r   r   r   r   r   r   Nr   r   c                 C   sB   t || _|p	d| _|pd| _|pd| _|pd| _|pd| _d S )Nr   $2$3$4$5r   r   r   r   r   r   T   s   	



zOSMatcher.__init__r    c                 C   sh   | j | }r2t| j|}|d u rtd| t|t| j|t| j|t| j|t| j	|dS d S )NzUnable to find OS family in r%   )
r   r&   r   r   
ValueErrorr   r   r   r   r   r   r    r(   r   r   r   r   r)   d   s   



zOSMatcher.__call__c                 C   r*   r+   r,   r-   r   r   r   r   r   r.   zOSMatcher.regexc                 C   s   d| j dkr	| j nd fd| jdkr| jnd fd| jdkr| jnd fd| jdkr*| jnd fd	| jd
kr5| jnd fg}ddd |D }d| j| dS )Nr   r   r   rH   r   rI   r   rJ   r   rK   r/   c                 s   r0   r1   r   r3   r   r   r   r7   ~   r8   z%OSMatcher.__repr__.<locals>.<genexpr>z
OSMatcher(r9   r:   r<   r   r   r   r?   v   s   zOSMatcher.__repr__r@   )rA   rB   rC   rD   r   rE   rF   r   r   r   r)   rG   r   r?   r   r   r   r   r   G   s@   
 
r   c                   @   s   e Zd ZU dZee ed< eed< eed< eed< 				ddedeed	  dee dee dee d
dfddZ	ded
ee
 fddZed
efddZed
efddZed
efddZd
efddZdS )r   zOEager device matcher, compiles the input ``regex`` at
    initialisation.

    r   r   brandmodelNr   
regex_flagir   c                 C   s@   t j||dkr
t jndd| _|pd| _|pd| _|pd| _d S )NrQ   r   )flagsr   r/   )r   r   
IGNORECASEr   r   rN   rO   )r   r   rP   r   rN   rO   r   r   r   r      s   

zDeviceMatcher.__init__r    c                 C   sT   | j | }r(t| j|}|d u rtd| t|t| j|t| j|dS d S )Nz Unable to find device family in )r   rN   rO   )r   r&   r   r   rL   r	   rN   rO   rM   r   r   r   r)      s   

zDeviceMatcher.__call__c                 C   r*   r+   r,   r-   r   r   r   r      r.   zDeviceMatcher.regexc                 C   s   | j tj@ rdS dS )NrQ   r/   )rR   r   rS   r-   r   r   r   rP      s   zDeviceMatcher.regex_flagc                 C   s   | j jS r+   )r   rR   r-   r   r   r   rR      r.   zDeviceMatcher.flagsc                 C   sz   d| j dkr	| j nd fd| jpd fd| jdkr| jnd fg}| jtj@ r&dnd}|ddd |D  }d	| j| d
S )Nr   r   rN   rO   z, "i"r/   c                 s   r0   r1   r   r3   r   r   r   r7      r8   z)DeviceMatcher.__repr__.<locals>.<genexpr>zDeviceMatcher(r9   )r   rN   rO   rR   r   rS   r;   r   )r   r=   iflagr>   r   r   r   r?      s   zDeviceMatcher.__repr__)NNNN)rA   rB   rC   rD   r   rE   rF   r   r   r   r	   r)   rG   r   rP   intrR   r?   r   r   r   r   r      s>   
 

r   )__all__r   typingr   r   r   corer	   r
   r   r   utilsr   r   r   r   r   r   r   r   r   <module>   s    =<