Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 16, 2009 21:25:28

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

PyQt4 v.4.6 и "старые" классы

Я как maintainer проекта QBzr столкнулся с баг репортом о том, что наш плагин падает на Ubuntu Karmic и путем некоторых поисков вслепую выяснилось, что виноват PyQt 4.6. В ходе дальнейших расследований мне подсказали, что проблема заключается во множественном наследовании, когда один из базовых классов является классом PyQt4, а другой (наш собственный) – класс “старого” стиля (не унаследованный от object). Причем в PyQt 4.5 всё работало нормально.

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

Комментарии в стиле “нефиг использовать старые классы” и “вы все дураки” – всячески приветствуются.



Офлайн

#2 Окт. 17, 2009 01:50:51

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

PyQt4 v.4.6 и "старые" классы

Александр, а выяснили - на чем именно ломалось?
super, вызов PyQT4 метода или что-то еще?



Офлайн

#3 Окт. 17, 2009 10:05:51

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

PyQt4 v.4.6 и "старые" классы

Нет, я выяснить не могу, поскольку работаю с PyQt 4.4 и на Windows.
Как я понял в 4.6 в каком-то месте (возможно в SIP) порезали обратную совместимость.

Возможно, 4.6 теперь нацелен на Python 3.x со всеми вытекающими.



Офлайн

#4 Окт. 17, 2009 14:23:54

j2a
От:
Зарегистрирован: 2006-06-29
Сообщения: 869
Репутация: +  1  -
Профиль   Отправить e-mail  

PyQt4 v.4.6 и "старые" классы

Гм. А модельное приложение написать и проверить что именно из-за этого падает? А то так достаточно странно: мне сообщили, мне подсказали, сам не проверил, но баг в этом и уже исправлен.



Офлайн

#5 Окт. 17, 2009 18:45:38

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

PyQt4 v.4.6 и "старые" классы

j2a
Не так сурово. Воспроизводить каждый баг, случающийся на платформе, которую ты в глаза никогда не видел - нелегко. Хотя теоретически и нужно.



Офлайн

#6 Окт. 17, 2009 19:54:58

j2a
От:
Зарегистрирован: 2006-06-29
Сообщения: 869
Репутация: +  1  -
Профиль   Отправить e-mail  

PyQt4 v.4.6 и "старые" классы

Андрей, согласен, звучит резковато, но, собственно это ж не проприетарщина, можно воспользоваться помощью коммунити… Написать concept proof – дело максимум получаса. Попросить коммунити протестить тестовый код на различном сочетании версия pyqt/платформа, сделать выводы.

И еще, не написано, что это проблема платформы, написано, что проблема версии PyQt. PyQt 4.6 для Windows есть.



Офлайн

#7 Окт. 18, 2009 21:44:02

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

PyQt4 v.4.6 и "старые" классы

Юрий, Вы резкий как понос. Но мне Ваши наезды (aka критика моей работы) – глубоко неинтересны.

Я скажу 2 вещи:

1) Несмотря на то, что я уже 2 года участвую в проекте QBzr, но экспертом в PyQt4 я не являюсь. И поскольку я им занимаюсь в свое свободное время, то изучаю только то, что нужно для непосредственной работы. Ибо см. п.2

2) Это всего лишь один из багов, который был найден коммьюнити, подтвержден коммьюнити, подсказка о исправлении пришла из коммьюнити и предлагаемый багфикс был протестирован членами коммьюнити. И если чесно – мне глубоко пофиг какие там на самом деле скрытые причины этого бага. Потому что кроме этого (весьма и весьма неприятного) бага у меня сегодня еще висит 150 других открытых багов, 7 из которых имеют важность High.

Ну и на закуску, ссылка на баг репорт для Ubuntu Karmic о том, что переход на 4.6 был несколько необдуманным:
https://bugs.launchpad.net/ubuntu/+source/qbzr/+bug/452210

Цитата оттуда:
“I think you're surely right about other apps having a problem with
python-qt4. I had a whole bunch of crash reports on my system today
from KDE apps that use Python: Frescobaldi, Update Manager, the works.
I'll make a more systematic list tomorrow morning, when I expect a new
lot to show up.”

Ещё я знаю, что Leo Editor тоже попал под удар 4.6.

Так что если Вы такой эксперт в PyQt4 (как следует из Вашего блога) и у вас есть достаточно свободного времени – пожалуйста, сделайте модельное приложение и протестируйте на своей платформе. Я буду ОЧЕНЬ рад услышать от Вас (и тоже стать умнее) детальный разбор почему многие приложения стали падать на 4.6.



Отредактировано (Окт. 19, 2009 07:33:42)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version