o 3a @sfdZdZdZdZdZdZedZGdddZeeZeeZ eeZ eeZ eeZ eed 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' 010123456789ABCDEF823456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz$0123456789abcdefghijklmnopqrstuvwxyz>0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzz-_c@s:eZdZdZdddZddZddZd d Zd d Zd S) BaseConverter 0123456789-cCs"||_||_||jvrtddS)Nz.Sign character found in converter base digits.)signdigits ValueError)selfr r r 7/usr/lib/python3/dist-packages/django/utils/baseconv.py__init__3s  zBaseConverter.__init__cCsd|jjt|j|jfS)Nz<%s: base%s (%s)>) __class____name__lenr )r r r r__repr__9szBaseConverter.__repr__cCs*|||j|jd\}}|r|j|S|SNr)convertdecimal_digitsr r )r inegvaluer r rencode<s zBaseConverter.encodecCs.|||j|j|j\}}|rd|}t|Sr)rr rr int)r srrr r rdecodeBszBaseConverter.decodec Cst|d|krt|dd}d}nd}d}t|D] }|t|||}q|dkr5|d}||fSd}|dkrS|t|}|||}t|t|}|dks;||fS)N)strrindexr) r number from_digits to_digitsr rxdigitresr r rrHs"   zBaseConverter.convertN)r) r __module__ __qualname__rrrrrrr r r rr0s  r$)r N)__doc__BASE2_ALPHABETBASE16_ALPHABETBASE56_ALPHABETBASE36_ALPHABETBASE62_ALPHABETBASE64_ALPHABETrbase2base16base36base56base62base64r r r rs0