среда, 31 октября 2012 г.

Быстрая авторизация на pyramid при помощи persona (Перевод)


Несколько дней назад, когда вышла первая бета persona, я подумал, что было бы неплохо использовать этот механизм аутентификации для моего следующего проекта. По поводу pyramid документация persona отсылает к записи в блоге под названием: Painless Authentication with Pyramid and BrowserID, которая описывает как использовать pyramid_whoauth с repoze.who.plugins.browserid для использования persona в pyramid.
К сожалению, этот метод всего лишь предоставляет 403-ю страницу с кнопкой входа и нет никакого очевидного способа разместить эту кнопку где-то ещё. Быстрый взгляд на исходники показывает, что сделать это не так уж и просто, так как большая часть работы выполняется в пределах wsgi приложения. Чтобы получить кнопку для входа мне бы пришлось переписать javascript, который взаимодействует с persona api, и, возможно, большую часть кода для входа для сохранения csrf верификации.
Так что вместо того, чтобы переписывать половину и пытаться работать с существующей реализацией, я решил написать код с нуля и, как мне кажется, неплохо было бы сделать это в виде библиотеки. Я назвал его pyramid_persona и он доступен на pypi. README объясняет как его использовать, но тут я хотел бы привести более наглядную демонстрацию.

вторник, 30 октября 2012 г.

Используем Python для редактирования ярлыков (Перевод)


Некоторое время назад я писал о том, как можно создавать ярлыки для программ в Windows. Это всё хорошо, но иногда нам приходится обновлять программы, что может быть связано с изменением пути к программе, а в таком случае надо и поменять к ней ярлык. К сожалению, многие пользователи часто меняют имя ярлыка, так что найти его становится тяжело. Однако, как всегда Python облегчает эту задачу и я покажу как.

Создать ярлык - the hard way (Перевод)

Маленькое объяснение: ярлыки хранятся как файлы .lnk, но представлены они внутри шелла как объекты IShellLink, чья реализация IPersistFile используется для хранения ярлыка. Поэтому, чтобы создать ярлык Вы сперва создаёте объект IShellLink, используете методы интерфейса IShellLink для заполнения деталей, а затем вызываете метод IPersistFile.Save для создания ярлыка на диске.

Создаём ярлыки при помощи Python (Перевод)


На работе часто приходится заниматься системным администрированием и для этого я использую скрипты на Python. Например, почти все скрипты входа в систему написаны на Python (некоторые из них портированы с Kixtart). В течении этого года мне пришлось заниматься созданием ярлыков для новых приложений, которые должны быть расположены на рабочем столе, в меню "все программы" или и там и там. В этой статье я расскажу о том, как решить эту проблему.
Обратите внимание, эта статья касается только Windows!!!

stevedore 0.6 (Перевод)


Что такое stevedore?


Python облегчает динамическую загрузку кода, позволяя Вам настраивать и расширять ваши приложения отыскивая и загружая расширения (плагины). Многие приложения реализуют для этого свои собственные библиотеки, используя __import__ или importlibstevedore позволяет Вам обойтись без этого создавая setuptools entry points. Код управления этой точкой обычно повторяется, так что stevedore предоставляет классы для управления этими шаблонами.

Что нового?

  • Добавлен TestExtensionManager для написания тестов для классов, которые используют менеджер расширений
  • Изменён EnabledExtensionManager для загрузки расширений до вызова проверяющей функции, так что можно проверить может ли быть плагин доступен.
Установки

Посетите страницу проекта stevedore для ссылки загрузки и инструкций по установке.


Источник

понедельник, 29 октября 2012 г.

Python сообщество и конференции

Уважаемые читатели, а кто-нибудь в курсе, есть вообще живая юзер-группа Python в России? Проводятся ли конференции? Интересно было бы сделать?

Создаём QR коды на Python (Перевод)


Как-то раз я задумался: было бы забавно создать программу при помощи wxPython, которая генерирует QR коды и затем отображает их на экране. Поскольку, как понятно, я хотел написать её на Python, то после недолгих поисков я обнаружил трёх кандидатов на это дело:
Я воспользовался python-qrcode и pyqrnative, так как они прекрасно работают как на Windows, так и на Mac и Linux. Кроме того, они не требуют ничего больше, только Python Imaging Library. Проект pyqrcode требует дополнительных модулей и не работает на Windows, так что я даже не стал с ним заморачиваться. В итоге я взял старый код моего  Photo Viewer и немного его переиначил, чтобы получить генератор QR кодов. Если интересно - давайте поподробнее!

Релиз Demakein 0.2: Шалмей (Перевод)


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

воскресенье, 28 октября 2012 г.

Программирование работы с SSH при помощи Paramiko (Перевод)


OpenSSH - это вездесущий метод удалённого безопасного доступа к машине и передачи файлов. Многие - системные администраторы, инженеры автоматизации тестов, веб-разработчики и другие люди используют этот методы ежедневно. Написание скриптов для ssh на Python может быть тяжёлым занятием, но модуль Paramiko позволяет решить эту задачу проще.
Это репринт статьи, написанной для Python Mag­a­zine в колонку Com­pletely Dif­fer­ent и опубликованной в октябрьском выпуске 2008 года. Тут она приводится в оригинальной форме, со всеми ошибками и т.д.

Тяжёлый свинец (Перевод)


Забавно, как иногда идёт наша жизнь. Я не работал с Plumbum практически с их майского релиза, и вдруг такие быстрые изменения. Версия 1.0 вышла не так давно, в этом месяце, за ней последовала версия 1.0.1, куда была добавлена поддержка PuTTY на Windows и исправлены некоторые ошибка, и вот теперь я счастлив представить версию 1.1, которая уже почти на носу (запланирована в середине ноября). В этом релизе будет добавлена поддержка Paramiko.

Python 101: Перемещение файлов между серверами (Перевод)


Если Вам часто приходится заниматься системным администрированием, тогда Вы знаете, что иногда Вам нужен скрипт, который бы перемещал файлы с одного сервера на другой. Я не системный администратор, но мне часто приходится сталкиваться с такой задачей. У Python есть сторонний пакет для этой цели. Мы посмотрим на paramiko, который зависит от PyCrypto (скачать PyCrypto можно с PyPI).

среда, 17 октября 2012 г.

wxPython in Action. Глава 12. Манипуляции с изображениями.

В этой главе Вы узнаете как:

  • Загружать изображения и создавать их
  • Создавать устройства контекста (device context)
  • Рисовать в устройствах контекста
  • Писать текст в устройствах контекста
  • Работать с карандашом, кистью и координатами устройств контекста

четверг, 11 октября 2012 г.

doctest для одной функции (Перевод)


К сожалению, нет такой функции вроде doctest.testfunc или doctest.testclass, или, на худой конец, doctest.testobj. Однако, Вы можете запустить доктест для одной функции или класса при помощи doctest.run_docstring_examples, вроде того:
doctest.run_docstring_examples(myfunction, globals=globals())
"Вот и славно", подумал я, "Так как моя функция не вызывает никаких глобальных переменных, я могу передать пустой словарь!" Не тут то было... run_doctstring_examples требует словарь ваших глобальных переменных, так как именно оттуда он получает объект для теста. Иначе вы получите ошибку:
NameError: name 'myfunction' is not defined
Документация говорит, что эта функция "используется редко", но по мне она очень полезна для интерактивного руководства на IPython Notebook, над чем я вскоре надеюсь начать работать!


Источник