Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ccflow/examples/etl/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from io import StringIO

from bs4 import BeautifulSoup
from httpx import Client
from httpx2 import Client
from pydantic import Field

from ccflow import CallableModel, ContextBase, Flow, GenericResult, NullContext
Expand Down
2 changes: 1 addition & 1 deletion docs/wiki/how-to/Retry-on-Failure.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ with FlowOptionsOverride(options={"evaluator": retry}):
`max_delay` caps the *cumulative* sleep time between retries (not total runtime): once the next backoff would push accumulated waiting over the budget, no further retries happen. Use `retry_exceptions` / `no_retry_exceptions` to choose which exceptions are retried.

> [!NOTE]
> `retry_exceptions` and `no_retry_exceptions` accept either a bare exception class (as above) or an importable path string (e.g. `"httpx.ConnectError"`, the form for YAML/Hydra configs). Paths are imported eagerly, so a third-party exception requires that package installed.
> `retry_exceptions` and `no_retry_exceptions` accept either a bare exception class (as above) or an importable path string (e.g. `"httpx2.ConnectError"`, the form for YAML/Hydra configs). Paths are imported eagerly, so a third-party exception requires that package installed.

The evaluator is transparent (a successful result is identical to a direct call, so caching and dependency graphs are unaffected) and holds no per-call state, so one instance is safe to share across threads and combine with parallel evaluators. Place it *inside* a parallel evaluator to retry each task independently, or *outside* to retry the whole dispatch as a unit.

Expand Down
2 changes: 1 addition & 1 deletion docs/wiki/tutorials/Building-an-ETL-Pipeline.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ The extract step queries a site over HTTP and returns its HTML:

```python
from typing import Optional
from httpx import Client
from httpx2 import Client
from ccflow import CallableModel, Flow, GenericResult


Expand Down
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ develop = [
"opentelemetry-api",
# Test deps
"beautifulsoup4",
"httpx",
"httpx2",
"pytest",
"pytest-asyncio",
"pytest-cov",
Expand All @@ -110,7 +110,7 @@ develop = [
]
test = [
"beautifulsoup4",
"httpx",
"httpx2",
"opentelemetry-api",
"pytest",
"pytest-asyncio",
Expand Down
Loading