私はReadTheDocsを使って自分のドキュメントをコンパイルできるように、問題のあるMatplotlibを作成しようとしています。`from x import *`がうまく動作するようにする方法
私のコードでは、from matplotlib.pyplot import *
を使用してmatplotlibをインポートします。
私は(ReadTheDocs FAQにより示唆されるように)私のモックのために、次のコードを使用しています:
class Mock(object):
def __init__(self, *args, **kwargs):
pass
def __call__(self, *args, **kwargs):
return Mock()
@classmethod
def __getattr__(cls, name):
if name in ('__file__', '__path__'):
return '/dev/null'
elif name[0] == name[0].upper():
return type(name,(), {})
else:
return Mock()
MOCK_MODULES = ['numpy', 'scipy', 'matplotlib', 'matplotlib.pyplot']
for mod_name in MOCK_MODULES:
sys.modules[mod_name] = Mock()
from matplotlib.pyplot import *
を実行している場合しかし、私はそのTypeError: 'type' object does not support indexing
を言って、エラーを取得します。
from x import *
スタイルを使用してmatplotlibをインポートできるようにモックを変更できる方法はありますか?私はReadTheDocsがコードを適切にインポートできるように、特定の機能を使用する必要はありません。
サイドノート:独自の汎用モックをロールバックしないでください。 3.3の優れた 'mock'ライブラリを使いましょう。それは標準ライブラリでさえあります。 – delnan
コメントをありがとう - 私は 'mock'ライブラリを読み込み、ReadTheDocsで提案されているクラスの代わりに' mock.Mock'クラスを使用するとすべて正常に動作することが分かりました。 – robintw