Архив

Публикации с меткой ‘Python’

Virtualenvwrapper: Автоматический переход в папку с проектом.

Есть такие тулзовины - virtualenv и virtualenvwrapper, которыми я достаточно активно пользуюсь, как и любой вменяемый питонаст. Так вот, я уже джва года жду такую фичу: чтобы когда активируешь виртуальное окружение, автоматом переходить в папку с репозиторием.

Читать далее...

PIP: Как установить psycopg2 под Ubuntu Linux.

23 октября 2013 Нет комментариев

Очередная шпаргалка из коллекции проблемных для pip пакетов. На этот раз, речь пойдёт об установке с помощью pip psycopg2 - драйвера для работы с БД postgresql. Список необходимых дополнительных библиотек под катом. Читать далее...

Python: Как сделать progress-bar в консоле?

11 сентября 2013 2 комментария

Давненько у меня возникал вопрос как сделаны прогресс-бары в консольных приложениях и как сделать нечто подобное самому. Но, вопрос никогда не стоял серъёзно, поэтому, максимум - я просто выводил проценты прогресса без каких-либо баров.

Читать далее...

Virtualenv: Ошибки после обновления версии Python.

Как я писал в прошлом посте, недавно обновил Ubuntu до 13.04. Как и ожидалось, всплыло ряд проблем, и вот новая из них: обновился python до 2.7.4 и старые virtualenv'ы перестали работать. Выглядит это примерно так:

Читать далее...

Ghost.py: Реализация sleep с обработкой событий.

Вообще мне Ghost.py не очень пока нравится. Судя по его версии (у меня Ghost.py 0.1b2) - достаточно сырой продукт. Нет некоторыз полезных shortcut'ов, некоторые фичи работают не очень хорошо (например, click - генерирует только JS-событие click, а для ExtJS надо бы mouseDown, для полной эмуляции клика мышкой - ещё и mouseUp). Называть пакет ghost и добавлять в него модуль ghost - тоже не лучшая идея, на мой взгляд (ну их, эти name collisions). Нет функции sleep, может это и плохо использовать именно sleep, но иногда так гораздо удобней, а в случае, если это будет работать плохо, - можно и переделать.

Читать далее...

Django: Не проходит аутентификация в LiveServerTestCase.

На одном проекте на Django начал писать функциональные тесты на Ghost.py. Написав первый тест на регистрацию пользователя, потратил достаточно много времени (во всяком случае, больше, чем хотелось бы) в поисках причины почему не проходит аутентификация. Причём по логам и через дебагер аутентификация проходит успешно, но следующий запрос - редирект на страницу входа.

Читать далее...

PIP: Как установить PySide под Ubuntu Linux.

PySide - одна из библиотек биндингов к Qt, альтернатива PyQt. Разница между ними несущественная и код написанный под PyQt может работать почти без изменений под PySide. Основное преимущество PySide - использование LGPL лицензии против GPL PyQt, которая (LGPL) более "либеральная" и позволяет использовать линковку из проектов с закрытым исходным кодом.

Читать далее...

Django: Решение проблемы с кириллицей при использовании slugify.

14 апреля 2013 1 комментарий

Далее следует более-менее подробное описание проблемы и фикса. Если о проблеме вы в курсе и вас интересует только решение - смело листайте в конец поста.

TL/DR;

В django есть функция для генерации т.н. slug'ов. Перевести одним словом этот термин достаточно сложно, но, кто имеет хоть какой-то опыт работы с django должен знать что это такое. Если раскрыть суть - часть ЧПУ (человеко-понятного URL), которая относится к заголовку сущности. Например, slug для этого поста в терминах django было бы таким: "django-fix-non-latin-slugify" (если я не поменял URL записи после написания этих строк).

Читать далее...

Flask: Создание root-пользователя в flask-security и установка хешированного пароля.

10 апреля 2013 Нет комментариев

Вкратце:
Flask - micro web framework. По сути, тонкая обёртка вокруг wsgi-сервера werkzeug.

Flask-Security - расширение (extension) для flask, которое реализует возможность аутентификации и авторизации ("входа на сайт", другими словами - логина), регистрации пользователей. Flask-Security сам по себе использует другие сторонние расширения для реализации нужного функционала (например: flask-login для логина, flask-wtf для обработки форм).

Задача: во время инициализации БД создать пользователя с паролем. Примерно как это делает Django при первом syncdb с подключенным приложением django.contrib.auth.

Читать далее...

Python: Объяснение работы yield, итераторов и генераторов.

9 апреля 2013 8 комментариев

Основной источник для этого поста - вопросы и ответы на stackoverflow.

Для понимания что делает "yield", вы должны понимать что такое генераторы. Для понимания что такое генераторы - должны знать об итераторах и итерируемых объектах.

Читать далее...

PIP: Как установить pylibmc под Ubuntu Linux.

Мини-заметка о том, как установить последнюю версию pylibmc с помощью pip в Linux. Читать далее...

PIP: Как установить MySQL-python под Ubuntu Linux.

В очередной раз, при установке через pip MySQL-python, наткнувшись на отсутствие требуемых библиотек, решил записать процесс установки. Читать далее...