API 概要
class ContextAwareThread
呼び出し元のコンテキストで関数を実行するスレッド。
これは threading.Thread のそのまま置き換え可能な代替実装で、スレッド内でも call が期待どおりに動作することを保証します。Weave では特定の contextvars を設定しておく必要があります (call_context.py を参照) が、新しいスレッドは親のコンテキストを自動ではコピーしないため、call コンテキストが失われることがあります。これは望ましくありません。このクラスは contextvar のコピーを自動化するので、ユーザーが期待するとおり、このスレッドは「そのままで動作」します。
このクラスを使わなくても、代わりに次のように記述すれば同じ効果を得られます。
method __init__
プロパティ daemon
このスレッドがデーモンスレッドであるかどうかを示すブール値です。 これはstart() が呼び出される前に設定する必要があります。そうしないと、RuntimeError が発生します。初期値はこのスレッドを作成したスレッドから継承されます。メインスレッドはデーモンスレッドではないため、メインスレッドで作成されたすべてのスレッドはデフォルトで daemon = False になります。
デーモンスレッドのみが残ると、Python プログラム全体が終了します。
プロパティ ident
このスレッドのスレッド識別子です。まだ開始されていない場合は None です。 これは 0 以外の整数です。get_ident() 関数を参照してください。スレッド識別子は、スレッドの終了後に別のスレッドが作成されると再利用されることがあります。識別子は、スレッドの終了後も利用できます。プロパティ 名
識別のためだけに使用される文字列です。 特別な意味はありません。複数のスレッドに同じ名を付けることができます。初期名はコンストラクターで設定されます。プロパティ native_id
このスレッドのネイティブな整数のスレッド ID です。まだ開始されていない場合は None になります。 これは 0 以上の整数です。get_native_id() 関数を参照してください。これは、カーネルから報告される Thread ID を表します。
method run
class ContextAwareThreadPoolExecutor
呼び出し元のコンテキストで関数を実行する ThreadPoolExecutor。
これは concurrent.futures.ThreadPoolExecutor のそのまま置き換え可能な代替実装で、executor 内でも Weave の call が期待どおりに動作するようにします。Weave では特定の contextvars が設定されている必要があります (call_context.py を参照) が、新しいスレッドは親のコンテキストを自動的には引き継がないため、call コンテキストが失われることがあります。これは望ましくありません。このクラスは contextvar のコピーを自動化するため、この executor を使用すると、ユーザーが期待するとおりに「そのまま動作」します。
このクラスを使わなくても、代わりに次のように書けば同じ効果を得られます。
method __init__
method map
method submit
関数 deprecated
new_name にリダイレクトするデコレータです。
関数 is_colab
関数 is_notebook
関数 log_once
log_method: メッセージのログに使用する method。文字列の引数を受け取る必要があります。message: ログするメッセージ。 例: