
     h                        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dS )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                   2    e Zd ZdZd	dZd Zd Zd Zd ZdS )
BaseConverter
0123456789-c                 R    || _         || _        || j        v rt          d          d S )Nz.Sign character found in converter base digits.)signdigits
ValueError)selfr   r   s      T/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/django/utils/baseconv.py__init__zBaseConverter.__init__=   s4    	4;MN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   s8     N###KKK
 	
r   c                 h    |                      || j        | j        d          \  }}|r
| j        |z   S |S Nr   )convertdecimal_digitsr   r   )r   inegvalues       r   encodezBaseConverter.encodeJ   s<    \\!T%8$+sKK
U 	%9u$$r   c                     |                      || j        | j        | j                  \  }}|rd|z   }t	          |          S r   )r    r   r!   r   int)r   sr#   r$   s       r   decodezBaseConverter.decodeP   sA    \\!T[$2EtyQQ
U 	 %KE5zzr   c                    t          |          d         |k    rt          |          dd          }d}nd}d}t          |          D ]*}|t          |          z  |                    |          z   }+|dk    r	|d         }nJd}|dk    rB|t          |          z  }||         |z   }t          |t          |          z            }|dk    B||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CCC [[ 	@ 	@EC$$${'8'8'?'??AA 66A,CCCa%%C	NN*&,S^^+,, a%% Cxr   N)r   )	r   
__module____qualname__r!   r   r   r%   r)   r     r   r   r   r   :   sm        !NO O O 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 1 1 1 1 1 1h 	n%%		'	'		'	'		'	'		'	'	S	1	1	1r   