
    DIe                     L   d Z ddlZ eej        dk              Z eej        dk              Z eej        dk              Z ej                    ZdZ	dZ
defd	Zd
 Zd ZddlmZ d ZddlmZ ddlmZ 	 ddZd Z ed          ZeeeeeefZd ZdefdZ d Z!d Z"d Z#dS )zCommon compatiblity code.    Nwin32darwinlinuxTFreturnc                     t          | t                    r| S t          | t                    r|                                 S t          |           S )z/Environment names and values need to be string.)
isinstancestrbytesdecodevalues    3lib/python3.11/site-packages/conda/common/compat.pyencode_for_env_varr      sE    % 	E5	!	! ||~~u::    c                 P    t           rd |                                 D             } | S )Nc                 N    i | ]"\  }}t          |          t          |          #S  r   ).0kvs      r   
<dictcomp>z&encode_environment.<locals>.<dictcomp>"   s0    TTT1!!$$&8&;&;TTTr   )ENCODE_ENVIRONMENTitems)envs    r   encode_environmentr       s+     UTT		TTTJr   c                 ,    t           rd | D             } | S )Nc                 ,    h | ]}t          |          S r   r   )r   args     r   	<setcomp>z#encode_arguments.<locals>.<setcomp>(   s!    BBB',,BBBr   )ENCODE_ARGS)	argumentss    r   encode_argumentsr#   &   s$     CBB	BBB	r   )Iterablec                 X    t          | t                     ot          | t                    S N)r   r	   r$   )objs    r   
isiterabler(   /   s$    #s###A
3(A(AAr   )OrderedDict)openrc           	          d|v r"t          | t          |          ||||          S t          | t          |          ||pd|||          S )Nb)	bufferingerrorsnewlineclosefdutf-8)r/   encodingr0   r1   r2   )io_openr	   )filemoder/   r4   r0   r1   r2   s          r   r*   r*   ;   su     d{{II
 
 
 	
 II(
 
 
 	
r   c                 l      G  fddt                     }t                               |ddi           S )z%Create a base class with a metaclass.c                   8    e Zd Z fdZe fd            ZdS )%six_with_metaclass.<locals>.metaclassc                      ||          S r&   r   )clsname
this_basesdbasesmetas       r   __new__z-six_with_metaclass.<locals>.metaclass.__new__Z   s    4eQ'''r   c                 0                         |          S r&   )__prepare__)r<   r=   r>   r@   rA   s      r   rD   z1six_with_metaclass.<locals>.metaclass.__prepare__]   s    ##D%000r   N)__name__
__module____qualname__rB   classmethodrD   )r@   rA   s   r   	metaclassr:   Y   s]        	( 	( 	( 	( 	( 	( 
	1 	1 	1 	1 	1 
	1 	1 	1r   rI   temporary_classr   )typerB   )rA   r@   rI   s   `` r   six_with_metaclassrL   S   sX    1 1 1 1 1 1 1 1D 1 1 1 <<	#4b"===r   c                 R    	 |                      d          S # t          $ r | cY S w xY wNr3   )encodeAttributeErrorr   s    r   ensure_binaryrQ   h   s?    ||G$$$        &&c                 \   	 |                      d          S # t          $ r | cY S t          $ rp 	 ddlm} n.# t
          $ r! 	 ddlm} n# t
          $ r	 ddlm} Y nw xY wY nw xY w ||                               d          pd}|                      |d          cY S t          $ r | cY S w xY w)Nr3   r   )detectr4   replace)r0   )
r   rP   UnicodeDecodeErrorchardetrT   ImportErrorrequests.packages.chardet%pip._vendor.requests.packages.chardetgetUnicodeEncodeError)r   rT   r4   s      r   ensure_text_typer]   q   s:   ||G$$$     	8 	8 	8	I&&&&&&& 	I 	I 	II<<<<<<< I I IHHHHHHHHI	I
 6%==$$Z00;G||HY|77777    	s^    B+	B+6B+
A!AA!AA!AA!B+ A!!:B+B+*B+c                 R    	 |                      d          S # t          $ r | cY S w xY w)Nunicode_escape)r   rP   r   s    r   ensure_unicoder`      s@    ||,---    rR   c                 v    	 |                      t                    S # t          $ r | cY S t          $ r | cY S w xY wr&   )rO   FILESYSTEM_ENCODINGrP   r\   r   s    r   ensure_fs_path_encodingrc      sY    ||/000      s    888c                 l    	 |                      d          S # t          $ r | cY S t          $ r | cY S w xY wrN   )rO   rP   r\   r   s    r   ensure_utf8_encodingre      sX    ||G$$$      s    333)r+   r,   NNNT)$__doc__sysboolplatformon_winon_macon_linuxgetfilesystemencodingrb   r   r!   r	   r   r   r#   collections.abcr$   r(   collectionsr)   odictior*   r5   rL   rK   NoneTypeintfloatcomplexprimitive_typesrQ   r]   r`   rc   re   r   r   r   <module>rw      s      


	clg%	&	&	clh&	'	'4'((/c/11            % $ $ $ $ $B B B - , , , , ,       UY
 
 
 
0> > >" 4::UGT8<  s    0        r   