PyTils - библиотека для простой обработки русского текста.
==========================================================

Кратко
------

Pytils - простой обработчик русского текста на Python. Идея позаимствована у 
[Julik](http://live.julik.nl) и его [RuTils](http://rutils.rubyforge.org/).

Автор pytils - [Pythy](mailto:the.pythy@gmail.com).

Ссылки
------

 *  [Pythy на code.google.com](http://code.google.com/p/pythy/)
 *  [Пост о pytils в блоге](http://gorod-omsk.ru/blog/pythy/2006/09/02/pytils/)

Как скачать
-----------

При помощи любого
[svn-клиента](http://subversion.tigris.org/links.html#clients)
можно получить последнюю версию pytils по адресу
[http://pythy.googlecode.com/svn/trunk/pytils/](http://pythy.googlecode.com/svn/trunk/pytils/).

Как использовать
----------------

Во-первых, **все** входящие строки - unicode. И выходящие - тоже (за малыми
исключениями, о них ниже). В случае, если Вы передадите str, получите
AssertionError.

Pytils содержит следующие модули: 

 1.  `numeral` - для обработки числительных
 2.  `dt` - русские даты без локалей
 3.  `translit` - транслитерация

API модулей смотрите в директории 
[html](html/index.html).

Числительные
------------

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(5, 1, (u"гвоздь", u"гвоздя", u"гвоздей"))
    u'пять гвоздей'
    >>> pytils.numeral.sum_string(3, 1, (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'

