勉強のためにとあるWebページのRPA用のフレームワークを自作しようとしてるんですが
ページを操作するクラスをStateパターンの見よう見まねで実装しようとしたところ
画面を遷移させる部分で循環インポートになってしまいます
できればmain.pyからの使い方は変えずに実装したいのですがどうすればよいですか?

操作内容は画面の状態によって異なるのでオーバーライドは無理な状況です
メソッド内でimportすれば解決するような情報もありますが
できればimportはソースコードの最上部で済ませたいです
コードは以下の通りです

main.py
https://techiedelight.com/compiler/?83b5

rpa.py
https://techiedelight.com/compiler/?577e

presentation/__init__.py
https://techiedelight.com/compiler/?eacd

presentation/presentation_base.py
https://techiedelight.com/compiler/?b70f

presentation/a_presentation.py
https://techiedelight.com/compiler/?272e

presentation/b_presentation.py
https://techiedelight.com/compiler/?08a0