Thank you, I will try it. I noticed that you put the entire implementation inside the package’s __init__.py file. Interesting, and I had not seen that done before.
I have seen that pattern before, and for me it's a bit of an antipattern. Usually you wouldn't look for substantial code there, and in most cases it is nicer to organize your code in modules.
You can import from those in the __init.py__ file, this way achieving the same effect as having all code live in __init.py__.
But it's a matter of preference.