Hi,
as some users on the form may know I’m maintaining the EyeTVLive plugin which allows to watch streams from an Elgato-device and access EPG from within PLEX.
Since most updates from the 0.9.5.X series PMS did break my plugin in one or the other way I seriously thought about reworking my code.
I came across this part (in the still horribly outdated dev-docs):
My plugin right now consists of multiple files along __init__.py which in their own respect implement critical parts of the functionality.
Most of this code is written in oo-fashion encapsulating functionality in classes like EPGParser or M3UParser etc. - up till the latest PMS releases this seemed to work just fine.
The plugin is running in elevated policy so importing was not a difficulty.
However starting with the 0.9.5.X PMS releases I got more and more error logs which showed stuff like 'runtime not fully initialized' along with strange
exceptions when calling methods on my classes.
One case for example was EPGParser.py which in turn imported the systems 'time' module - this would sometimes cause the initialization error above..
What is a generic advice from you other plugin devs?
My plugin is complex enough to warrant more than one file and I really like the clean code interface I get by using classes.
However if the PMS runtime is getting between me and working code then maybe it's time to go back to pure functions?
Any recommendations / experiences are welcome :)