§
    >xÅj!  ã                  ó  — U d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZmZmZ erd d
lmZmZ  ej        e¦  «        ZdZ de!d<   dZ"de!d<   dZ#de!d<    e$ej%        j&        ej'        j&        ej(        j&        ej)        j&        h¦  «        Z*de!d<   d&d„Z+d'd„Z, G d„ dej-        ¦  «        Z. ed d ¬!¦  «         G d"„ d#¦  «        ¦   «         Z/ G d$„ d%¦  «        Z0dS )(é    )ÚannotationsN)ÚMapping)Ú	dataclass)Útimezone)Úparsedate_to_datetime)Ú
HTTPStatus)ÚBytesIO)ÚTYPE_CHECKINGÚFinalÚLiteral)ÚBaseHTTPResultÚBaseHTTPTransporté   z
Final[int]Ú_MAX_RETRIESg      $@zFinal[float]Ú_DEFAULT_TIMEOUTgš™™™™™É?Ú_DEFAULT_JITTERzFinal[frozenset[int]]Ú_RETRYABLE_STATUS_CODESÚstatus_codeú
int | NoneÚreturnÚboolc                ó   — | t           v S )N)r   )r   s    úXC:\Projects\Historical\venv\Lib\site-packages\opentelemetry/exporter/otlp/common/http.pyÚ_is_retryabler   -   s   € ØÕ1Ð1Ð1ó    Úresultr   úfloat | Nonec                ó>  — 	 |                       ¦   «                              d¦  «        }n# t          $ r Y dS w xY w|€dS |                     ¦   «         }	 t	          |¦  «        }t          j        |¦  «        rt          |d¦  «        ndS # t          $ r Y nw xY w	 t          |¦  «        }n# t          t          f$ r Y dS w xY w|j        € |                     t          j        ¬¦  «        }t          |                     ¦   «         t!          j        ¦   «         z
  d¦  «        S )z,Parse the ``Retry-After`` header (RFC 7231).zretry-afterNç        )Útzinfo)ÚheadersÚgetÚ	ExceptionÚstripÚfloatÚmathÚisfiniteÚmaxÚ
