Skip to main content

API の概要


クラス ContextAwareThread

呼び出し元のコンテキストで関数を実行するスレッド。 これは threading.Thread のドロップイン置換であり、スレッド内で呼び出しが期待どおりに動作することを保証します。Weave では特定の contextvar を設定する必要があります (call_context.py を参照)。しかし、新しいスレッドは親からコンテキストを自動的にコピーしないため、呼び出しコンテキストが失われる可能性があります。これは好ましくありません!このクラスは contextvar のコピーを自動化するため、このスレッドを使用すると、ユーザーが期待するように「そのまま動作」します。 このクラスを使用せずに同じ効果を得るには、次のように記述します:

メソッド __init__


プロパティ daemon

このスレッドがデーモンスレッドであるかどうかを示す真偽値です。 start() が呼び出される前に設定する必要があります。そうしないと RuntimeError が発生します。初期値は作成元のスレッドから継承されます。メインスレッドはデーモンスレッドではないため、メインスレッドで作成されたすべてのスレッドのデフォルトは daemon = False になります。 デーモンスレッドのみが残っている場合、Python プログラム全体が終了します。

プロパティ ident

このスレッドのスレッド識別子、または開始されていない場合は None です。 これはゼロ以外の整数です。get_ident() 関数を参照してください。スレッドが終了して別のスレッドが作成されると、スレッド識別子は再利用される可能性があります。識別子は、スレッドが終了した後でも利用可能です。

プロパティ 名

識別目的のみに使用される string です。 セマンティクスはありません。複数のスレッドに同じ名を付けることができます。初期の名はコンストラクターによって設定されます。

プロパティ native_id

このスレッドのネイティブな整数スレッド ID。まだ開始されていない場合は None です。 これは非負の整数です。get_native_id() 関数を参照してください。これはカーネルによって報告されたスレッド ID を表します。

メソッド run


クラス ContextAwareThreadPoolExecutor

呼び出し元のコンテキストで関数を実行する ThreadPoolExecutor です。 これは concurrent.futures.ThreadPoolExecutor のドロップイン置換で、executor 内でも Weave の Call が期待どおりに動作するようにします。Weave では特定の contextvar が設定されている必要があります (call_context.py を参照) 。しかし、新しいスレッドは親スレッドのコンテキストを自動的にはコピーしないため、Call のコンテキストが失われるおそれがあり、これは望ましくありません。このクラスは contextvar のコピーを自動化するため、この executor を使用するだけで、ユーザーの想定どおりに “そのまま動作” します。 このクラスを使用しなくても、次のように記述すれば同じ効果が得られます。

メソッド __init__


メソッド map


メソッド submit


関数 deprecated

関数を非推奨としてマークし、ユーザーを new_name にリダイレクトするデコレーター。

関数 is_colab


関数 is_notebook


関数 log_once

メッセージを一度だけログし、同じタイプの後続のメッセージを抑制します。ログを大量のメッセージで埋め尽くすことなく、エラーをユーザーに通知したい場合に便利です。 主に、同じエラーメッセージが何度も発生する可能性がある場合に役立ちます。たとえば、op の保存に失敗した場合、その op が呼び出されるたびに同じ失敗が発生する可能性が高くなります。また、パッチを適用したイテレーターでエラーが発生した場合は、結果を反復処理するたびにそのエラーが発生する可能性があります。この関数を使用すると、ユーザーのログを埋め尽くすことなく、エラーをユーザーに通知できます。 引数:
  • log_method: メッセージをログするために使用するメソッド。string 型の引数を受け取る必要があります。
  • message: ログするメッセージ。 例:
最終更新日 2026年9月30日