вторник, 31 июля 2012 г.

Определение имени процесса из Python (Перевод)


Поиск имени программы из которой был запущен модуль Python может быть сложнее, чем кажется на первый взгляд и поиск причин этого привёл меня к нескольким интересным результатам.
Несколько недель назад на OpenStack Folsom Summit, Mark McClain показал интересный код, который он обнаружил в исходниках Nova:
nova/utils.py: 339
script_dir = os.path.dirname(inspect.stack()[-1][1])
Этот код - часть логики поиска конфигурационного файла, который находится в папке, указанной относительно места запуска исходной программы. В этом коде мы смотрим на стек в поисках основной программы и оттуда получаем её имя.
Похоже, что этот код взят из ответа на вопрос с StackOverflow, и когда я первый раз его увидел, я подумал, что для решения такой проблемы это слишком проблемное решение. У Марка была похожая реакция и он спросил меня, не знаю ли я более простого способа сделать это.

понедельник, 30 июля 2012 г.

7.3.5. namedtuple() - фабричная функция для кортежей с именованными полями


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

пятница, 27 июля 2012 г.

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


Поскольку не каждая программа на Python требует тщательного анализа производительности, отрадно знать, что когда такая необходимость возникает у Вас всё же есть отличные инструменты для этой цели.
Анализ производительности программы состоит в поиске ответа на четыре вопроса:
  1. Как быстро выполняется программа?
  2. Какое место определяет скорость её выполнения?
  3. Как много используется памяти?
  4. Где утечки памяти?
Посмотрим, что же у нас есть для ответа на эти вопросы.

Релиз CFFI 0.2


Вышел релиз CFFI 0.2 (а вскоре ожидается и 1.0). CFFI это способ вызова C из Python. Этот релиз касается только CPython 2.6 или 2.7. Поддержка PyPy будет в ветке ffi-backend, но она ещё не реализована.Поддержку CPython 3.x сделать легко, но нужна для этого помощь.
Пакет доступен на bitbucket и хорошо документирован. Кроме того Вы можете просто установить его из python package index: pip install cffi
В этом релизе:

четверг, 26 июля 2012 г.

wxPython: Использование wx.Timer (Перевод)


Последние несколько недель я видел большое количество вопросов по поводу таймеров в wxPython. Так что я решил, что пришло время написать пару скриптов чтобы показать, как они работают. Я разберу два примера: в первом у меня будет один таймер, во втором - два. Robin Dunn связался со мной и несколько улучшил мои примеры, так что к этой статье приложены и переработанные варианты моих скриптов.

среда, 25 июля 2012 г.

Сериал "Python PDF" – Обзор metaPDF (Перевод)


Исследуя библиотеки для работы с PDF на Python, я наткнулся на ещё один маленький проект с названием metaPDF. Судя по указанному на сайте этого проекта, metaPDF это лёгкая библиотека для Python, оптимизированная для получения и вставки метаданных, по сути это легковесная обёртка вокруг замечательной библиотеки pyPdf. Я не уверен в том, что эта библиотека будет полена с учётом возможности работы с самой библиотекой pyPdf, так что давайте посмотрим на неё в деле.

вторник, 24 июля 2012 г.

Python 101: Загрузка файла при помощи ftplib (Пароль)


Есть несколько способов загрузки файла из интернета при помощи Python. Одним из самых популярных способов является подключение к FTP серверу и скачивание файла. Этим мы и сейчас займёмся. Всё, что нам понадобится - стандартная установка Python. В неё включена библиотека ftplib, которой нам вполне хватит.