API Overview
class ContextAwareThread
threading.Thread를 드롭인 대체 구현으로, 스레드 내부에서 Call이 예상대로 동작하도록 보장합니다. Weave는 특정 contextvars가 설정되어 있어야 하지만(call_context.py 참조), 새 스레드는 부모의 컨텍스트를 자동으로 복사하지 않기 때문에 call 컨텍스트가 사라질 수 있습니다 — 이는 바람직하지 않습니다! 이 클래스는 contextvar 복사를 자동화하므로, 이 스레드를 사용하면 사용자가 기대하는 대로 “그냥 동작합니다”.
이 클래스 없이도 대신 다음과 같이 작성하면 같은 효과를 얻을 수 있습니다:
방법 __init__
속성 daemon
속성 ident
get_ident() 함수를 참조하세요. 스레드가 종료된 뒤 다른 스레드가 생성되면 스레드 식별자가 재사용될 수 있습니다. 이 식별자는 스레드가 종료된 후에도 계속 사용할 수 있습니다.
속성 name
속성 native_id
get_native_id() 함수를 참조하세요. 커널에서 보고한 스레드 ID를 나타냅니다.
방법 run
class ContextAwareThreadPoolExecutor
call_context.py 참조), 새 스레드는 부모의 컨텍스트를 자동으로 복사하지 않기 때문에 call 컨텍스트가 손실될 수 있습니다 — 이는 바람직하지 않습니다! 이 클래스는 contextvar 복사를 자동화하므로, 이 executor를 사용하면 사용자가 기대하는 대로 “그냥 작동”합니다.
이 클래스를 사용하지 않아도, 대신 다음과 같이 작성하면 같은 효과를 얻을 수 있습니다:
방법 __init__
방법 map
방법 submit
함수 deprecated
new_name으로 리디렉션하는 데코레이터입니다.
함수 is_colab
함수 is_notebook
함수 log_once
op가 저장에 실패하면 그 op가 호출될 때마다 같은 문제가 발생할 가능성이 높습니다. 또는 패치된 이터레이터에 오류가 있으면 결과를 순회할 때마다 같은 오류가 발생할 가능성이 높습니다. 이렇게 하면 로그를 불필요하게 쌓지 않으면서도 사용자에게 오류를 알릴 수 있습니다.
매개변수:
log_method: 메시지를 기록하는 데 사용할 방법입니다. 문자열 매개변수 하나를 받을 수 있어야 합니다.message: 기록할 메시지입니다. 예시: