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

pylibftdi v0.10 released (Перевод)

Я недавно выпустил версию 0.10 pylibftdi - "минимального питонного интерфейса для libftdi", предназначенного для наиболее лёгкого (из всех возможных?) способов работы с чипами и модулями FTDI имитирующими последовательный порт при подключении к usb. Версия 0.10 добавляет несколько новых возможностей и исправляет несколько ошибок.
Долгое время я был в плену заблуждения, что номера версий должны соответствовать правилам десятичной системы, и что после версии 0.9 должна идти версия 1.0. Но, поскольку, я хочу, чтобы версия 1.0 была стабильной (а нынешний статус я всё ещё рассматриваю как "бета"), я попал в тупик. В итоге я решил, что новая версия будет иметь номер 0.10. В любом случае, я всё ещё хочу улучшить документацию (и не только) перед выпуском 1.0.
Изменения в 0.10
  • Запуск юнит-тестов теперь проще благодаря некоторым реорганизациям - просто выполните python -m unittest discover в папке верхнего уровня
  • Поддержка устройств FT232H - это другой PID (USB product ID) для тех устройств, которые я раньше использовал - в основном FT245BM/RL, FT232R/RL. Все эти устройства имели PID 0x6001, тогда как новый FT232H имел PID 0x6014. Я экспериментировал с дополнительными параметрами для определения VID и PID целевого устройства, но это оказалось слишком сложно для конечного пользователя, а я бы хотел, чтобы pylibftdi можно было бы использовать с параметрами по умолчанию для большинства основных операций. В итоге я взял два списка (USB_VID_LIST,USB_PID_LIST) и код поиска устройства должен просто провести итерации по их декартову произведению (то есть вложенный цикл, реализованный через itertools.product). Так что добавление новых PID в будущем будет простым - надо лишь добавить его в  USB_VID_LIST, и тогда устройство может быть открыто без параметров конструктором Device() если на USB шине есть только FTDI устройство.
  • Устройство при открытии устанавливается в параллельный режим. В рассылке libftdi был спор о том, как эту логику реализовать, но в pylibftdi это сделать достаточно легко. Вообще это позволяет избежать неопределённого состояния, так как раньше, если предыдущее приложение, которое работало с устройством в режиме BitBang, то новое открытие устройства при помощи Device() отрывало его тоже в режиме BitBang, а не в ожидаемом  параллельном режиме (для устройств, которые поддерживают оба режима).
  • В конструктор Device() добавлен параметр 'buffer_size' (по умолчанию равен 0, что соответствует поведению раньше), который разбивает на куски операции чтения и записи. Это позволяет избежать проблемы, когда вызов (например) dev.write ('hello' * 100000) при передаче 9600 занимал невероятно много времени, а так как он протекал в контексте библиотеки (через вызов ctypes), его нельзя было прервать при помощи Ctrl-C
  • Убрана устаревшая возможность использовать Driver() как синоним Device()
  • Обновлено: Я уже сделал два дополнительных релиза в последние часы - текущая версия - 0.10.2. Одним из значимых изменений является то, что теперь субпакет exmaples включён в sdist, так что python -m pylibftdi.examples.led_flash будет работать, если у Вас диод подключён к D0 на устройстве.
Планы на будущее: причесать, добавить примеры, улучшить документацию...

Nikola 3 вышел и он хорош (Перевод)


Я только что выпустил версию 3 моего статичного генератора сайта Nikola
Это большой релиз. Вы почти не сможете найти код из предыдущей версии, который не был так или иначе изменён!
Основные возможности Nikola:
  • Блоги с тегами, лентами (feeds), архивами, комментариями и т.д.
  • Темы
  • Быстрая сборка благодаря doit
  • Гибкость
  • Небольшое количество кода (программисты смогут в нём разобраться за несколько часов)
  • использование reStructuredText и Markdown как языков для ввода данных
  • Простая галерея изображений (просто перетащите файлы в папку!)
  • Подсветка синтаксиса почти для всех языков программирования или разметки
  • Многоязычные сайты
  • Не изобретает велосипедов, а использует сущесвующие инструменты

virtualenvwrapper 3.5


Что такое virtualenvwrapper?


virtualenvwrapper - это набор расширений для инструмента Ian Bicking'а virtualenv. Расширение включает в себя обёртки для создания и удаления виртуального окружения и управления потоком вашей разработки, что упрощает одновременную работу более чем с одним проектом, не попадая при этом в конфликты, вызванные их зависимостями.

Что нового?

  • Переписана cpvirtualenv для использования virtualenv-clone. Это сделал Justin Barber (barberj). Это так же решает проблему с тем, что cpvirtualenv не уважает флаг --no-site-packages (issue 102).
  • Апдейт документации со ссылкой на порт virtualenvwrapper-win David'a
    Marble.
  • Используется command чтобы избежать возможности именования функций так же как и общие утилиты. (issue 119)

Установка

Посетите страницу проекта virtualenvwrapper для получения инструкций по установке.


Источник

воскресенье, 10 июня 2012 г.

Python 101: Как отправить форму (Перевод)


Сегодня мы потратим немного времени, рассматривая три разных способа отправки веб-формы. В нашем случае мы поищем на duckduckgo.com слово "python" и сохраним результат в HTML файле. Мы будем использовать встроенный модуль urllib и два модуля от сторонних производителей: requests и mechanize. В итоге мы получим три маленьких скрипта. Приступим!

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

Python 101: Как скачать файл


Скачивание файлов из интернета - это, наверно, та задача, с которой рано или поздно сталкивается любой программист. Самый популярный способ сделать это - использовать модули urllib или urllib2 для работы через http. Кроме этого у Вас есть модуль для работы с ftp. Наконец, у Вас есть сторонний модуль под названием request. В этой статье мы посмотрим как работать с модулями для http.

четверг, 7 июня 2012 г.

Разработка ядра Python: Как подтвердить патч?

Как я уже говорил, я старался найти что-то,что я мог бы исправить в Python и сообщить об этом. Пока я писал другую статью, я столкнулся с маленькой ошибкой в Windows разделе руководства по разработке. Хотя исправлять документацию не так прикольно, тем не менее  решил, что для меня это наиболее подходящая для меня область (я в последнее время как раз в основном занимаюсь документацией). Так что я опишу вам этот процесс.

Анонс Tracelib 0.1


Tracelib - это набор утилит, который облегчает трассировку кода на Python.

Вы сможете использовать TracerManager, который позволяет сосуществовать вместе нескольким трассировочным функциям. Его легко можно активировать / деактивировать как вручную, так и с помощью менеджера контекста.

воскресенье, 3 июня 2012 г.

wxPython in Action. Глава 10. Создаём и используем меню в wxPython.

В этой главе Вы узнаете:
  1. Как создавать меню
  2. Как работать с элементами меню
  3. Как добавлять подменю, всплывающие меню и собственные виды меню
  4. Как создавать удобные меню

Rst2pdf получил новый релиз (0.92) и сайт


Только то вышел новый релиз rst2pdf - 0.92. Rst2pdf - это инструмент для конвертации реструктурированного текста в PDF без использования многомегабайтного ПО. Он поддерживает стили, многостраничные слои, встроенные шрифты, векторные изображения и многое другое.

Кроме того, теперь у него есть настоящий сайт: http://rst2pdf.ralsina.com.ar

Пробуйте и сообщайте о всех ужасных и очевидных ошибках, которые я забыл исправить (что происходит в большинстве релизов rst2pdf ;-)

Источник