ValueErrorr   Ú	TypeErrorr    Úreplacer   ÚutcÚ	timestampÚtime)r   ÚvalueÚsecondsÚretry_ats       r   Ú_extract_retry_afterr2   1   s:  € ðØ—’Ñ Ô ×$Ò$ ]Ñ3Ô3ˆˆøåð ð ð Øˆtˆtðøøøà€}ØˆtØ�KŠK‰MŒM€EðEÝ˜‘,”,ˆõ %)¤M°'Ñ$:Ô$:ÐD�s�7˜CÑ Ô Ð ÀÐDøõ ð ð ð ØˆðøøøðÝ(¨Ñ/Ô/ˆˆøÝ•zÐ"ð ð ð Øˆtˆtðøøøà„ÐØ×#Ò#­8¬<Ð#Ñ8Ô8ˆÝˆx×!Ò!Ñ#Ô#¥d¤i¡k¤kÑ1°3Ñ7Ô7Ð7s0   ‚'* ª
8·8ÁB	 Â	
BÂBÂB* Â*B?Â>B?c                  ó2   — e Zd ZdZdZdZed	d„¦   «         ZdS )
ÚCompressionÚnoneÚdeflateÚgzipr/   Ústrr   c                óâ   — |                       ¦   «                              ¦   «         xdk    r t          j        S xdk    r t          j        S dk    rt          j        S 	 t          d| ›d�¦  «        ‚)Nr5   r6   r7   zInvalid compression type: z-. Expected one of: 'none', 'deflate', 'gzip'.)r$   Úlowerr4   ÚNONEÚDEFLATEÚGZIPr)   )r/   s    r   Úfrom_strzCompression.from_strS   sn   € à�kŠk‰mŒm×!Ò!Ñ#Ô#Ø�’��Ý"Ô'Ð'Ø�’��Ý"Ô*Ð*Ø’�Ý"Ô'Ð'ØÝ Ð!t¸eÐ!tÐ!tÐ!tÑuÔuÐur   N)r/   r8   r   r4   )Ú__name__Ú
__module__Ú__qualname__r;   r<   r=   Ústaticmethodr>   © r   r   r4   r4   N   sG   € € € € € Ø€DØ€GØ€Dàð	vð 	vð 	vñ „\ð	vð 	vð 	vr   r4   T)ÚslotsÚfrozenc                  ó<   — e Zd ZU dZded<   ded<   ded<   ded	<   d
S )Ú_ExportResultz>Outcome of an OTLP export attempt, including retry exhaustion.r   Úsuccessr   r   z
str | NoneÚreasonzException | NoneÚerrorN)r?   r@   rA   Ú__doc__Ú__annotations__rC   r   r   rG   rG   `   sE   € € € € € € àHÐHà€M€M�MØÐÐÑØÐÐÑØÐÐÑÐÐr   rG   c                  óX   — e Zd ZdZeej        dedfd!d„Zd"d„Z	d#d„Z
d$d„Zd%d„Zd&d „ZdS )'Ú_OTLPHTTPClientzÛSends serialized OTLP payloads over HTTP with retry logic.

    Compression, backoff, and connection-error recovery are handled internally.
    Callers interact through the :meth:`export` and :meth:`close` methods.
    NÚ	transportr   Úendpointr8   Úkindú#Literal['spans', 'logs', 'metrics']Útimeoutr%   Úcompressionr4   r!   úMapping[str, str] | NoneÚjitterÚloggerúlogging.Logger | Noner   ÚNonec	                óª  — || _         || _        || _        || _        |�t	          |¦  «        ni | _        | j        t          j        ur2t          d„ | j        D ¦   «         ¦  «        s| j        j	        | j        d<   || _
        t          t          |d¦  «        d¦  «        | _        |�|nt          | _        d| _        t!          j        ¦   «         | _        d S )Nc              3  óF   K  — | ]}|                      ¦   «         d k    V — ŒdS )zcontent-encodingN)r:   )Ú.0Úkeys     r   ú	<genexpr>z+_OTLPHTTPClient.__init__.<locals>.<genexpr>�   sI   è è € ð A
ð A
Ø25ˆC�IŠI‰KŒKÐ-Ò-ðA
ð A
ð A
ð A
ð A
ð A
r   zContent-Encodingr   g      ð?F)Ú
_transportÚ	_endpointÚ_timeoutÚ_compressionÚdictÚ_headersr4   r;   Úanyr/   Ú_kindÚminr(   Ú_jitterÚ_loggerÚ	_shutdownÚ	threadingÚEventÚ_shutdown_event)	ÚselfrO   rP   rQ   rS   rT   r!   rV   rW   s	            r   Ú__init__z_OTLPHTTPClient.__init__q   sÞ   € ð $ˆŒØ!ˆŒØˆŒØ'ˆÔØ)0Ð)<�˜W™œ˜À"ˆŒØÔ¥KÔ$4Ð4Ð4½Sð A
ð A
Ø9=¼ðA
ñ A
ô A
ñ >
ô >
Ð4ð 15Ô0AÔ0GˆDŒMÐ,Ñ-ØˆŒ
Ý�3˜v sÑ+Ô+¨SÑ1Ô1ˆŒØ!'Ð!3�v�v½ˆŒØˆŒÝ(œÑ0Ô0ˆÔÐÐr   ÚretryÚintc                óX   — d|z  t          j        d| j        z
  d| j        z   ¦  «        z  S )Né   é   )ÚrandomÚuniformrh   )rn   rp   s     r   Ú_compute_backoffz _OTLPHTTPClient._compute_backoff‹   s+   € Ø�%‰x�&œ.¨¨T¬\Ñ)9¸1¸t¼|Ñ;KÑLÔLÑLÐLr   Úserialized_dataÚbytesc                óD  — | j         t          j        u ret          ¦   «         }t	          j        |d¬¦  «        5 }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         S | j         t          j        u rt          j
        |¦  «        S |S )NÚw)ÚfileobjÚmode)rb   r4   r=   r	   r7   ÚGzipFileÚwriteÚgetvaluer<   ÚzlibÚcompress)rn   rx   ÚbufÚgzs       r   Ú	_compressz_OTLPHTTPClient._compressŽ   sÊ   € ØÔ¥Ô 0Ð0Ð0Ý‘)”)ˆCÝ” s°Ð5Ñ5Ô5ð *¸Ø—’˜Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *à—<’<‘>”>Ð!ØÔ¥Ô 3Ð3Ð3Ý”= Ñ1Ô1Ð1ØÐs   ¸AÁAÁ!AÚdatar   c                óZ  — t          j         ¦   «         |z   }| j                             d| j        | j        ||¬¦  «        }|j        �d| j                             |j        ¦  «        rE|t          j         ¦   «         z
  x}dk    r)| j                             d| j        | j        ||¬¦  «        }|S )NÚPOST)r!   r†   rS   r   )r.   r_   Úrequestr`   rd   rJ   Úis_connection_error)rn   r†   rS   Údeadliner   Ú	remainings         r   Ú_submitz_OTLPHTTPClient._submit˜   s¸   € Ý”9‘;”; Ñ(ˆØ”×(Ò(ØØŒNØ”MØØð )ñ 
ô 
ˆð ŒLÐ$Ø”×3Ò3°F´LÑAÔAð %à&­¬©¬Ñ4Ð4�¸Ò9Ð9ð
 ”_×,Ò,ØØ”ØœØØ!ð -ñ ô ˆFð ˆr   rG   c           	     ó²  — |                       |¦  «        }t          j        ¦   «         | j        z   }t          t          ¦  «        D �] }|                      |¦  «        }d}d}	 |                      |t          |t          j        ¦   «         z
  d¦  «        ¦  «        }|j        }|j	        }|�$d|cxk    rdk     rn nt          d||d¦  «        c S |j        }|rt          |¦  «        n| j                             |j        ¦  «        }	|	r|�t          |¦  «        x}
