2つの異なるファイルからgit(gitpython)リポジトリを使いたいという問題があります。しかし、私はそれを一度しか複製せずにモジュール間でオブジェクトを共有する賢明な方法を考え出すことはできません。レポはかなり大きいので、オブジェクトにアクセスする必要があるたびにそれらを複製するのは最適ではありません。gitリポジトリを複製して別の場所にオブジェクトをインポート
私は、utils.py
というファイルにクラスとそのインスタンスを作成しようとしました。しかし、utils.py
のクラスの__init__
で起こるはずですが、私がそれらをインポートすると、レポがクローン化されたようには見えません。確かにこれは、インポート時にハングするのを防ぐためのPythonの保護手段でなければなりません。
私はdictをサブクラス化しようとしましたが、まだアクセスしていないにもかかわらずそれが動作しなかった場合は、__getattr__
を使用してクローンを作成しました。それはちょうどインポートされたように思えましたが、前と同じようにクローニングをスキップしました。
これは私が他の場所でそれをインポートできるようにutils.py
に定義するために必要なものです:
compiler_repo = git.Repo.clone_from(someurl, somepath)