Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3483 posts.

GUI » tkinter events » Дек. 10, 2009 13:21:48

Есть задача, перерисовать окно при изменении размера. Есть окно Toplevel в которое выводится график, событие которое может поймать изменение окна <Configure>, при этом варианте, если я изменю размер окна, график перерисовывается много раз и возникает большая задержка, то есть хорошо бы было поймать <ButtonRelease-1>, чтоб окно перерисовалось однажды, по окончании изменения размера, но это событие не происходит (при изменении размера окна, только при клике внутри окна). Есть ли у кого-нить идеи по поводу повышения производительности моего метода.

Python для новичков » анализатор текста » Дек. 8, 2009 07:33:37

требуется переделать строки типа
$f = clamp(0, 1, var1.x - 10 );
var1.y = $f + 10;
var1.z = $f + 20;

в текст типа:
$xxx1 = MINUS(“var1.x”, 10);
$xxx2 = CLAMP(0,1, $xxx1);

$xxx3 = PLUS($xxx2, 10);
SET(“var1.y”, $xxx3);

$xxx4 = PLUS($xxx2, 20);
SET(“var1.z”, $xxx4);

функций буквально штучек 5, переменные типа $var, ( ) +-*/

Есть чтото типа yacc (с которым я не знаком)?
Чтобы оно по неким правилам возвращало операции в порядке приоритета, а я мог возвращать текст.

funcparserlib мне поможет?

спасибо.

Google App Engine » GAE and urllib2 ? » Дек. 7, 2009 21:07:45

Подскажите, столкнулся со странным поведением гуглодвижка,
есть небольшой скрипт, в котором есть:

import urllib2

rsite = urllib2.urlopen(link)
rsite_html = rsite.read()

rsite.close()


На локалхосте все работает, ошибок не выдает. Но при попытке загрузить (не запустить на сервере - а просто загрузить) приложение на сервер, откатывает обновление с ошибкой:

urllib2.URLError: <urlopen error (8, ‘EOF occurred in violation of protocol’)>

Как исправить, и что собственно, не так?


WinXP , python 2.5, GAELauncher 1.2.8

PS:
Разобрался немного, похоже я нашел простой способ “поламать” GAE O_o , после переустановки и переподключения приложения ошибка пропала.

GUI » tkinter: смена картинок » Дек. 5, 2009 20:24:40

Всем доброго!
Подскажите как сделать смену картинок в canvas, пишу так:
# -*- coding: utf-8 -*-

import sqlite3
import Tkinter
import Image
import ImageTk

def insimg():
# c.delete(slide)
cu.execute('select imgdb from dbimg where id = 1')
for row in cu:
fileimg1 = row[0]
img = ImageTk.PhotoImage(data = fileimg1)
c.create_image(0, 0, image=img, anchor="nw")


cc = sqlite3.connect(database="files.s3db")
cu = cc.cursor()

tup = Tkinter.Tk()
F = Tkinter.Frame(tup)
F.pack()
numfiles = Tkinter.StringVar()

# Номер изображения
s1 = Tkinter.Spinbox(F, from_=0, to=72, textvariable=numfiles, command = insimg)
s1.grid(row=0, column=0)

# Выводим изображение
c = Tkinter.Canvas(F, width=32, height=32)
c.grid(row=1, column=0)
# ---------------------
cu.execute('select imgdb from dbimg where id = 0')
for row in cu:
fileimg = row[0]
# ---------------------

#src_img = Image.open(r'C:\BASE\baseico\ico_00.bmp')

img = ImageTk.PhotoImage(data = fileimg)
slide = c.create_image(0, 0, image=img, anchor="nw")


#Закрываем GUI
btclose = Tkinter.Button(F, text = u'Закрыть', command = lambda: tup.destroy())
btclose.grid(row=2, column=0)

tup.mainloop()
cc.close()
Но что-то они не меняются.

GUI » QlistWidget » Дек. 3, 2009 11:52:52

Всем доброго времени суток. Допустим у меня есть форма на которой компонент обозначенный в сабже. Я добавляю в этот компонент длинную строку и активируется горизонтальный скрол. Подскажите пожалуйса, можно ли сделать так, чтобы строка распределилась в ячейке (items) по границам listWidget, а не уходила в длинну. Иными словами, чтобы строчку можно было прочесть без прокручиваний :) Или подскажите компонент для этих целей…. за ранее спасибо :)

