Skip to main content
Yanked

This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Reason given by maintainers: Merged into analog-sdk; install analog-sdk instead.

analog-fetcher

JS-aware fetching for Analog. Two fetchers, both implementing the analog.fetcher.Fetcher protocol:

  • AnalogFetcher — the recommended default. Does a cheap HTTP fetch first, analyzes the HTML to decide if rendering is actually needed, and only escalates to a real browser when it is. Caches the decision per-domain so subsequent fetches skip the probe.
  • PlaywrightFetcher — direct Playwright access. Use when you know you want JS rendering on every fetch and don't want the probe overhead.

When analog-fetcher is installed alongside analog-sdk, AnalogFetcher becomes the SDK's default automatically — no code change required on the caller side.

Installation

pip install "analog-sdk[fetcher]"   # installs analog-sdk + analog-fetcher
# or
pip install analog-fetcher           # standalone (pulls analog-sdk too)

Then install the browser binaries Playwright uses:

playwright install chromium

Usage

The simplest path — let the SDK use the smart default:

from analog import analog

# AnalogFetcher is the default when analog-fetcher is installed.
result = analog("https://example.com")

Or construct one explicitly with custom behavior:

from analog import analog
from analog_fetcher import AnalogFetcher, PlaywrightFetcher

# Customize the rich fetcher used during escalation.
fetcher = AnalogFetcher(
    rich=PlaywrightFetcher(wait_for=".loaded", headless=True),
)
result = analog("https://example.com", fetcher=fetcher)

Or force Playwright on every fetch:

from analog_fetcher import PlaywrightFetcher

with PlaywrightFetcher(headless=True) as fetcher:
    r1 = analog("https://example.com/a", fetcher=fetcher)
    r2 = analog("https://example.com/b", fetcher=fetcher)
    # Browser launches once, is reused across both fetches.

Decision cache

AnalogFetcher records each domain's "needs JS?" verdict on disk so repeat fetches skip the probe. The cache lives under your per-user cache directory:

  • Linux: ~/.cache/analog/fetch_decisions.json (or $XDG_CACHE_HOME/analog/…)
  • macOS: ~/Library/Caches/analog/fetch_decisions.json

Set ANALOG_CACHE_DIR to relocate it, or pass cache_path= to AnalogFetcher. Verdicts expire after 7 days; pass cache_ttl_seconds=0 to re-probe on every fetch, or delete the file to reset sooner.

See https://getanalog.io for full documentation.

License

MIT — see LICENSE.

Metadata

Release files for analog-fetcher 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for analog-fetcher 0.3.1
File Size Uploaded
analog_fetcher-0.3.1.tar.gz 34.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for analog-fetcher 0.3.1
File Interpreter ABI Platform
analog_fetcher-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 62.2 kB

Release files / analog_fetcher-0.3.1.tar.gz

Download URL analog_fetcher-0.3.1.tar.gz
Size 34.2 kB
Tags Source
SHA-256 checksum
How to use checksums
3c5f5710fd27a08d0cf7a93e33fd5acdea08fa03c5bc1871f943f6718c8eb755
BLAKE2b-256 checksum
How to use checksums
78196c2e4e9a374a2ebccc2b59f43999d30707575955226f420091cd74d05c0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 19, 2026.

Transparency log

Release files / analog_fetcher-0.3.1-py3-none-any.whl

Download URL analog_fetcher-0.3.1-py3-none-any.whl
Size 28.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b231caf9110f5c3fe883f348cc79dbf7b2a89fe5f522303d4f1e05263cf9924e
BLAKE2b-256 checksum
How to use checksums
1f7a48c7f3608134b8146ecf716699faf1ebd4d1eb01e709c4a6ff26e37a6a90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 19, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page