# -*- coding: utf-8 -*- from django.core.exceptions import ValidationError import pytils, re def is_positive_integer(data, msg='Введите правильное значение'): """ function checking if data positive integer """ if not data: return elif data.isdigit() and int(data) > 0: return int(data) else: raise ValidationError(msg) def translit_with_separator(string, separator='-'): """ Trsanslit string and replace "bad" symbols for separator usage: translit_with_separator('введите, слово', '_') return 'vvedite_slovo' """ #make string unicode string = string.strip() string = u'%s'%string string = string.replace(u'\u200e', '') #make string translit st = pytils.translit.translify(string) #replace "bad" symbols for '-'symbol st = st.replace('.', '') st = re.sub('[^\w\-_\.]', separator, st) #delete dublicating separators st = re.sub('%s+'%separator, separator, st) # delete if last symbol == separator if st[-1] == separator: st = st[:-1] return st.lower()