API 개요
클래스 ContextAwareThread
호출자의 컨텍스트에서 함수를 실행하는 스레드입니다.
threading.Thread를 다른 코드 변경 없이 대체할 수 있으며, 스레드 내부에서 Call이 예상대로 동작하도록 보장합니다. Weave는 특정 컨텍스트 변수가 설정되어 있어야 하지만(call_context.py 참조), 새 스레드는 부모의 컨텍스트를 자동으로 복사하지 않으므로 호출 컨텍스트가 손실될 수 있습니다 — 바람직하지 않은 상황입니다! 이 클래스는 컨텍스트 변수 복사를 자동화하므로, 이 스레드를 사용하면 사용자가 기대하는 대로 “그냥 작동합니다”.
이 클래스 없이도 다음과 같이 작성하면 동일한 효과를 얻을 수 있습니다:
방법 __init__
속성 daemon
이 스레드가 데몬 스레드인지 나타내는 불리언 값입니다. start()가 호출되기 전에 설정해야 하며, 그렇지 않으면 RuntimeError가 발생합니다. 초기 값은 이 스레드를 생성한 스레드에서 상속됩니다. 메인 스레드는 데몬 스레드가 아니므로 메인 스레드에서 생성된 모든 스레드는 기본적으로 daemon = False로 설정됩니다. 데몬 스레드만 남으면 Python 프로그램 전체가 종료됩니다.속성 ident
이 스레드의 식별자이며, 아직 시작되지 않았다면 None입니다. 이 값은 0이 아닌 정수입니다. get_ident() 함수를 참조하세요. 스레드가 종료되고 다른 스레드가 생성되면 스레드 식별자가 재사용될 수 있습니다. 스레드가 종료된 후에도 식별자는 사용 가능합니다.속성 name
식별 목적으로만 사용되는 string입니다. 의미론적 의미가 없습니다. 여러 스레드에 동일한 이름을 부여할 수 있습니다. 초기 이름은 생성자에 의해 설정됩니다.속성 native_id
이 스레드의 네이티브 정수 스레드 ID이며, 시작되지 않은 경우 None입니다. 이것은 음수가 아닌 정수입니다. get_native_id() 함수를 참조하세요. 이는 커널에서 보고한 Thread ID를 나타냅니다.방법 run
클래스 ContextAwareThreadPoolExecutor
호출자의 컨텍스트로 함수를 실행하는 ThreadPoolExecutor입니다.
concurrent.futures.ThreadPoolExecutor 대신 다른 변경 없이 사용할 수 있으며, 실행기 내에서 Weave Call이 예상대로 동작하도록 보장합니다. Weave는 특정 컨텍스트 변수가 설정되어 있어야 하지만(call_context.py 참조), 새 스레드는 부모의 컨텍스트를 자동으로 복사하지 않으므로 호출 컨텍스트가 손실될 수 있습니다 — 바람직하지 않죠! 이 클래스는 컨텍스트 변수 복사를 자동화하므로 이 실행기를 사용하면 사용자가 기대하는 대로 “바로 작동합니다”.
이 클래스를 사용하지 않고도 다음과 같이 작성하여 같은 효과를 얻을 수 있습니다:
방법 __init__
방법 map
방법 submit
함수 deprecated
new_name으로 사용자를 리디렉션하는 데코레이터입니다.
함수 is_colab
함수 is_notebook
함수 log_once
log_method: 메시지를 로깅하는 데 사용할 방법입니다. string 인수를 받을 수 있어야 합니다.message: 로깅할 메시지입니다. 예시: