問題タブ [luigi]
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.
python - 'self' が返される前に setattr を呼び出す
これは私の側では一種のクルーゲフェストだと思いますが、初期化によって「自己」が返される前に、多くの重要なパラメーターを設定するルイージおよびシルイジモジュールを使用しています。また、self が返された後にこれらのパラメーターを手動で処理しようとすると、Luigi.Parameter オブジェクトがそれらをマスクして、必要なことを実行できなくなります。
luigi および sciluigi クラス (使用する場合) には no が含まれます__init__
。__init__
または呼び出しを挿入しようとするとsuper(ChildClass, self).__init__(*args, **kwargs)
...奇妙なエラー「予期しないパラメーター」エラーが発生します。
Sciluigi クラスは次のようになります...
SO ... setattr PRIOR を介していくつかのパラメーターを動的に設定して、実際に「自己」が返されることを望んでいます。ただし、setattr にはオブジェクトが必要です。
私は次のようなことができることを望んでいました...
編集:@Charles Duffy
うーん、どの情報が最も役立つかわかりません。
最初の問題は; init を追加できません。__init__
メソッドを追加した実際のコードを以下に示します。実行しようとすると、結果のエラーが含まれています。スーパーコールを実行しようとすると、同じエラーが発生します__init__
エラー
2番目の問題は次のとおりです。
自分自身が戻るのを待つと、(たとえば、上記のコードを使用して) 区別できなくなります...
を実行するtype(out)
と、 type はパラメーターが単なる文字列 (sciluigi.Parameter オブジェクトではない) であると報告するため、`ìsinstance(out, sciluigi.Parameter) を使用しようとすると...False が返されます。
要点は次のとおりです。
sciluigi.Parameter オブジェクトを動的に (プログラムで) 設定し、その後 sciluigi.Parameter() オブジェクト変数 ( などout
) と「実際の」 str() オブジェクト ( などin_target
)を区別できるようにする必要があります。
これが理にかなっていることを願っています。
python - PythonタスクスケジューラLuigiは間接的な依存関係を検出できますか?
短縮版:
gmakeが行うことを実行できるPythonのタスクスケジューラはありますか? 特に、依存関係を再帰的に解決するタスク スケジューラが必要です。ルイージを調べましたが、直接の依存関係のみを解決しているようです。
長いバージョン:
事前に定義された順序で多くのデータ ファイルを処理するワークフローを構築しようとしています。後のタスクは、いくつかの前のタスクの出力に直接依存する可能性がありますが、これらの出力の正確さは、さらに前のタスクに依存しています。 .
たとえば、次のような依存関係マップを考えてみましょう。
A <- B <- C
タスク C の結果を要求すると、Luigi は自動的に B をスケジュールし、B は A に依存するため、A をスケジュールします。したがって、最終的な実行順序は [A, B, C] になります。各タスクは、実行が成功した印として公式の出力ファイルを作成します。これは、最初の実行には問題ありません。
ここで、タスク A の入力データを間違えたとします。どうやら、チェーン全体を再実行する必要があるようです。ただし、出力ファイルを A から削除するだけでは機能しません。ルイージは B と C の出力を見て、タスク C の要件が満たされ、実行は不要であると結論付けるためです。A に依存するすべてのタスクから出力ファイルを削除して、再度実行する必要があります。単純なケースでは、Luigi が A に加えられた変更を検出できるように、A、B、および C からすべての出力ファイルを削除する必要があります。
これは非常に不便な機能です。相互にかなり複雑な依存関係を持つ数十または数百のタスクがある場合、タスクの 1 つを再実行する必要があるときに、どのタスクが影響を受けるかを判断するのは非常に困難です。依存関係を解決する機能を備えたタスク スケジューラの場合、依存関係が再帰的にチェックされ、最も深いソース ファイルの 1 つが変更されたときに最終ターゲットが再構築される GNU-Make と同様に、Luigi が動作できることを期待します。
誰かがこの問題についていくつかの提案を提供できるかどうか疑問に思っていました. Luigi のいくつかの重要な機能が不足していますか? gmake として機能する他のタスク スケジューラはありますか? 私は特に Python ベースのパッケージに興味があり、それらが Windows をサポートすることを好みます。
どうもありがとう!