
    Wwg	                     V    d dl mZ d dlZd dlmZ ddlmZ ddlmZ dgZ	 G d d      Z
y)	    )	AwaitableN	to_thread   )DEFAULT_USER_AGENT)queue_fetch_taskRequestsFetcherMixinc                   x    e Zd Zd
dZd Zd Zd Zd Zdee	j                     fdZdee	j                     fd	Zy)r	   Nc                 L    |xs t         | _        || _        i | _        i | _        y N)r   
user_agentper_request_timeout_RequestsFetcherMixin__results$_RequestsFetcherMixin__result_events)selfr   r   s      l/var/www/horilla/myenv/lib/python3.12/site-packages/pyhanko_certvalidator/fetchers/requests_fetchers/util.py__init__zRequestsFetcherMixin.__init__   s&    $:(:#6 !    c                 ~    | j                   j                         D ch c]  }t        |t              r| c}S c c}w r   )r   values
isinstance	Exception)r   vs     r   get_resultsz RequestsFetcherMixin.get_results   s5    ~~,,.
jI6NA
 	
 
s   ::c                 N    | j                   |   }t        |t              rt        y r   )r   r   r   KeyError)r   tagresults      r   get_results_for_tagz(RequestsFetcherMixin.get_results_for_tag   s$    $fi(N )r   c              #   ~   K   | j                   j                         D ]  \  }}t        |t              r||f  y wr   )r   itemsr   r   )r   kr   s      r   _iter_resultsz"RequestsFetcherMixin._iter_results   s9     NN((* 	DAqa+d
	s   1=	=c                 b   K   t        | j                  | j                  ||       d {   S 7 wr   )r   r   r   )r   r   	fetch_funs      r   _perform_fetchz#RequestsFetcherMixin._perform_fetch#   s0     %NND00#y
 
 	
 
s   &/-/returnc                ,      fd}t        |      S )Nc                      dj                        j                  d} t        j                  j                  |       }|j
                  dk7  r"t        j                  d|j
                         |S )N,)Accept
User-Agent)urltimeoutheaders   status code )joinr   requestsgetr   status_codeRequestException)r/   responseacceptable_content_typesr   r-   s     r   taskz'RequestsFetcherMixin._get.<locals>.task+   sv    ((#;<"ooG  ||!9!97H ##s*//"8#7#7"89  Or   r   )r   r-   r8   r9   s   ``` r   _getzRequestsFetcherMixin._get(   s    	 r   c                4      fd}t        |      S )Nc                      dj                        j                  d} t        j                  j                  |       }|j
                  dk7  r"t        j                  d|j
                         |S )Nr*   )r+   r,   zContent-Type)r-   r.   r/   datar0   r1   )r2   r   r3   postr   r5   r6   )r/   r7   r8   content_typer=   r   r-   s     r   r9   z(RequestsFetcherMixin._post.<locals>.task>   s~    ((#;<"oo ,G
  }}00	H ##s*//"8#7#7"89  Or   r   )r   r-   r=   r?   r8   r9   s   ````` r   _postzRequestsFetcherMixin._post;   s    	 	$ r   )N
   )__name__
__module____qualname__r   r   r   r#   r&   r   r3   Responser:   r@    r   r   r	   r	      sK    "





	8$$	%&	8$$	%r   )typingr   r3   %pyhanko_certvalidator._asyncio_compatr   apir   common_utilsr   __all__r	   rF   r   r   <module>rL      s(      ; $ +!
"C Cr   