May be a late answer, but you could try using a dedicated ioc container. I've written jstreams (https://pypi.org/project/jstreams/), a library that provides a pretty advanced dependency injector, as well as Java-like stream and optional functionality and a minimal RX implementation. In the latest version you can simply use the component()
decorator to mark your class as a dependency, then access it using inject(ClassName)