問題タブ [shelve]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
tfs - TFS2010で棚の変更を確認
TFS 2010を使用しています。チェックインする前に、他の開発者によって棚上げされているコードを確認する必要があります。彼の変更とレビューを取得できるように、TFS2010でこれをどのように行うことができますか。ありがとう!
python - Python で並行して shelve 辞書を更新する
私は非常に巨大な入力ファイルを取り、それから辞書を作成するプログラムを持っています。これがメモリに収まるわけがないので、shelf を使用してディスクに書き込むことにしました。ここで、解析を高速化できるように、システムで使用可能な複数のコア (うち 8 つ) を利用する必要があります。これを行う最も明白な方法は、入力ファイルを 8 つの部分に分割し、8 つの部分すべてで同時にコードを実行することでした。問題は、最終的に辞書が 1 つしか必要ないことです。それらの8ではありません。では、shelf を使用して 1 つの辞書を並行して更新するにはどうすればよいでしょうか。
python - Pythonは時間の経過とともにディスクへの書き込みのパフォーマンスを失います
非常に大きなデータのファイルから入力を取得し、そのファイルに対していくつかの簡単な処理を実行してから、棚の辞書形式で保存するコードを作成しました。処理するエントリが4,100万あります。しかし、棚のdictに3500万のエントリを書き込んだ後、パフォーマンスが突然低下し、最終的には完全に停止します。これを回避するために私ができることはありますか?
私のデータはTwitterにあり、ユーザーの画面名をIDにマッピングしています。そのようです:
これらのそれぞれに名前ですばやくアクセスする必要があります。のように:私がそれを与えるとき、my_dict[Jack]
それは戻ります12
。
python - 時間のかかる操作の結果をキャッシュする
パラメータファイルから入力を受け取り、出力ファイルを生成するプログラム(PatchDock )があります。このプログラムの実行には時間がかかります。同じパラメーターを2回実行する必要がないように、過去の実行結果をキャッシュしたいと思います。
入力ファイルと出力ファイルを適切なデータ構造に解析することができます。たとえば、入力ファイルは辞書のようなオブジェクトに解析されます。入力キーはすべて文字列であり、値はプリミティブデータ型(int、string、およびfloat)です。
私のアプローチ
私の最初のアイデアは、入力ファイルのmd5ハッシュをshelve
データベースのキーとして使用することでした。ただし、これはまったく同じ入力でキャッシュされたファイルをキャプチャできませんが、入力ファイルに若干の違いがあります(コメント、間隔、パラメーターの順序など)。
解析されたパラメーターをハッシュすることは、私にとって最良のアプローチのようです。しかし、辞書から一意のハッシュを取得することを考える唯一の方法は、ソートされた文字列表現をハッシュすることです。
質問
パラメータディクショナリの文字列表現をハッシュすることは、私の最終目標を達成するための回り道のように思えます-指定された出力に一意の入力値をキーイングします。このキャッシングシステムを実現するためのより簡単な方法はありますか?
理想的には、Pythonでこれを実現することを目指しています。
python - Python 2.6でシェルブモジュールを使用しているときに例外RuntimeErrorが発生しました
shelve モジュールを使用して、プログラムに永続性を追加しています。最初はシェルブでデフォルトのbsddbを使用していましたが、gdbmに変更する必要があり、その後例外が発生しました:
whichdb 呼び出しによって anydbm モジュールで発生 (およびキャッチ) されているようです。
コードは問題なく終了するため、悪いことは何もありませんが、ちょっと悪いように見えます。私の知る限り、警告モジュールを使用して印刷を抑制することができますが、例外を完全に削除したいと考えています。
私は他の場所(pylint、django、およびその他のモジュール/パッケージで発生した)で同様の問題を調べていましたが、どこでも「バグ」としてマークされているようです。anydbm/shelve モジュールでこのような動作の解決策を思いついた人はいますか?
編集1。このエラーの原因は次のとおりであることがわかりました: def getattr (self, attr): return getattr(self.config, attr)
別のクラスをラップするクラスをシェルブに保存しようとしています。そのため、getattr関数がオーバーライドされます。それを書いて無限ループにならないようにする方法はありますか?
perforce - perforceで変更リストから削除せずに、ワークスペースで開いているファイルを元に戻す方法は?
perforce (サーバー バージョン 2010.1/265509 (2010/09/23) では、新しい「git のような」サーバー機能はありません) で、変更リストからファイルを削除せずに、クライアントで開いているすべてのファイルを元に戻すことは可能ですか?彼らはに属していますか?
デフォルトでは、ファイルを開いて変更リストに入れている場合 (デフォルトではない)、現在の作業状態からすばやく「コンテキスト スイッチ」を実行したい場合は、何か他のものを見てから、前の作業状態に戻ります。これを行う:
- 新しい変更リストを作成する
- 新しい変更リストにファイルを追加する C
- ファイルをチェンジリストに保留する C
- 開いているすべてのファイルを元に戻す
- 何かをする
- 開いているすべてのファイルを元に戻す
- チェンジリストを取り消す C -c C
「do stuff」の中間段階で、p4 describe C はチェンジリストにファイルを表示しません。これは気がかりで煩わしく、C の内容を追跡するのが必要以上に難しくなります。
「p4 describe C」がすべてのファイルをチェンジリスト C に保持するように、「開いているすべてのファイルを元に戻す」方法はありますか?
tfs - TFSシェルブセットのダウンロード方法
TFS からローカル フォルダーにシェルブセットをダウンロードする必要があります。Visual Studio 2010 でシェルブセットをダウンロードするためのツールまたはアドインはありますか
python - shelve.pyを使用したPythonおよびFreezeアプリケーション
シェルフモジュールの使用を伴うアプリケーションをフリーズしようとしています。それをフリーズするために、私はGUI2EXE pythonコードを使用し、cx_freeze部分を利用しています(棚の部分を削除するとすべてがうまく機能します)。
コンパイルしたアプリケーションを実行しようとすると、次のように文句を言います。
私は答えを探し回った。それらのほとんどは、これをスクリプトに追加すると言いました。
しかし、これは私には何もしませんでした。dbhashモジュールを含めると、bsddbモジュールが存在しないことに関連するエラーが発生します。私はこの問題を理解できないようです。上記を間違って実装しましたか?私は何かが足りないのですか?
PS、cx_freezeを使用する必要があります-他の部分(py2exe、pyinstaller)は私のプログラムの他の部分ではうまく機能しません。また、私は本当に棚を使いたいです-私が言ったように、それはコンパイルされ、それなしでうまく動作します。
ありがとう!
編集
マイクのリクエストに応じて、セットアップスクリプトを添付しました。はい、モジュール(図には示されていません)を含めようとしましたが、機能しません。メインスクリプトにanydbmとdbhashも含めました。これもうまくいかないようです。
また、棚よりも変数/リスト/辞書などを保存するためのより良い方法を知っているなら、私は知りたいです。ZODBを試しました(うまくビルドできませんでした)。現在、(PersistentDictを使用して)pdictを見つけました。これは、アプリケーションをフリーズするとうまく機能します。ただし、棚の方が速いと思います。可能であれば棚を機能させたい...
私のセットアップスクリプト:
version-control - UIに棚上げされたPERFORCEチェンジリストが表示されない
私は通常、PERFORCEの変更リストを次のように棚上げします。
- 保留中の変更リストを右クリックします。
- Shelveをクリックします。
- 後で棚上げされたチェンジリストを右クリックして棚上げを解除し、[棚上げ解除]をクリックします。
しかし、何らかの理由ではなく、UIにこれらのオプションが表示されません。
そこで、コマンドラインからチェンジリストを棚上げしました。
p4シェルフ-c'番号の変更'
これは私にとってはうまくいきましたが、問題は、P4 GUIで、保留中の変更リストとして表示され、保留中の変更リストとして表示されないことです。
これを修正してUIで正常に動作させるにはどうすればよいですか?
ありがとう。