GUI » gtk.Menu.popup. Как узнать состояние меню? » Дек. 3, 2009 10:15:47

возникла необходимость в программе знать открыто Popup-Меню или нет. В описаниях gtkMenu и gtk я не нашел подходящего метода. Единственное что нашлось, это get_snapshot(). Вот примерно что получилось:
try:               # Нас случай если self.menu еще не создано
if self.menu.get_snapshot(): # Если скрин не пустой
self.activate() # выполняю функцию

except AttributeError:
pass
Однозначно – это костыль. Как мне обойтись без костыля в данном случае?

Python для новичков » ldap схемы » Дек. 2, 2009 14:15:04

Всем привет.

У меня вопрос такого характера. Балуюсь с python-ldap. Хочется получить список всех возможных схем, для какой схемы какие аттрибуты должны быть MUST. Перечитал инет, но почему-то по модулю ldap.schema информации очень мало, а официальная вообще никакая… Может я не туда смотрел ? Уточню, хочется не из существующей базы ldap тянуть данные с с самого сервера, т.е. какие схемы подключены, какие возможны objectclassы, и какие требуется обязательно задать атрибуты для конкретного object типа.

для ясности приведу пример. пользователь наживает на кнопочку “Создать новый объект”, выкатывается на выбор список возможных objectclassов, он выбирает, на экран выводится форма с необходимыми полями атрибутов которые необходимо заполнить.

Python для новичков » Как сделать py-обертку для C-модуля? » Ноя. 29, 2009 20:38:44

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

Python для новичков » 2to3.py и unicode » Ноя. 25, 2009 20:44:03

Здравствуйте помогите решить проблему, пытаюсь конвертировать утилитой 2to3.py файл

BeautifulSoupTests.py:

def testHandleInvalidCodec(self):
for bad_encoding in :
Traceback (most recent call last):
File “C:\Python31\Tools\Scripts\2to3.py”, line 6, in <module>
sys.exit(main(“lib2to3.fixes”))
File “C:\Python31\lib\lib2to3\main.py”, line 159, in main
options.processes)
File “C:\Python31\lib\lib2to3\refactor.py”, line 616, in refactor
items, write, doctests_only)
File “C:\Python31\lib\lib2to3\refactor.py”, line 276, in refactor
self.refactor_file(dir_or_file, write, doctests_only)
File “C:\Python31\lib\lib2to3\refactor.py”, line 656, in refactor_file
*args, **kwargs)
File “C:\Python31\lib\lib2to3\refactor.py”, line 332, in refactor_file
write=write, encoding=encoding)
File “C:\Python31\lib\lib2to3\refactor.py”, line 432, in processed_file
self.print_output(old_text, new_text, filename, equal)
File “C:\Python31\lib\lib2to3\main.py”, line 64, in print_output
print(line)
File “C:\Python31\lib\encodings\cp866.py”, line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)
UnicodeEncodeError: ‘charmap’ codec can't encode character ‘\xe4’ in position 37
: character maps to <undefined>

Как победить :)?

GUI » Qt: pyrcc против файлов » Ноя. 23, 2009 16:09:14

Хочется поговорить, кто что предпочитает: использовать ресурсы Qt или обычные пути к файлам. Я использую ресурсы потому что Qt начал изучать в С++ и привык к ним, плюс не надо морочиться с путями, но не уверен насколько рационален способ хранения их в .py файлах.
Кто что использует, и что можете сказать по этому поводу?

Django » Сортировка модели в admin при заполнении foreign key » Ноя. 23, 2009 14:48:16

Суть проблемы в следующем:
1. Есть model_1 для которой задана сортировка по наименованию (Meta.ordering=).
2. Есть model_2, которая ссылается на model_1 (имеет поле “model_1 = ForeignKey(model_1)”).
3. При заполнении в админке поля model_1 для экземпляра model_2, хтмл-селект поля model_1 отсортирован по id.
Необходимо, чтобы список возможных значений внешнего ключа был отсортирован по model.Meta.ordering!
Поигрался с сортировкой ModelAdmin.ordering - пустой номер, сортировка в хтмл-селекте остается по идентификатору.

