Writing a Python script is easy. It turns out that writing a large Python application is much more difficult.
When I went to test my project, I discovered that my attempt to avoid circular imports had actually created them. But there are tools that can help.