
    i                     l    S r SSKJr  SSKJr  SSKJr  SSKrSS jrSS jrSS jrSS	 jr	SS
 jr
S rg)zCA module for dealing with unknown string and environment encodings.    )absolute_import)division)unicode_literalsNc                     AU $ )zEncode the text string to a byte string.

Args:
  string: str, The text string to encode.
  encoding: The suggested encoding if known.

Returns:
  str, The binary string.
 )stringencodings     U/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/fire/console/encoding.pyEncoder      s     	-    c                 x   U c  g[        U [        5      (       d  [        U [        5      (       a  U nO[        U 5      n[        U[        5      (       a  U$  UR                  S5      $ ! [         a     Of = fU(       a"   UR                  U5      $ ! [         a     Of = f UR                  S5      $ ! [         a     Of = f UR                  [
        R                  " 5       5      $ ! [         a     Of = f UR                  [
        R                  " 5       5      $ ! [         a     Of = fUR                  S5      $ )a  Returns string with non-ascii characters decoded to UNICODE.

UTF-8, the suggested encoding, and the usual suspects will be attempted in
order.

Args:
  data: A string or object that has str() and unicode() methods that may
    contain an encoding incompatible with the standard output encoding.
  encoding: The suggested encoding if known.

Returns:
  A text string representing the decoded byte string.
Nasciiutf8z
iso-8859-1)
isinstancestrbytesdecodeUnicodeErrorsysgetfilesystemencodinggetdefaultencoding)datar	   r   s      r
   Decoder   (   s/    
\ cju55F YFM	==!!	 		
 ]]8$$ 
	==  	 		
	==22455	 		
	==//122	 		& 
|	$$sZ   A& &
A32A3>B 
BB B1 1
B>=B>#C& &
C32C37#D 
D('D(c                 Z    [        U5      nU R                  U5      nUc  U$ [        U5      $ )zReturns the decoded value of the env var name.

Args:
  env: {str: str}, The env dict.
  name: str, The env var name.
  default: The value to return if name is not in env.

Returns:
  The decoded value of the env var name.
)r   getr   )envnamedefaultvalues       r
   GetEncodedValuer    |   s0     
$
''$-%
]N 
r   c                 X    [        XS9nUc  U R                  US5        g[        X#S9X'   g)a  Sets the value of name in env to an encoded value.

Args:
  env: {str: str}, The env dict.
  name: str, The env var name.
  value: str or unicode, The value for name. If None then name is removed from
    env.
  encoding: str, The encoding to use or None to try to infer it.
r	   N)r   pop)r   r   r   r	   s       r
   SetEncodedValuer$      s0    & 
	($
]GGD$
U.#)r   c           
          U=(       d
    [        5       nU R                  5        VVs0 s H  u  p#[        X!S9[        X1S9_M     snn$ s  snnf )a  Encodes all the key value pairs in env in preparation for subprocess.

Args:
  env: {str: str}, The environment you are going to pass to subprocess.
  encoding: str, The encoding to use or None to use the default.

Returns:
  {bytes: bytes}, The environment to pass to subprocess.
r"   )_GetEncodingitemsr   )r   r	   kvs       r
   	EncodeEnvr*      sN     '( ))+
$! Q"F1$@@
  
s   Ac                  d    [         R                  " 5       =(       d    [         R                  " 5       $ )z!Gets the default encoding to use.)r   r   r   r   r   r
   r&   r&      s    		"	"	$	@(>(>(@@r   )N)__doc__
__future__r   r   r   r   r   r   r    r$   r*   r&   r   r   r
   <module>r.      s8   " J &  ' 
Q%h(/4"Ar   