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
log_method: メッセージをログするために使用するメソッド。string 型の引数を受け取る必要があります。message: ログするメッセージ。 例: