> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# op

> weave.trace.op에 대한 Python SDK 레퍼런스

export const SourceLink = ({url}) => <a href={url} target="_blank" rel="noopener noreferrer" className="source-link">
    Source
  </a>;

<h1 id="api-overview">
  API 개요
</h1>

***

<SourceLink url="https://github.com/wandb/weave/blob/v0.53.1/weave/trace/op.py#L96" />

<h2 id="class-displaynamefuncerror">
  <kbd>클래스</kbd> `DisplayNameFuncError`
</h2>

***

<SourceLink url="https://github.com/wandb/weave/blob/v0.53.1/weave/trace/op.py#L99" />

<h2 id="class-opcallerror">
  <kbd>클래스</kbd> `OpCallError`
</h2>

***

<SourceLink url="https://github.com/wandb/weave/blob/v0.53.1/weave/trace/op.py#L215" />

<h2 id="class-opkwargs">
  <kbd>클래스</kbd> `OpKwargs`
</h2>

op() 키워드 인수를 위한 TypedDict입니다.

***

<SourceLink url="https://github.com/wandb/weave/blob/v0.53.1/weave/trace/op.py#L120" />

<h2 id="class-sentinel">
  <kbd>클래스</kbd> `Sentinel`
</h2>

Sentinel(package: 'str', path: 'str', name: 'str')

<SourceLink url="https://github.com/wandb/weave/blob/v0.53.1/../../../../weave/trace/op/__init__" />

<h3 id="method-__init__">
  <kbd>방법</kbd> `__init__`
</h3>

```python theme={"system"}
__init__(package: 'str', path: 'str', name: 'str') → None
```

***

<SourceLink url="https://github.com/wandb/weave/blob/v0.53.1/weave/trace/op.py#L209" />

<h2 id="class-weavekwargs">
  <kbd>클래스</kbd> `WeaveKwargs`
</h2>

***

<SourceLink url="https://github.com/wandb/weave/blob/v0.53.1/weave/trace/op.py#L1477" />

<h3 id="function-as_op">
  <kbd>함수</kbd> `as_op`
</h3>

```python theme={"system"}
as_op(fn: 'Callable[P, R]') → Op[P, R]
```

@weave.op으로 데코레이팅된 함수가 주어지면 해당 Op를 반환합니다.

@weave.op으로 데코레이팅된 함수는 이미 Op의 인스턴스이므로, 이 함수는 런타임에서 no-op이어야 합니다. 그러나 OpDef 속성에 유형 안전한 방식으로 액세스해야 하는 경우 유형 체커를 만족시키기 위해 사용할 수 있습니다.

**인수:**

* <b>`fn`</b>: weave.op으로 데코레이팅된 함수입니다.
  **반환값:**
  함수의 Op입니다.

***

<SourceLink url="https://github.com/wandb/weave/blob/v0.53.1/weave/trace/op.py#L1170" />

<h3 id="function-call">
  <kbd>함수</kbd> `call`
</h3>

```python theme={"system"}
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`으로 데코레이팅된 모든 함수에 자동으로 바인딩되므로 다음과 같이 사용할 수 있습니다:

```python theme={"system"}
@weave.op
def add(a: int, b: int) -> int:
     return a + b

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

***

<SourceLink url="https://github.com/wandb/weave/blob/v0.53.1/weave/trace/op.py#L1216" />

<h3 id="function-calls">
  <kbd>함수</kbd> `calls`
</h3>

```python theme={"system"}
calls(op: 'Op') → CallsIter
```

이 op에 대한 모든 Call의 이터레이터를 조회합니다.

이 방법은 `@weave.op`로 데코레이트된 모든 함수에 자동으로 바인딩되므로 다음과 같이 사용할 수 있습니다.

```python theme={"system"}
@weave.op
def add(a: int, b: int) -> int:
     return a + b

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

***

<SourceLink url="https://github.com/wandb/weave/blob/v0.53.1/weave/trace/op.py#L1423" />

<h3 id="function-get_captured_code">
  <kbd>함수</kbd> `get_captured_code`
</h3>

```python theme={"system"}
get_captured_code(op: 'Op') → str
```

op의 캡처된 코드를 조회합니다.

ref에서 op를 다시 가져올 때만 작동합니다. 패턴은 다음과 같습니다:

ref = weave.publish(func) op = ref.get() captured\_code = op.get\_captured\_code()

***

<SourceLink url="https://github.com/wandb/weave/blob/v0.53.1/weave/trace/op.py#L1469" />

<h3 id="function-is_op">
  <kbd>함수</kbd> `is_op`
</h3>

```python theme={"system"}
is_op(obj: 'Any') → TypeIs[Op]
```

객체가 Op인지 확인합니다.

***

<SourceLink url="https://github.com/wandb/weave/blob/v0.53.1/weave/trace/op.py#L443" />

<h3 id="function-is_placeholder_call">
  <kbd>함수</kbd> `is_placeholder_call`
</h3>

```python theme={"system"}
is_placeholder_call(call: 'Call') → TypeIs[NoOpCall]
```

***

