Архив по категории ‘python’.

Новая статья про оформление графиков в Matplotlib

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

annotate_02

Новая статья «Как рисовать гистограммы в Matplotlib»

Продолжаю писать серию небольших статей про использование библиотеки Matplotlib, предназначенной для построения различных графиков на языке Python. Сегодня выложил статью Как рисовать гистограммы.

bar_07

Новая статья «Разбор параметров командной строки в Python»

Выложил новую статью Разбор параметров командной строки в Python, в которой рассматриваются основные возможности стандартной Python-библиотеки argparse, говорится о том, как создавать именованные и позиционные параметры, рассматриваются различные варианты их использования, в том числе в виде флагов, а также рассказывается, как оформлять справку с использованием этой библиотеки.

Использование библиотеки Matplotlib. Как использовать эффект рисования от руки

В Matplotlib 1.3 появилась возможность применения эффекта рисования от руки, чтобы графики выглядели в стиле комиксов с сайта xkcd.com. Статья Как использовать эффект рисования от руки показывает, как можно использовать эту возможность.

Читать далее ‘Использование библиотеки Matplotlib. Как использовать эффект рисования от руки’ »

wxPython и Drag’n’Drop файлов в Linux

wxPython и Drag'n'Drop файлов в Linux

В промежутках между работой и сном постепенно доделываю OutWiker, очередную версию которого собираюсь в скором времени выложить. Одним из изменений в этой версии будет то, что теперь можно будет перетаскивать прикрепленные файлы из окна OutWiker’а в другие приложения. Но когда я только начинал добавлять эту возможность, то не думал, что потрачу на нее столько сил и нервов, и все из-за одной мерзопакостной ошибки в wxWidgets.

Началось все хорошо. Сидя под Windows, реализация возможности перетаскивать файлы в другие приложения заняла считанные строки:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def onBeginDrag(self, event):
	"""
	Начало перетаскивания файлов
	"""
	data = wx.FileDataObject()
 
	for fname in self.getSelectedFiles():
		# Добавляем вложенные файлы в список.
		data.AddFile (fname)
 
	dragSource = wx.DropSource (self)
	dragSource.SetData(data)
 
	result = dragSource.DoDragDrop ()

Читать далее ‘wxPython и Drag’n’Drop файлов в Linux’ »

История одного глюка или дело о букве «Р»

История одного глюка или дело о букве "Р"

На днях столкнулся со странным глюком, найденным в OutWiker‘е, на исправление которого вместе с поимкой виновника ушло два вечера.

Не буду долго описывать то, как я наткнулся на этот глюк, лучше перейдем сразу к его сути. А суть состоит в том, что для хранения и парсинга настроек страниц в программе используется стандартный класс ConfigParser (с некоторой тонкой оболочкой над ним, но в данном случае это не важно) — очень уж в нем удобно разбирать строки вида xxx = yyy. Так вот, неожиданно оказалось, что если yyy кончается на русскую букву «Р», то при преобразовании yyy в unicode бросается исключение о том, что кодек utf8 не может преобразовать строку, так как данные неожиданно закончились (‘utf8’ codec can’t decode byte 0xd0 in position __: unexpected end of data). Причем, в середине строки буква «Р» нормально преобразовывалась. Добавление пробела к концу строки, которая кончалась на «Р», ничего не дало, зато навело на мысль, что дело может быть в обрезании строки при выкидывания начальных и концевых пробелов, переводов строк и т.п. При этом все остальные русские буквы на конце обрабатывались без проблем.

Читать далее ‘История одного глюка или дело о букве «Р»’ »

Про wxPython

Про wxPython

Где-то года полтора назад (в конце 2008 года) я выкладывал обзор дизайнеров интерфейса для wxPython. На днях решил посмотреть что же изменилось за это время. Прошелся по упомянутым в обзоре сайтам и, честно говоря, удивился, что за это время из всех программ обновлялась только wxGlade. Беглый поиск по гуглу тоже не дал никаких новых IDE или дизайнеров.

Жаль, что такие полезные программы не развиваются. Правда, есть парочка платных софтин для построения интерфейса на wxPython/wxWidgets, которые обновлялись не так давно, но мы их считать не будем. 😛

Немного настораживает ситуация с обновлением самой библиотеки wxPython. Последняя версия (2.8.10.1) вышла 14 мая прошлого года, осенью прошлого года вышла версия 2.9 wxWidgets, на основе которой построена wxPython, но библиотека wxPython до сих пор не обновилась. Правда, покопавшись в рассылке wxPython обнаружилось, что версия 2.9 должна скоро выйти, вроде бы уже есть предварительные сборки.

Еще жаль, что wxPython не поддерживает Python 3.x, и когда начнется работа по портированию на него не понятно. Все в той же рассылке писали, что разработчики обсуждали, а не начать ли работу по портированию в этом году, чем все это закончилось я так и не понял, до этого писали, что портирование на Python 3.x имеет у разработчиков низкий приоритет.

Если честно, то очень расстраивает то, что такая замечательная библиотека как wxPython так медленно развивается. С точки зрения пользователя мне намного больше нравятся проги, написанный под wxPython, чем под pyGTK. Все-таки wxPython/wxWidgets для отображения интерфейса использует API той среды, где программа запускается. Поэтому, например, в винде все диалоги открытия/сохранения окон будут выглядеть привычно для пользователя, в отличие от того же pyGTK.

NetBeans IDE for Python

NetBeans IDE for Python

Недавно вышла новая версия NetBeans IDE 6.5 и, в том числе, и сборка под названием NetBeans IDE for Python. Вообще с различными IDE для Python у меня как-то не складывается, и я в последнее время использую только редактор SciTe, но по возможностям мне нравится связка Eclipse + Pydev, но как же она тормозит… да и оперативку съедает только так. Не смотря на то, что NetBeans тоже написана на  Java, решил все-таки посмотреть что там к чему.

Как ни странно, оказалось, что IDE работает сравнительно шустро, и аппетиты к оперативке у нее умеренные — если открыть несколько проектов по одному файлу в каждом, то процесс занимает около 100 Мб. Поэтому я решил поподробнее познакомиться с этой IDE.

Читать далее ‘NetBeans IDE for Python’ »

Python 2.7?

Python 2.7?

Похоже, что нас ждет еще и Python 2.7. По крайней мере на официальном сайте появились страницы с названием What’s New in Python 2.7 и Python 2.7 Release Schedule. Обе страницы пока еще ничего кроме заголовков не содержат, но само их появление настораживает.

Я думал, что после версии Python 2.6 разработчики переключатся на Python 3.0.