
    Ih                        d Z ddlmZ ddlZddlZdad Zd Zej                  j                  d      rddZ
nddZ
d	 Zd
 Zd Zd Zd ZddZddZddZy)zText encoding utilities.

Utilities to encode text, and to safely emit text from running
applications without crashing from the infamous
:exc:`UnicodeDecodeError` exception.
    )annotationsNc                    | a y)z'Set file used to get codec information.Ndefault_encoding_filefiles    M/var/www/html/planif/env/lib/python3.12/site-packages/kombu/utils/encoding.pyset_default_encoding_filer
      s
     !    c                     t         S )z'Get file used to get codec information.r    r   r	   get_default_encoding_filer      s      r   javac                     y)Get default encoding.zutf-8r   r   s    r	   default_encodingr       s    r   c                d    | xs
 t               } t        | dd      xs t        j                         S )r   encodingN)r   getattrsysgetfilesystemencodingr   s    r	   r   r   %   s-    202tZ.M#2K2K2MMr   c                F    t        | t              r| j                         S | S )zConvert str to bytes.)
isinstancestrencodess    r	   str_to_bytesr   +   s    !SxxzHr   c                J    t        | t              r| j                  d      S | S )zConvert bytes to str.replace)errors)r   bytesdecoder   s    r	   bytes_to_strr$   2   s"    !Uxxyx))Hr   c                    | S )zGet str from utf-8 encoding.r   )r   argskwargss      r	   	from_utf8r(   9   s    Hr   c                <    t        | t              st        |       S | S )zEnsure s is bytes, not str.)r   r"   r   r   s    r	   ensure_bytesr*   >   s    aAHr   c                    | S )zEncode using default encoding.r   )objs    r	   default_encoder-   E   s    Jr   c                t    t        |       } t        | t        t        f      st	        | |      S t        | |      S )z+Safe form of str(), void of unicode errors.)r$   r   r   r"   	safe_repr	_safe_str)r   r!   s     r	   safe_strr1   J   s3    QAa#u&F##Qr   c           	         t        | t              r| S 	 t        |       S # t        $ rG}dj                  t	        |       |dj                  t        j                                     cY d }~S d }~ww xY w)Nz!<Unrepresentable {!r}: {!r} {!r}>
)r   r   	Exceptionformattypejoin	tracebackformat_stack)r   r!   r   excs       r	   r0   r0   R   s_    !S?1v ?299GS$))I$:$:$<=? 	??s   
 	A/<A*$A/*A/c                P    	 t        |       S # t        $ r t        | |      cY S w xY w)z*Safe form of repr, void of Unicode errors.)reprr4   r0   )or!   s     r	   r/   r/   \   s,    $Aw $F##$s   
 %%)N)r    )r    N)__doc__
__future__r   r   r8   r   r
   r   platform
startswithr   r   r$   r(   r*   r-   r1   r0   r/   r   r   r	   <module>rB      sn    # 
 
  !!
 <<6"
N

 ?$r   