o
    ˜¨ÊhÄ  ã                   @   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Ú
stacklevelÚ01Ú0123456789ABCDEFÚ823456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyzÚ$0123456789abcdefghijklmnopqrstuvwxyzÚ>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v rtdƒ‚d S )Nz.Sign character found in converter base digits.)ÚsignÚdigitsÚ
ValueError)Úselfr   r   © r   úG/var/www/html/env/lib/python3.10/site-packages/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|ƒ | |¡ }q|dkr5|d }||fS d}|dkrS|t|ƒ }|| | }t|t|ƒ ƒ}|dks;||fS )Nr   é   Ú )Ústrr   Úindexr    )	r   ÚnumberÚfrom_digitsÚ	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__ÚwarningsÚdjango.utils.deprecationr   ÚwarnÚBASE2_ALPHABETÚBASE16_ALPHABETÚBASE56_ALPHABETÚBASE36_ALPHABETÚBASE62_ALPHABETÚBASE64_ALPHABETr   Úbase2Úbase16Úbase36Úbase56Úbase62Úbase64r   r   r   r   Ú<module>   s*   ý4