パラメータファイルから入力を受け取り、出力ファイルを生成するプログラム(PatchDock )があります。このプログラムの実行には時間がかかります。同じパラメーターを2回実行する必要がないように、過去の実行結果をキャッシュしたいと思います。
入力ファイルと出力ファイルを適切なデータ構造に解析することができます。たとえば、入力ファイルは辞書のようなオブジェクトに解析されます。入力キーはすべて文字列であり、値はプリミティブデータ型(int、string、およびfloat)です。
私のアプローチ
私の最初のアイデアは、入力ファイルのmd5ハッシュをshelve
データベースのキーとして使用することでした。ただし、これはまったく同じ入力でキャッシュされたファイルをキャプチャできませんが、入力ファイルに若干の違いがあります(コメント、間隔、パラメーターの順序など)。
解析されたパラメーターをハッシュすることは、私にとって最良のアプローチのようです。しかし、辞書から一意のハッシュを取得することを考える唯一の方法は、ソートされた文字列表現をハッシュすることです。
質問
パラメータディクショナリの文字列表現をハッシュすることは、私の最終目標を達成するための回り道のように思えます-指定された出力に一意の入力値をキーイングします。このキャッシングシステムを実現するためのより簡単な方法はありますか?
理想的には、Pythonでこれを実現することを目指しています。