
    $TXg                        d Z ddlZddlZddlmZ  eej                  dk(        Z eej                  dk(        Z eej                  dk(        Z	 ej                  dd	d
 ej                         xZ       dZdefdZd Z edd      d        ZddlmZ d ZddlmZ 	 ddZ edd	d      	 dd       Z edd	d      d        Z ed      ZeeeeeefZ d Z!defdZ" edd	      d        Z# edd	      d        Z$d Z%y) zCommon compatiblity code.    N   )
deprecatedwin32darwinlinuxz25.3z25.9FILESYSTEM_ENCODINGTreturnc                 |    t        | t              r| S t        | t              r| j                         S t        |       S )z/Environment names and values need to be string.)
isinstancestrbytesdecodevalues    3lib/python3.12/site-packages/conda/common/compat.pyencode_for_env_varr      s1    %	E5	!||~u:    c                     t         r5| j                         D ci c]  \  }}t        |      t        |       } }}| S c c}}w N)ENCODE_ENVIRONMENTitemsr   )envkvs      r   encode_environmentr   '   s?    HK		T1!!$&8&;;TJ Us   >z24.9c                     | S r    )	argumentss    r   encode_argumentsr   -   s    r   )Iterablec                 H    t        | t               xr t        | t              S r   )r   r   r    )objs    r   
isiterabler#   5   s    #s##A
3(AAr   )OrderedDictc           	          d|v r$t        j                  | t        |      ||||      S t        j                  | t        |      ||xs d|||      S )Nb)	bufferingerrorsnewlineclosefdutf-8)r'   encodingr(   r)   r*   )builtinsopenr   filemoder'   r,   r(   r)   r*   s          r   	open_utf8r2   @   sc     d{}}I
 	
 }}I(
 	
r   z,Use `conda.common.compat.open_utf8` instead.)addendumc           	      $    t        | ||||||      S r   )r2   r/   s          r   r.   r.   X   s     T4HfgwOOr   z1Use class' `metaclass=` keyword argument instead.c                 Z      G  fddt               }t         j                  |ddi       S )z%Create a base class with a metaclass.c                   0    e Zd Z fdZe fd       Zy)%six_with_metaclass.<locals>.metaclassc                      ||      S r   r   )clsname
this_basesdbasesmetas       r   __new__z-six_with_metaclass.<locals>.metaclass.__new__k   s    eQ''r   c                 (    j                  |      S r   )__prepare__)r9   r:   r;   r=   r>   s      r   rA   z1six_with_metaclass.<locals>.metaclass.__prepare__n   s    ##D%00r   N)__name__
__module____qualname__r?   classmethodrA   )r=   r>   s   r   	metaclassr7   j   s    	( 
	1 
	1r   rF   temporary_classr   )typer?   )r>   r=   rF   s   `` r   six_with_metaclassrI   _   s'    1D 1 <<	#4b"==r   c                 H    	 | j                  d      S # t        $ r | cY S w xY wNr+   )encodeAttributeErrorr   s    r   ensure_binaryrN   y   s,    ||G$$      !!c                     	 | j                  d      S # t        $ r | cY S t        $ r( ddlm} t         ||       j                               cY S t        $ r | cY S w xY w)Nr+   r   )
from_bytes)r   rM   UnicodeDecodeErrorcharset_normalizerrQ   r   bestUnicodeEncodeError)r   rQ   s     r   ensure_text_typerV      s_    ||G$$   -1:e$))+,,  	s    A-A
AAc                 H    	 | j                  d      S # t        $ r | cY S w xY w)Nunicode_escape)r   rM   r   s    r   ensure_unicoderY      s-    ||,--  rO   c                 h    	 | j                  t              S # t        $ r | cY S t        $ r | cY S w xY wr   )rL   _FILESYSTEM_ENCODINGrM   rU   r   s    r   ensure_fs_path_encodingr\      s8    ||011  s    1
11c                 `    	 | j                  d      S # t        $ r | cY S t        $ r | cY S w xY wrK   )rL   rM   rU   r   s    r   ensure_utf8_encodingr^      s7    ||G$$  s    -
--)rNNNT)&__doc__r-   sysdeprecationsr   boolplatformon_winon_macon_linuxconstantgetfilesystemencodingr[   r   r   r   r   r   collections.abcr    r#   collectionsr$   odictr2   r.   rI   rH   NoneTypeintfloatcomplexprimitive_typesrN   rV   rY   r\   r^   r   r   r   <module>rs      sz      
 %	cllg%	&	cllh&	''( 
  

5C5577	    FF  %B - UY
0 FF%STTXP UP 

@
>
>" :UGT8<s $ FF  FF r   