
    Hwg                         d Z ddlZddlmZ  ej                  ded       dZdZd	Zd
ZdZ	e	dz   Z
 G d d      Z ee      Z ee      Z ee      Z ee      Z ee	      Z ee
d      Zy)a  
Convert numbers from base 10 integers to base X strings and back again.

Sample usage::

  >>> base20 = BaseConverter('0123456789abcdefghij')
  >>> base20.encode(1234)
  '31e'
  >>> base20.decode('31e')
  1234
  >>> base20.encode(-1234)
  '-31e'
  >>> base20.decode('-31e')
  -1234
  >>> base11 = BaseConverter('0123456789-', sign='$')
  >>> base11.encode(-1234)
  '$-22'
  >>> base11.decode('$-22')
  -1234

    N)RemovedInDjango50Warningz/The django.utils.baseconv module is deprecated.   )category
stacklevel010123456789ABCDEF823456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz$0123456789abcdefghijklmnopqrstuvwxyz>0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzz-_c                   0    e Zd ZdZddZd Zd Zd Zd Zy)	BaseConverter
0123456789c                 R    || _         || _        || j                  v rt        d      y )Nz.Sign character found in converter base digits.)signdigits
ValueError)selfr   r   s      L/var/www/horilla/myenv/lib/python3.12/site-packages/django/utils/baseconv.py__init__zBaseConverter.__init__=   s-    	4;;MNN     c                 |    d| j                   j                  dt        | j                        d| j                  dS )N<z: basez (z)>)	__class____name__lenr   )r   s    r   __repr__zBaseConverter.__repr__C   s,    NN##KK
 	
r   c                 ~    | j                  || j                  | j                  d      \  }}|r| j                  |z   S |S N-)convertdecimal_digitsr   r   )r   inegvalues       r   encodezBaseConverter.encodeJ   s;    \\!T%8%8$++sK
U99u$$r   c                     | j                  || j                  | j                  | j                        \  }}|rd|z   }t	        |      S r   )r    r   r!   r   int)r   sr#   r$   s       r   decodezBaseConverter.decodeP   s>    \\!T[[$2E2EtyyQ
U%KE5zr   c                 F   t        |      d   |k(  rt        |      dd  }d}nd}d}t        |      D ]"  }|t        |      z  |j                  |      z   }$ |dk(  r	|d   }||fS d}|dkD  r3|t        |      z  }||   |z   }t        |t        |      z        }|dkD  r3||fS )Nr       )strr   indexr'   )	r   numberfrom_digits	to_digitsr   r#   xdigitress	            r   r    zBaseConverter.convertV   s    v;q>T![_FCC [ 	@EC$${'8'8'??A	@ 6A,C Cx Ca%C	N*&,S^+, a% Cxr   N)r   )	r   
__module____qualname__r!   r   r   r%   r)   r     r   r   r   r   :   s!    !NO
r   r   $)r   )__doc__warningsdjango.utils.deprecationr   warnBASE2_ALPHABETBASE16_ALPHABETBASE56_ALPHABETBASE36_ALPHABETBASE62_ALPHABETBASE64_ALPHABETr   base2base16base36base56base62base64r7   r   r   <module>rI      s   &*  = 5% $L8R!D(1 1h 	n%		'		'		'		'	S	1r   