ВАЖНОЕ ДОПОЛНЕНИЕ: модель model_1 наследует от абстрактной модели model_0, а сортировка Meta.ordering= задана именно для родителя и не переопределяется в наследнике!

Проблема решается созданием дефолтного менеджера для модели, который отсортирован по нужному полю.

Посмотрел обсуждение проблемы в code.djangoproject.com, в groups.google.com и т.д. - там вопросы о сортировке хтмл-селекта согласно Meta.ordering мгновенно переводятся с статус closed без объяснений.
В документации так же есть явные указания на необходимость создания Automatic Manager и use_for_related_fields = True.

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

Прежде чем открывать новый тикет и размещать патч, хотел обсудить необходимость сортировки хтмл-селекта по полю внешнего ключа в админке согласно model.Meta.ordering.

ДОПОЛНЕНИЕ: открывать тикет таким образом надо для наследования моделей.

Python для новичков » Парсинг RSS » Ноя. 23, 2009 13:47:44

Приветствую!

Оперирую таким способом - http://snipplr.com/view/16044/python-rss-feed-reader/, для примера беру http://lenta.ru/r/EX/import.xml :

import feedparser,sys

def f(data):
return data.encode("latin1","ignore")

try:
feed = sys.argv[1]
except IndexError:
feed = "http://lenta.ru/r/EX/import.xml"

d = feedparser.parse(feed)
#print f(d.feed.title),";",f(d.feed.link),";",f(d.feed.subtitle),";",f(d.version),";",f(d.encoding),";",len(d.entries)

for entry in d.entries:
print f(entry.title),";",
print f(entry.link),";",
try:
print f(entry.author_detail.name),";",
except AttributeError:
pass
try:
print f(entry.content)
except AttributeError:
pass
print
Почему пусто?

GUI » [Статья] Рисование трехмерных графиков в Python с помощью Pylab » Ноя. 22, 2009 21:35:48

Выложил статью про одну из новых возможностей в Matlotlib - рисование трехмерных графиков. Сама статья здесь - http://jenyay.net/Programming/Python3d

Инструментальные средства разработки » Автодополнение в Eclipse и __методы__ » Ноя. 22, 2009 21:02:15

Можно ли как-то в эклипсе убрать из автодополнения всякую служебную ерунду, начинающуюся на __ или лучше переместить ее в конец списка?

Python для новичков » distutils » Ноя. 20, 2009 12:32:32

Несколько вопросов:

- Как с помощью distutils получить в одной папке (или в архиве) все дерево файлов проекта для текущей оп.системы (скомпилированные .py, скомпилированные расширения, файлы ресурсов - картинок, бинарники и т.д.) ?

- setup.py build компилирует расширения в папку build/lib.linux-i686-2.5, как их вытянуть оттуда в сборку исходников и в папку с текущими исходниками (сейчас приходится копировать их вручную из build в соответствующую папку проекта) ?

- Как указать что все файлы должны оставаться на своих местах в дереве проекта и просто собраться в одну локальную папку, а не раскидываться в разные места типа /usr/lib/python2.5/site_packages.

Python для новичков » Pexpect вопрос » Ноя. 19, 2009 11:16:45

Приветствую всех!

Использую модуль pexpect для автозаполнения приглашений на ввод. Хочу написать скрипт, который автоматизирует работу ./build-key-pkcs12 (пакет OpenVPN).

import pexpect
import sys

gen = pexpect.spawn('./build-key-pkcs12 client2')
gen.expect('Country Name (2 letter code)*')
gen.sendline('\n')
gen.expect('State or Province Name*')
gen.sendline('\n')
gen.expect('Locality Name (eg, city)*')
gen.sendline('\n')
gen.expect('Organization Name (eg, company)*')
gen.sendline('\n')
gen.expect('Organizational Unit Name*')
gen.sendline('\n')
gen.expect('Common Name*')
gen.sendline('\n')
gen.expect('Email Address*')
gen.sendline('\n')
gen.expect('A challenge password*')
gen.sendline('\n')
gen.expect('An optional company name*')
gen.sendline('\n')
gen.expect('Sign the certificate?.*', timeout=2)
gen.sendline("y\n")
gen.expect('1 out of 1 certificate requests certified, commit?.*', timeout=2)
gen.sendline('y\r')
gen.expect('Enter Export Password')
gen.sendline('lalala')
gen.expect('Verifying - Enter Export Password')
gen.sendline('lalala')
gen.interact()
Получаю ошибку, что не может опознать следующую строку:

