A relatively recent, major update in i3ipc (v2.0.1) breaks some of our segments and listers here.
I discovered it today while updating all my python packages (for python 3.8).
In essence, the python class wrappers around i3ipc JSON responses that our code deals with have changed, so that reply['attr'] is no longer valid, and reply.attr or getattr(reply, 'attr') must be used.
This is relevant in powerline/listers/i3wm.py and powerline/segments/i3wm.py.
A patch for this would be very simple to produce, but I am unsure if and how backwards compatibility should be maintained.
If i am interpreting this diff correctly, then using attributes should have already worked with older versions of i3ipc. Seeing that it used to support both ways of accessing the data, maybe this should be proposed as an (even simpler) fix in the i3ipc codebase?
Related issue filed as altdesktop/i3ipc-python#136
Replacing reply['attr'] with reply.attr should indeed fix this.
@PH111P yeah i already got the listers working again locally, but I was going to wait for a response over in the other issue before changing anything here
Seems like upstream prefers to break this just because; I guess it's time for that patch.
Most helpful comment
@PH111P yeah i already got the listers working again locally, but I was going to wait for a response over in the other issue before changing anything here