Показаны сообщения с ярлыком Python. Показать все сообщения
Показаны сообщения с ярлыком Python. Показать все сообщения

4 ноября 2014 г.

Модуль выявления и обработки русской ненормативной лексики на Python

Вообще, пресечь мат (ненормативную лексику) в данных, поступающих от пользователя и никак не модерируемых — задача сложная и вряд ли решаемая. Пользователь для достижения цели (написания мата) может использовать как богатые возможности русского языка для словообразования, так и различные уловки: вставка каких-то символов между буквами, замена букв на похожие. Даже описать весь спектр возможностей — колоссальный труд. И, надо сказать, такие попытки предпринимались. Но я решил обойтись "малой кровью". Понятно, что бороться с матом сложно. Но можно помочь в модерации.

19 сентября 2014 г.

Выполнение задачи точно один раз в Celery

При количестве используемых веркеров больше одного, задача может отработать несколько раз. Порой такое поведение не нужно. И для такого случая Celery даже предлагает решение.

5 сентября 2014 г.

Основы Celery для Django

При создании некоторых web-приложений порой требуется выполнять задачи асинхронно запросу пользователя или периодически.

К первым можно, например, отнести отправку уведомлений по электронной почте. В этом случае невозможно гарантировать быструю обработку запроса. Поэтому отправку уведомления можно поместить в параллельный поток и запрос не будет зависеть от скорости этой самой отправки.

Ко вторым относятся задачи, обычно размещаемые в cron.

И здесь на помощь как раз может придти система типа Celery — асинхронная очередь задач, основанная на передаче сообщений. Надо сказать, что Celery можно и нужно использовать не только в web-приложениях. Но здесь я расскажу о ней применительно к популярному web-фреймверку Django. Еще стоит оговориться, что я раскрою лишь малую часть системы Celery (достаточную для использования в Django), потому как её возможности достаточно велики.

25 июля 2013 г.

Обработчик данных сервиса Gismeteo на Python

Вытащил из прошлого код для обработки XML данных сервиса, предоставляющего прогноз погоды сайта gismeteo.ru. Немного "причесал" его, оформил и выложил на githab. Также есть на pypi.

Модуль формирует данные в красивые строки.

9 июля 2013 г.

HTML purifier на Python. Обновление до 0.1.3

К модулю удаления тегов и атрибутов из HTML добавил Django-поля модели и Django-поля форм.

5 июля 2013 г.

HTML purifier на Python

Для чистки HTML-кода от тегов, сущностей и/или комментариев на Python можно использовать различные подходы. Можно использовать, например, замечательную библиотеку bleach. Но мне не хватило его гибкости и смущает производительность.

7 ноября 2011 г.

Хранение булевых полей в базе данных

Очень часто встречается ситуация, когда в базе данных необходимо хранить уйму битовых полей. Банальными решениями, конечно же, будут вставка необходимых колонок, несущих булевый смысл или хранение строки с перечислением всех необходимых сущностей. Но оба решения видятся мне громоздкими, не производительными и не гибкими. Более элегантным видится хранение булевых значений в одном целочисленном поле. Идея, конечно же, далеко не нова, но опишу её по-своему.

8 сентября 2011 г.

Использование компилятора ресурсов pyrcc4 в PyQt

При использовании замечательной питоновской библиотеки PyQT для компиляции ресурсов (например файлов изображений) в код модуля применяется утилита, поставляемая вместе с библиотекой. Находится она в папке bin (а иногда в корне библиотеки) и называется pyrcc4.

30 мая 2011 г.

Как сделать Captcha для Django

Посмотрев примеры CAPTCHA для Django в сети, не нашел понравившийся. Поэтому решил набросать не сложную свою.

11 апреля 2011 г.

Расширение класса при создании свойствами метакласса в Python 2.6

Во вновь создаваемые классы порой требуется добавить одни и те же атрибуты. Безусловно, это можно решить в ручную, используя механизм наследования. Но тогда код будет разбросан по определениям расширяемых классов. Понятно, что это не совсем удобно. Начиная с версии 2.6 в Python можно решить элегантно эту задачу, используя метаклассы.