<SourceLink url="https://github.com/wandb/weave/blob/v0.53.1/weave/trace/op.py#L411" />

<h3 id="function-is_tracing_setting_disabled">
  <kbd>함수</kbd> `is_tracing_setting_disabled`
</h3>

```python theme={"system"}
is_tracing_setting_disabled() → bool
```

***

<SourceLink url="https://github.com/wandb/weave/blob/v0.53.1/weave/trace/op.py#L1440" />

<h3 id="function-maybe_bind_method">
  <kbd>함수</kbd> `maybe_bind_method`
</h3>

```python theme={"system"}
maybe_bind_method(func: 'Callable', self: 'Any' = None) → Callable | MethodType
```

함수를 모든 객체에 바인딩합니다(클래스가 아니더라도).

self가 None이면 함수를 그대로 반환합니다.

***

<SourceLink url="https://github.com/wandb/weave/blob/v0.53.1/weave/trace/op.py#L1452" />

<h3 id="function-maybe_unbind_method">
  <kbd>함수</kbd> `maybe_unbind_method`
</h3>

```python theme={"system"}
maybe_unbind_method(oplike: 'Op | MethodType | partial') → Op
```

Op과 유사한 방법 또는 partial의 바인딩을 해제하여 일반 Op 함수로 변환합니다.

대상별 동작:

* 방법: 바인딩된 `self` 파라미터를 제거합니다
* partial: 미리 설정된 파라미터를 모두 제거합니다

***

<SourceLink url="https://github.com/wandb/weave/blob/v0.53.1/weave/trace/op.py#L1240" />

<h3 id="function-op">
  <kbd>함수</kbd> `op`
</h3>

```python theme={"system"}
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,
    attributes: 'dict[str, Any] | None' = None,
    eager_call_start: 'bool' = False
) → Callable[[Callable[P, R]], Op[P, R]] | Op[P, R]
```

함수나 방법을 Weave Op으로 만드는 데코레이터입니다. 동기 및 비동기 함수 모두에서 작동하며, 이터레이터 함수를 자동으로 감지해 그에 맞는 동작을 적용합니다.

**인수:**

***

<SourceLink url="https://github.com/wandb/weave/blob/v0.53.1/weave/trace/op.py#L436" />

<h3 id="function-placeholder_call">
  <kbd>함수</kbd> `placeholder_call`
</h3>

```python theme={"system"}
placeholder_call() → Call
```

***

<SourceLink url="https://github.com/wandb/weave/blob/v0.53.1/weave/trace/op.py#L231" />

<h3 id="function-setup_dunder_weave_dict">
  <kbd>함수</kbd> `setup_dunder_weave_dict`
</h3>

```python theme={"system"}
setup_dunder_weave_dict(op: 'Op', d: 'WeaveKwargs | None' = None) → WeaveKwargs
```

WeaveKwargs를 Op에 전달하는 데 사용되는 \_\_weave 딕셔너리를 설정합니다.

* <b>`func`</b>: 데코레이터를 적용할 함수입니다.

* <b>`name`</b>: op의 맞춤형 이름입니다. 기본값은 함수 이름입니다.

* <b>`call_display_name`</b>: Call의 표시 이름이며, string 또는 호출 가능한 객체일 수 있습니다.

* <b>`postprocess_inputs`</b>: 로깅하기 전에 입력을 변환하는 함수입니다.

* <b>`postprocess_output`</b>: 로깅하기 전에 출력을 변환하는 함수입니다.

* <b>`tracing_sample_rate`</b>: 트레이싱할 Call의 비율입니다(0.0\~1.0).

* <b>`enable_code_capture`</b>: 이 op의 소스 코드를 캡처할지 여부입니다.

* <b>`accumulator`</b>: 스트리밍 Op의 결과를 누적하는 함수입니다.

* <b>`attributes`</b>: 이 op가 생성하는 모든 Call에 가장 낮은 우선순위로 병합되는 기본 속성입니다.  키가 충돌하면 `weave.attributes()` 컨텍스트와 명시적인  Call별 속성이 이 값을 재정의합니다. 예약된  "weave" 키는 여기에서 설정할 수 없습니다.

* <b>`eager_call_start`</b>: True이면 Call 시작이 일괄 처리되지 않고 즉시 전송됩니다.  평가처럼 UI에 즉시 표시되어야 하는  장시간 실행 오퍼레이션에 유용합니다.
  **인수:**

* <b>`d`</b>: 업데이트할 기존 WeaveKwargs 딕셔너리입니다(선택).

* <b>`op`</b>: kind와 color를 추출할 Op입니다.
  **반환값:**
  attributes, display\_name 및 선택적으로 kind/color가 설정된 WeaveKwargs 딕셔너리입니다.

***

<SourceLink url="https://github.com/wandb/weave/blob/v0.53.1/weave/trace/op.py#L422" />

<h3 id="function-should_skip_tracing_for_op">
  <kbd>함수</kbd> `should_skip_tracing_for_op`
</h3>

```python theme={"system"}
should_skip_tracing_for_op(op: 'Op') → bool
```
