메인 콘텐츠로 건너뛰기

API Overview


클래스 DisplayNameFuncError


클래스 OpCallError


클래스 OpKwargs

op()의 키워드 인수를 위한 TypedDict.

클래스 Sentinel

Sentinel(package: ‘str’, path: ‘str’, name: ‘str’)

방법 __init__

__init__(package: 'str', path: 'str', name: 'str') → None

클래스 WeaveKwargs


함수 as_op

as_op(fn: 'Callable[P, R]') → Op[P, R]
@weave.op로 데코레이트된 함수가 주어지면 해당 함수의 Op를 반환합니다. @weave.op로 데코레이트된 함수는 이미 Op 인스턴스이므로, 이 함수는 런타임에서 사실상 no-op입니다. 하지만 OpDef 속성에 타입 안전하게 접근해야 할 때 타입 검사기를 만족시키는 용도로 사용할 수 있습니다. 인수:
  • fn: weave.op로 데코레이트된 함수입니다. 반환값: 함수의 Op입니다.

함수 call

call(
    op: 'Op',
    *args: 'Any',
    __weave: 'WeaveKwargs | None' = None,
    __should_raise: 'bool' = False,
    __require_explicit_finish: 'bool' = False,
    **kwargs: 'Any'
) → tuple[Any, Call] | Coroutine[Any, Any, tuple[Any, Call]]
op를 실행하고 결과와 실행을 나타내는 Call을 함께 반환합니다. 이 함수는 절대 예외를 발생시키지 않습니다. 모든 오류는 Call 객체에 저장됩니다. 이 방법은 @weave.op로 데코레이트된 모든 함수에 자동으로 바인딩되므로, 다음과 같이 사용할 수 있습니다:
@weave.op
def add(a: int, b: int) -> int:
     return a + b

result, call = add.call(1, 2)

함수 calls

calls(op: 'Op') → CallsIter
이 op의 모든 call에 대한 이터레이터를 조회합니다. 이 방법은 @weave.op로 데코레이트된 모든 함수에 자동으로 바인딩되므로, 다음과 같이 사용할 수 있습니다:
@weave.op
def add(a: int, b: int) -> int:
     return a + b

calls = add.calls()
for call in calls:
     print(call)

함수 get_captured_code

get_captured_code(op: 'Op') → str
op의 캡처된 코드를 조회합니다. 이 기능은 ref를 통해 op를 다시 가져온 경우에만 작동합니다. 패턴은 다음과 같습니다: ref = weave.publish(func) op = ref.get() captured_code = op.get_captured_code()

함수 is_op

is_op(obj: 'Any') → TypeIs[Op]
객체가 Op인지 확인합니다.

함수 is_placeholder_call

is_placeholder_call(call: 'Call') → TypeIs[NoOpCall]

함수 is_tracing_setting_disabled

is_tracing_setting_disabled() → bool

함수 maybe_bind_method

maybe_bind_method(func: 'Callable', self: 'Any' = None) → Callable | MethodType
함수를 임의의 객체에 바인딩합니다(클래스가 아니어도 됨). self가 None이면 함수를 그대로 반환합니다.

함수 maybe_unbind_method

maybe_unbind_method(oplike: 'Op | MethodType | partial') → Op
Op와 유사한 메서드 또는 partial의 바인딩을 해제해 일반 Op 함수로 변환합니다. 다음의 경우:
  • methods의 경우, 바인딩된 self 매개변수를 제거합니다
  • partials의 경우, 미리 설정된 모든 매개변수를 제거합니다

함수 op

op(
    func: 'Callable[P, R] | None' = None,
    name: 'str | None' = None,
    call_display_name: 'str | CallDisplayNameFunc | None' = None,
    postprocess_inputs: 'PostprocessInputsFunc | None' = None,
    postprocess_output: 'PostprocessOutputFunc | None' = None,
    tracing_sample_rate: 'float' = 1.0,
    enable_code_capture: 'bool' = True,
    accumulator: 'Callable[[Any | None, Any], Any] | None' = None,
    kind: 'OpKind | None' = None,
    color: 'OpColor | None' = None,
    eager_call_start: 'bool' = False
) → Callable[[Callable[P, R]], Op[P, R]] | Op[P, R]
함수나 메서드를 weave op로 변환하는 데코레이터입니다. 동기와 비동기 모두 지원합니다. 이터레이터 함수를 자동으로 감지해 적절한 동작을 적용합니다. 인수:

함수 placeholder_call

placeholder_call() → Call

함수 setup_dunder_weave_dict

setup_dunder_weave_dict(op: 'Op', d: 'WeaveKwargs | None' = None) → WeaveKwargs
ops에 WeaveKwargs를 전달하는 데 사용하는 __weave dict를 설정합니다.
  • func: 데코레이트할 함수.
  • name: op의 맞춤형 이름입니다. 기본값은 함수 이름입니다.
  • call_display_name: Call의 표시 이름이며, 문자열 또는 callable일 수 있습니다.
  • postprocess_inputs: 로깅 전에 입력값을 변환하는 함수.
  • postprocess_output: 로깅 전에 출력을 변환하는 함수.
  • tracing_sample_rate: 트레이스할 Call의 비율입니다(0.0~1.0).
  • enable_code_capture: 이 op의 소스 코드를 캡처할지 여부입니다.
  • accumulator: 스트리밍 op의 결과를 누적하는 함수.
  • eager_call_start: True이면 call 시작이 배치 처리되지 않고 즉시 전송됩니다. evaluations와 같은 장시간 실행 오퍼레이션이 즉시 UI에 표시되어야 할 때 유용합니다. 인수:
  • d: 업데이트할 기존 WeaveKwargs dict(선택 사항).
  • op: kind와 color를 추출할 Op. 반환값: attributes와 display_name이 포함되고, 필요에 따라 kind/color도 설정된 WeaveKwargs dict입니다.

함수 should_skip_tracing_for_op

should_skip_tracing_for_op(op: 'Op') → bool