ファクトリ関数、スーパー クラス、および 2 つのサブクラスを含む作業モジュールがあります。実際のモジュールはこちらです。
ファクトリを独自のファイルに分割し、2 つのサブクラスを commands/ ディレクトリに配置して、スーパーを含むモジュールにサブクラスをインポートすることによって引き起こされる再帰の問題を回避できるようにしました。
すべてが正しくインポートされたと思ったときに、試してみると、ファクトリはサブクラスの空のリストで立ち往生しています。
for cls in Command.__subclasses__():