(value, max_length=63, from_left=True)
return value.decode('utf-8')
Truncate a value (typically a column name) to a certain number of characters,
    using a hash to ensure uniqueness.
Truncate a value (typically a column name) to a certain number of characters,
    using a hash to ensure uniqueness.
Truncate a value ( typically a column name ) to a certain number of characters using a hash to ensure uniqueness .
def truncate_value(value, max_length=63, from_left=True):
    """
    Truncate a value (typically a column name) to a certain number of characters,
    using a hash to ensure uniqueness.
    """
    hash_length = 8
    truncated_length = max_length - hash_length - 1
    value = value.encode('unicode-escape')
    if from_left:
        truncated_value = value[-truncated_length:]
    else:
        truncated_value = value[:truncated_length]

    if len(value) > max_length:
        short_hash = hashlib.sha1(value).hexdigest()[:hash_length]
        return '{}_{}'.format(truncated_value.decode('utf-8'), short_hash)
    return value.decode('utf-8')
def truncate_value ( value , max_length = 63 , from_left = True ) : hash_length = 8 truncated_length = max_length - hash_length - 1 value = value . encode ( 'unicode-escape' ) if from_left : truncated_value = value [ - truncated_length : ] else : truncated_value = value [ : truncated_length ] if len ( value ) > max_length : short_hash = hashlib . sha1 ( value ) . hexdigest ( ) [ : hash_length ] return '{}_{}' . format ( truncated_value . decode ( 'utf-8' ) , short_hash ) return value . decode ( 'utf-8' )