Fork me on GitHub
2/9/2006

PyTils - простой обработчик русского текста

Вдохновленный getRelativeTime() и RuTils, написал PyTils - обработчик русского текста. Что умеет 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 добавлять: Ответы пишите в комментариях.

Скачать

Последнюю версию можно получить по svn (при помощи любого svn-клиента) по адресу http://pythy.googlecode.com/svn/trunk/pytils/. А версию 0.1.0 - взять отсюда. P.S. Для создания актуальной документации по API вам понадобится epydoc

Комментарии

Все статьи