Solid Principles, Python.
explosion of import statements in main, there are techniques to help preventing that. You can use factories. A factory is an object that creates new objects. That way you can move the logic out of main and into a factory. Some people like to use IOC container frameworks to manage the dependencies