Pytils
Материал из PythonWiki.
Содержание |
PyTils
PyTils - набор инструментов для обработки русского текста.
Последняя версия PyTils (0.2.2) доступна на PyPI: http://cheeseshop.python.org/pypi/pytils/
Если у Вас есть желание получить наиновейшую версию, то к Вашим услугам svn-репозиторий.
Что умеет PyTils:
Числительные
Pytils умеет выбирать правильную форму существительного в зависимости от числа
>>> pytils.numeral.choose_plural(15, (u"гвоздь", u"гвоздя", u"гвоздей")) u'гвоздей'
В качестве второго параметра передается кортеж с вариантами. Чтобы легко запомнить, в каком порядке указывать варианты, пользуйтесь мнемоническим правилом: один-два-пять - один гвоздь, два гвоздя, пять гвоздей.
Также pytils реализует числа прописью
>>> pytils.numeral.in_words(254) u'двести пятьдесят четыре' >>> pytils.numeral.in_words(2.01) u'две целых одна сотая' >>> pytils.numeral.rubles(2.01) u'два рубля одна копейка' >>> pytils.numeral.sum_string(32, 1, (u"гвоздь", u"гвоздя", u"гвоздей")) u'тридцать два гвоздя' >>> pytils.numeral.sum_string(21, 2, (u"белка", u"белки", u"белок")) u'двадцать одна белка'
Даты
В pytils можно получить русские даты без использования локалей.
>>> pytils.dt.ru_strftime(u"сегодня - %d %B %Y, %A", inflected=True) u'сегодня - 02 сентября 2006, суббота'
и получить величину периода:
>>> pytils.dt.distance_of_time_in_words(time.time()-10000) u'2 часа назад' >>> pytils.dt.distance_of_time_in_words(time.time()+10000, accuracy=2) u'через 2 часа 46 минут'
Транслитерация
При помощи pytils можно сделать транслитерацию:
>>> print pytils.translit.translify(u"Проверка связи")
'Proverka svyazi'
>>> pytils.translit.detranslify("Proverka svyazi")
u'Проверка связи'
В translify вывод - str, а не unicode. В detranslify вход может быть как unicode, так и str.
И сделать строку для URL (удаляются лишние символы, пробелы заменяются на дефисы):
>>> pytils.translit.slugify(u"тест и еще раз тест") 'test-i-esche-raz-test'
Интеграция с веб-фреймворками
PyTils поддерживает современные веб-фреймворки (Django, TurboGears, Pylons) и легко интегрируется с шаблонами, используемыми в них (Django templates, Kid, Cheetah, Myghty). В документации к PyTils приведены рабочие проекты-примеры для Django и TurboGears/Kid.
Материал статьи взят с сайта http://gorod-omsk.ru/blog/pythy/projects/pytils/
--RussianRex 09:50, 14 декабря 2006 (EET)

