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