
    ^f                        d Z ddlmZ ddlZddlZdad Zd Ze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dS )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 dS )z'Set file used to get codec information.Ndefault_encoding_filefiles    F/var/www/html/env/lib/python3.11/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                    dS )Get default encoding.zutf-8r   r   s    r	   default_encodingr       s    wr   c                j    | pt                      } t          | dd          pt          j                    S )r   encodingN)r   getattrsysgetfilesystemencodingr   s    r	   r   r   %   s3    2022tZ..M#2K2M2MMr   c                X    t          | t                    r|                                 S | S )zConvert str to bytes.)
isinstancestrencodess    r	   str_to_bytesr   +   s'    !S xxzzHr   c                \    t          | t                    r|                     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                N    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   r    c                    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   sC    QAa#u&& $F###Qr   c           	        t          | t                    r| S 	 t          |           S # t          $ rR}d                    t	          |           |d                    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 ?1vv ? ? ?299GGS$))I$:$<$<==? ? 	? 	? 	? 	? 	? 	??s   ( 
BAA?9B?Bc                b    	 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/   \   sC    $Aww $ $ $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      s;    # " " " " " 



    
  ! ! !! ! !
 <6"" 
N    
N N N N      
    
       ? ? ? ?$ $ $ $ $ $r   