+
    :1jK
                        R t ^ RIHt ^ RIt^ RIHt ^ RIHt ^ RIt^RI	H
t
 ^RIHt ^RIHt ^RIHt ]'       d   ^ R	IHt ]P&                  ! ]4      tRR
 R llt]R R l4       tR# )zNotices network fetch logic.)annotationsN)ThreadPoolExecutor)TYPE_CHECKING)get_session)get_spinner)cached_response)ChannelNoticeResponse)Sequencec               (    V ^8  d   QhRRRRRRRR/# )	   url_and_nameszSequence[tuple[str, str]]silentboolmax_workersintreturnzSequence[ChannelNoticeResponse] )formats   "3lib/python3.14/site-packages/conda/notices/fetch.py__annotate__r      s0     
 
,

 
 %	
    c                    \        VR7      p\        R4      ;_uu_ 4        \        \        RR VP	                  R V 4       4       4      4      uuRRR4       #   + '       g   i     R# ; i)a_  
Provided a list of channel notification url/name tuples, return a sequence of
ChannelNoticeResponse objects.

Args:
    url_and_names: channel url and the channel name
    silent: turn off "loading animation" (defaults to False)
    max_workers: increase worker number in thread executor (defaults to 10)
Returns:
    Sequence[ChannelNoticeResponse]
)r   zRetrieving noticesNc              3  &   "   T F  pVx  K	  	  R # 5iNr   ).0chn_infos   & r   	<genexpr>'get_notice_responses.<locals>.<genexpr>.   s      % %s   c                    \        V !  # r   )get_channel_notice_response)argss   &r   <lambda>&get_notice_responses.<locals>.<lambda>1   s
    %@$%Gr   )r   r   tuplefiltermap)r   r   r   executors   &&& r   get_notice_responsesr'      sW      "k:H	)	*	*$,LLG%

 
+	*	*	*s   -AA)	c               $    V ^8  d   QhRRRRRR/# )r   urlstrnamer   zChannelNoticeResponse | Noner   )r   s   "r   r   r   9   s'     @ @S @ @8T @r   c                @   \        V 4      p VP                  V R^R7      p TP                  R8  d   \        YTP                  4       R7      # \
        P                  RTP                  T 4       R#   \        P                  P                   d    \
        P                  RY4        R# \        P                  P                   d#   p\
        P                  RYAT 4        Rp?R# Rp?ii ; i  \         d'    \
        P                  R	T 4       \        YRR7      u # i ; i)
z
Return a channel response object. We use this to wrap the response with
additional channel information to use. If the response was invalid we suppress/log
and error message.
F)allow_redirectstimeoutz)Request timed out for channel: %s url: %sNz*Request error <%s> for channel: %s url: %si,  )	json_dataz!Received %s when trying to GET %sz Unable to parse JSON data for %s)r   getrequests
exceptionsTimeoutloggerinfoRequestExceptionerrorstatus_coder   json
ValueError)r)   r+   sessionrespexcs   &&   r   r   r   8   s     #G	{{  
@c!(diikJJKK;T=M=MsS && ?K// A3cR  @6<$S$??@s:   A1 +C, !C, 15C))C)C)C$$C),.DD)F
   )__doc__
__future__r   loggingconcurrent.futuresr   typingr   r1   gateways.connection.sessionr   	reportersr   cacher   typesr   collections.abcr	   	getLogger__name__r4   r'   r   r   r   r   <module>rK      sW    # "  1    5 # " ((			8	$
@ @ @r   