%PDF- %PDF-
Direktori : /opt/alt/python27/lib/python2.7/site-packages/paste/exceptions/ |
Current File : //opt/alt/python27/lib/python2.7/site-packages/paste/exceptions/serial_number_generator.pyc |
� a�Nc @ s� d Z y d d l m Z Wn! e k r= d d l m Z n Xd Z e e � Z d � Z e e d d e d � Z i d d 6d d 6Z e d k r� d d l Z e j � n d S( s� Creates a human-readable identifier, using numbers and digits, avoiding ambiguous numbers and letters. hash_identifier can be used to create compact representations that are unique for a certain string (or concatenation of strings) i����( t md5t 23456789abcdefghjkmnpqrtuvwxyzc C s� t | t t f � s( t d | � � n | d k rG t d | � � n g } x/ | r~ | t } | j t | � | t } qP Wd j | � S( s, Encodes a number as an identifier. s6 You can only make identifiers out of integers (not %r)i s7 You cannot make identifiers out of negative numbers: %rt ( t isinstancet intt longt ValueErrort baset appendt good_characterst join( t numbert resultt next( ( sY /opt/alt/python27/lib/python2.7/site-packages/paste/exceptions/serial_number_generator.pyt make_identifier s R c C sW t | � s | j } n | d k r@ | t k r@ t d | � n t | t � ra | j d � } n | t | � � } | j � } t | } d } x, t | � D] } | d t | � | } q� Wt | � } | r� t d | t | � | } n | r:g } x* | r'| j d | | � | | } q� Wd j | � } n | rO| j � } n | | S( s� Hashes the string (with the given hashing module), then turns that hash into an identifier of the given length (using modulo to reduce the length of the identifier). If ``pad`` is False, then the minimum-length identifier will be used; otherwise the identifier will be padded with 0's as necessary. ``prefix`` will be added last, and does not count towards the target length. ``group`` will group the characters with ``-`` in the given lengths, and also does not count towards the target length. E.g., ``group=4`` will cause a identifier like ``a5f3-hgk3-asdf``. Grouping occurs before the prefix. i sJ md5 cannot create hashes longer than 26 characters in length (you gave %s)s utf-8i i t -( t callablet newR R R t unicodet encodet strt digestR t listt ordR R t lent insertR t upper( t st lengtht padt hashert prefixt groupR t ht bin_hasht moduloR t ct identt parts( ( sY /opt/alt/python27/lib/python2.7/site-packages/paste/exceptions/serial_number_generator.pyt hash_identifier( s4 s� >>> make_identifier(0) '' >>> make_identifier(1000) 'c53' >>> make_identifier(-100) Traceback (most recent call last): ... ValueError: You cannot make identifiers out of negative numbers: -100 >>> make_identifier('test') Traceback (most recent call last): ... ValueError: You can only make identifiers out of integers (not 'test') >>> make_identifier(1000000000000) 'c53x9rqh3' R s' >>> hash_identifier(0, 5) 'cy2dr' >>> hash_identifier(0, 10) 'cy2dr6rg46' >>> hash_identifier('this is a test of a long string', 5) 'awatu' >>> hash_identifier(0, 26) 'cy2dr6rg46cx8t4w2f3nfexzk4' >>> hash_identifier(0, 30) Traceback (most recent call last): ... ValueError: md5 cannot create hashes longer than 26 characters in length (you gave 30) >>> hash_identifier(0, 10, group=4) 'cy-2dr6-rg46' >>> hash_identifier(0, 10, group=4, upper=True, prefix='M-') 'M-CY-2DR6-RG46' R'