args:
searcher: searcher_re:
0: re.compile(“1 out of 1 certificate requests certified, commit?.*”)
buffer (last 100 chars):
before (last 100 chars):

y


after: pexpect.EOF
match: None
match_index: None
exitstatus: 0
flag_eof: True
pid: 25793
child_fd: 3
closed: False
timeout: 30
delimiter: pexpect.EOF
logfile: None
logfile_read: None
logfile_send: None
maxread: 2000
ignorecase: False
searchwindowsize: None
delaybeforesend: 0.05
delayafterclose: 0.1
delayafterterminate: 0.1
#
Подскажите пожалуйста, как исправить этот косяк, чувствую, что это может быть связано с переводами строк при запросе …:

Certificate is to be certified until Nov 17 01:15:52 2019 GMT (3650 days)
Sign the certificate? :y


1 out of 1 certificate requests certified, commit? y
Write out database with 1 new entries
Data Base Updated
Enter Export Password:

GUI » PyQt4: странности с QImage.bits() » Ноя. 19, 2009 10:54:20

В компилируемом С-модуле пытаюсь скопировать альфу QImage в 8-битный буфер (функция вызывается из отдельного QThread).
Проблема в том что данные получаются со смещением в 29 байт назад (хотя проверял значение указателя на буфер bits() в вызывающем треде и вызываемой функции - они совпадают).
При получении через pixel() в вызывающем треде все нормально, только очень медленно.

P.S. Функция выделения альфы вызывается из отдельного QThread.
Если все манипуляции делать в основном треде, или в отдельном треде, все проходит нормально.
Скорее всего что-то не то с SIP.voidptr, который возвращается из qimage.bits().

код:
///////////////////////////////////////////////////////////////////////////////////////////////////////////
// Get image alpha mask to byte buffer.
// input: QImage image.
// output: str maskBuf.
static PyObject *gray_c32GetAlphaMask(PyObject *self, PyObject *args) {
PyObject *image; // input ARGB32 QImage

// parse function parameters
if (!PyArg_ParseTuple(args, "O", &image)) return NULL;

// get image width and height
U32 w = PyInt_AsLong(PyObject_CallMethod(image, "width", NULL));
U32 h = PyInt_AsLong(PyObject_CallMethod(image, "height", NULL));

if (w*h > 0) {
// pointer to first color pixel
U32 *c32Buf = PyCObject_AsVoidPtr(PyObject_CallMethod(PyObject_CallMethod((PyObject *)image, "bits", NULL), "ascobject", NULL));
U8 *maskBuf = PyMem_Malloc(w * h); // allocate output buffer

for (U32 yCnt=0; yCnt<h; yCnt++) { // y loop
for (U32 xCnt=0; xCnt<w; xCnt++) { // x loop
*maskBuf = *c32Buf >> 24; // get pixel alpha value
c32Buf++;
maskBuf++;
}
}
return Py_BuildValue("s#", maskBuf, w*h);
}
return Py_BuildValue("O", Py_None);
}

Django » TinyMCE и Django » Ноя. 17, 2009 15:51:04

Hello.
Кто нибудь сталкивался с tinyMCE что если в админки джанги изменить размер fontа и цвет то при сохранении цвет не изменяется и отображается только новый размер фонта.



Код при этом получается такой
 <span style="color: rgb(255, 0, 0);">
<span style="font-size: xx-small;">F</span>
</span>
Но если сначала поменять цвет сохранить а потом изменить размер фонта и сохранить то такая двухфазовая операция работает. Но это как то криво
код при этом получается такой
<span style="font-size: xx-small;">
<span style="color: rgb(255, 255, 0);">A</span>
</span>

Python для новичков » лишний символ новой стоки в созданном CSV файле » Ноя. 17, 2009 13:41:17

Пишу CSV файл библиотекой

http://docs.python.org/library/csv.html

csvWriter.writerow(row)

row не содержит символов 0D

однако созданный CSV файл содержит лишний символ 0x0D в каждой строке:

0D 0D 0A

соответственно при загрузке в Excel/Calc - лишняя пустая строка после каждой строки
что я делаю не так?