U
    Y$d                     @   s   d Z ddlZddlmZ ejdedd dZdZd	Zd
ZdZ	e	d Z
G dd dZeeZeeZeeZeeZee	Zee
d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
stacklevelZ01Z0123456789ABCDEFZ823456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyzZ$0123456789abcdefghijklmnopqrstuvwxyzZ>0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzz-_c                   @   s:   e Zd ZdZdddZdd Zdd Zd	d
 Zdd ZdS )BaseConverter
0123456789-c                 C   s"   || _ || _|| jkrtdd S )Nz.Sign character found in converter base digits.)signdigits
ValueError)selfr
   r	    r   9/tmp/pip-unpacked-wheel-1oeddy95/django/utils/baseconv.py__init__=   s    
zBaseConverter.__init__c                 C   s   d| j jt| j| jf S )Nz<%s: base%s (%s)>)	__class____name__lenr
   )r   r   r   r   __repr__C   s
    zBaseConverter.__repr__c                 C   s*   |  || j| jd\}}|r&| j| S |S Nr   )convertdecimal_digitsr
   r	   )r   inegvaluer   r   r   encodeJ   s    
zBaseConverter.encodec                 C   s.   |  || j| j| j\}}|r&d| }t|S r   )r   r
   r   r	   int)r   sr   r   r   r   r   decodeP   s    zBaseConverter.decodec           	      C   s   t |d |kr&t |dd  }d}nd}d}t |D ]}|t| || }q6|dkrd|d }n6d}|dkr|t| }|| | }t|t| }qh||fS )Nr       )strr   indexr   )	r   numberZfrom_digitsZ	to_digitsr	   r   xdigitresr   r   r   r   V   s    
zBaseConverter.convertN)r   )	r   
__module____qualname__r   r   r   r   r   r   r   r   r   r   r   :   s   
r   $)r	   )__doc__warningsZdjango.utils.deprecationr   warnZBASE2_ALPHABETZBASE16_ALPHABETZBASE56_ALPHABETZBASE36_ALPHABETZBASE62_ALPHABETZBASE64_ALPHABETr   Zbase2Zbase16Zbase36Zbase56Zbase62base64r   r   r   r   <module>   s(   4