�|
}n# t           $ r}|}d}	Y d}~nd}~ww xY w|	s:| j                             d| j        ||p|pd¦  «         t          d|||¦  «        c S |d	z   t          k    s3||t          j        ¦   «         z
  k    s| j                             ¦   «         r4| j                             d
| j        ¦  «         t          d|||¦  «        c S | j                             d|p|| j        |¦  «         | j                             |¦  «        }|r| j                             d¦  «          n�Œt          dddd¦  «        S )zÎExport a serialized payload, retrying on transient failures.

        :param data: Serialized bytes to send.
        :returns: An :class:`ExportResult` indicating success or the reason for failure.
        Nr   éÈ   i�  TFz.Failed to export %s batch code: %s, reason: %sÚunknownrt   zBFailed to export %s batch due to timeout, max retries or shutdown.zKTransient error %s encountered while exporting %s batch, retrying in %.2fs.z%Shutdown in progress, aborting retry.)r…   r.   ra   Úranger   rw   r�   r(   r   rI   rG   rJ   r   r_   rŠ   r2   r#   ri   rf   rm   Úis_setÚwarningÚwait)rn   r†   r‹   rp   Úbackoffr   rI   r   Úexport_errorÚ	retryableÚretry_afterrJ   Úshutdowns                r   Úexportz_OTLPHTTPClient.export²   sÁ  € ð �~Š~˜dÑ#Ô#ˆÝ”9‘;”; ¤Ñ.ˆå�<Ñ(Ô(ð 2	ñ 2	ˆEØ×+Ò+¨EÑ2Ô2ˆGØ&*ˆKØ!%ˆFð*ØŸš d­C°½4¼9¹;¼;Ñ0FÈÑ,LÔ,LÑMÔM�ð %Ô0�Øœ�ØÐ*¨s°kÐ/GÐ/GÒ/GÐ/GÀCÒ/GÐ/GÐ/GÐ/GÐ/GÝ(¨¨{¸FÀDÑIÔIÐIÐIÐIØ%œ|�à2=Ðt•M +Ñ.Ô.Ð.À4Ä?×CfÒCfÐgmÔgsÑCtÔCtð ð ð * Ð!8ÕMaÐbhÑMiÔMiÐ>i¸kÐ=vØ)�Gøøõ ð "ð "ð "Ø$�Ø!�	�	�	�	�	�	øøøøð"øøøð ð OØ”×"Ò"ØDØ”JØØÐ7˜lÐ7¨iñ	ô ð õ % U¨K¸ÀÑNÔNÐNÐNÐNà�q‰y�LÒ(Ð(¨G°xÅ$Ä)Á+Ä+Ñ7MÒ,NÐ,NÐRVÔRf×RmÒRmÑRoÔRoÐ,NØ”×"Ò"ØXØ”Jñô ð õ % U¨K¸ÀÑNÔNÐNÐNÐNàŒL× Ò Ø]ØÐ&˜,Ø”
Øñ	ô ð ð Ô+×0Ò0°Ñ9Ô9ˆHØð Ø”×$Ò$Ð%LÑMÔMÐMØ�ñõ ˜U D¨$°Ñ5Ô5Ð5s   Á"8DÄ
D5Ä'D0Ä0D5c                ó¾   — | j         r| j                             d¦  «         dS d| _         | j                             ¦   «          | j                             ¦   «          dS )zShutdown the client.z+OTLP client already shutdown, ignoring callNT)rj   ri   r“   rm   Úsetr_   Úclose)rn   s    r   r™   z_OTLPHTTPClient.shutdownñ   s^   € àŒ>ð 	ØŒL× Ò Ð!NÑOÔOÐOØˆFØˆŒØÔ× Ò Ñ"Ô"Ð"ØŒ×ÒÑÔÐÐÐr   )rO   r   rP   r8   rQ   rR   rS   r%   rT   r4   r!   rU   rV   r%   rW   rX   r   rY   )rp   rq   r   r%   )rx   ry   r   ry   )r†   ry   rS   r%   r   r   )r†   ry   r   rG   )r   rY   )r?   r@   rA   rK   r   r4   r;   r   ro   rw   r…   r�   rš   r™   rC   r   r   rN   rN   j   s´   € € € € € ðð ð *Ø#.Ô#3Ø,0Ø'Ø(,ð1ð 1ð 1ð 1ð 1ð4Mð Mð Mð Mðð ð ð ðð ð ð ð4=6ð =6ð =6ð =6ð~ ð  ð  ð  ð  ð  r   rN   )r   r   r   r   )r   r   r   r   )1Ú
__future__r   Úenumr7   Úloggingr&   ru   rk   r.   r�   Úcollections.abcr   Údataclassesr   Údatetimer   Úemail.utilsr   Úhttpr   Úior	   Útypingr
   r   r   Ú+opentelemetry.exporter.http.transport._baser   r   Ú	getLoggerr?   ri   r   rL   r   r   Ú	frozensetÚTOO_MANY_REQUESTSr/   ÚBAD_GATEWAYÚSERVICE_UNAVAILABLEÚGATEWAY_TIMEOUTr   r   r2   ÚEnumr4   rG   rN   rC   r   r   ú<module>r°      s–  ðð #Ð "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø €€€Ø €€€Ø €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0àð ðð ð ð ð ð ð ð ð
 ˆ'Ô
˜HÑ
%Ô
%€à€Ð Ð Ð Ñ Ø!%Ð Ð %Ð %Ð %Ñ %Ø #€Ð #Ð #Ð #Ñ #ð 2;°àÔ$Ô*ØÔÔ$ØÔ&Ô,ØÔ"Ô(ð	ñ2ô 2Ð ð ð ð ñ ð2ð 2ð 2ð 2ð8ð 8ð 8ð 8ð:vð vð vð vð v�$”)ñ vô vð vð$ €�˜dÐ#Ñ#Ô#ðð ð ð ð ñ ô ñ $Ô#ððN ð N ð N ð N ð N ñ N ô N ð N ð N ð N r   