Относительно недавнее крупное обновление i3ipc ( v2.0.1
) нарушает некоторые из наших сегментов и списков.
Я обнаружил это сегодня, обновляя все свои пакеты python (для python 3.8).
По сути, оболочки классов python для ответов i3ipc JSON, с которыми работает наш код, изменились, так что reply['attr']
больше не действует, и необходимо использовать reply.attr
или getattr(reply, 'attr')
.
Это актуально для powerline / listers / i3wm.py и powerline / segment / i3wm.py.
Исправить это было бы очень просто, но я не уверен, нужно ли и как поддерживать обратную совместимость.
Если я правильно интерпретирую это различие , то использование атрибутов должно было уже работать со старыми версиями i3ipc. Видя, что раньше он поддерживал оба способа доступа к данным, может быть, это следует предложить как (даже более простое) исправление в кодовой базе i3ipc?
Связанная проблема зарегистрирована как altdesktop / i3ipc-python # 136.
Замена reply['attr']
на reply.attr
действительно должна исправить это.
@ PH111P да, у меня уже есть списки, снова работающие локально, но я собирался дождаться ответа в другом выпуске, прежде чем что-то менять здесь
Похоже, что апстрим предпочитает нарушать это только потому, что; Думаю, пришло время для этого патча.
Самый полезный комментарий
@ PH111P да, у меня уже есть списки, снова работающие локально, но я собирался дождаться ответа в другом выпуске, прежде чем что-то менять здесь