robweber / omni-epd

An EPD (electronic paper display) class abstraction to simplify communications across multiple display types.
GNU General Public License v3.0
84 stars 19 forks source link

Pillow Static Variables Changed #76

Closed robweber closed 2 years ago

robweber commented 2 years ago

In version of Pillow 9.1.0 and greater several variables have changed related to image transformations. There are places in the omni-epd code that use the pre-9.1.0 variable names and are likely to throw an error as Pillow updates on new installs or upgrades to existing systems. To further complicate matters downstream libraries, like the IT8951 drivers, have already updated to work with the new variable names. This means pinning a specific version won't work as these libs will fail should someone try and load them.

Code related to the image transformations will need to be updated. Most of it (perhaps all) starts in the virtualepd.py file - https://github.com/robweber/omni-epd/blob/main/src/omni_epd/virtualepd.py#L89

Links

https://pillow.readthedocs.io/en/latest/releasenotes/9.1.0.html#constants

robweber commented 2 years ago

Looking at this further it does appear that the old constants won't be removed until Pillow 10.0.0, which gives some time for overlap. Testing shows that just upgrading the Pillow version does allow the old constants to keep working simultaneous with the new. Still, updating the constants now to avoid problems later is probably the best strategy.