Skip to main content

Lightweight observability & governance for any AI agent framework

Project description

waxell-observe

PyPI - Version Docs License: Apache 2.0

Overview · Quickstart · Installation · Claude Code · CLI Reference

Lightweight observability and governance for any AI agent framework. Add production-grade tracing, cost tracking, and policy enforcement to your agents with a single line of code.

Where this fits. waxell-observe is the standalone observability SDK — install it on its own to instrument an agent you already have (LangChain, OpenAI Agents, CrewAI, …). If you're building agents on Waxell, you don't need to install this separately: pip install waxell brings the runtime, the wax CLI, and observe together, available as waxell.observe.

Installation

# Core (HTTP telemetry only)
pip install waxell-observe

# With OpenTelemetry tracing (recommended)
pip install "waxell-observe[otel]"

# With infrastructure auto-instrumentation (HTTP, databases, caches, queues)
pip install "waxell-observe[infra]"

# With LangChain integration
pip install "waxell-observe[otel,langchain]"

# Everything
pip install "waxell-observe[all]"

# Development (includes test dependencies)
pip install "waxell-observe[dev,otel]"

Quick Start

import waxell_observe

# One-line init — configures tracing, AI/ML instrumentation, and infrastructure instrumentation
waxell_observe.init(api_key="wax_sk_...")

# That's it. All LLM calls, HTTP requests, database queries, and cache operations
# are now traced automatically.

After calling init(), every LLM call, HTTP request, database query, and cache operation made by your agent is automatically captured — model names, token counts, latency, SQL statements, HTTP endpoints, Redis commands — all nested in a trace tree visible in the Waxell dashboard.

Auto-Instrumentation

AI/ML Libraries

init() automatically detects and instruments installed AI/ML libraries:

Library What's Captured
OpenAI SDK All chat.completions.create() calls — model, tokens, latency, streaming
Anthropic SDK All messages.create() calls — model, tokens, latency
LangChain Chain executions, LLM calls, tool invocations via callback handler
+ 145 more Bedrock, Gemini, Mistral, Cohere, Groq, Pinecone, Chroma, etc.

To instrument only specific AI/ML libraries:

waxell_observe.init(api_key="wax_sk_...", instrument=["openai"])

Infrastructure Libraries

When installed with the [infra] extra, init() also instruments infrastructure libraries to capture everything your agent touches:

HTTP Clients:

Library Span Examples
httpx POST api.openai.com, GET api.example.com
requests POST api.stripe.com, GET api.weather.com
urllib3 Lower-level HTTP spans
aiohttp Async HTTP client spans

Databases:

Library Span Examples
psycopg2 / psycopg pg SELECT, pg INSERT
asyncpg / aiopg pg SELECT (async)
SQLAlchemy pg SELECT users, mysql INSERT orders
PyMongo mongo FIND, mongo AGGREGATE
PyMySQL / mysqlclient mysql SELECT, mysql INSERT
pymssql mssql SELECT, mssql INSERT
sqlite3 sqlite SELECT, sqlite CREATE
Elasticsearch es SEARCH, es INDEX
Cassandra cassandra SELECT

Caching:

Library Span Examples
redis redis GET, redis SET, redis HGET
pymemcache memcache GET, memcache SET

Message Queues & Task Brokers:

Library Span Examples
Celery apply_async/task, run/task
kafka-python / confluent-kafka kafka send events, kafka receive events
pika / aio-pika RabbitMQ publish/consume
aiokafka Async Kafka spans

Cloud & RPC:

Library Span Examples
botocore AWS SDK calls (aws s3.PutObject, aws dynamodb.GetItem)
boto3 (SQS) aws sqs.SendMessage
gRPC grpc UserService.GetUser

Example Trace Tree

With both AI/ML and infrastructure instrumentation enabled:

agent: rag-demo.document-qa (3200ms)
├── chain: analyze_query
│   ├── llm: chat gpt-4o (800ms)
│   │   └── tool: POST api.openai.com (790ms)
│   └── tool: redis GET session:abc (5ms)
├── chain: retrieve_documents
│   ├── tool: pg SELECT * FROM documents WHERE ... (15ms)
│   └── tool: POST pinecone.io/query (200ms)
├── chain: synthesize_answer
│   └── llm: chat gpt-4o (1000ms)
│       └── tool: POST api.openai.com (990ms)
└── [governance summary]

Controlling Infrastructure Instrumentation

# Default: auto-detect and instrument everything available
waxell_observe.init()

# Disable all infrastructure instrumentation
waxell_observe.init(instrument_infra=False)

# Only instrument specific libraries (allowlist)
waxell_observe.init(infra_libraries=["redis", "httpx", "psycopg2"])

# Instrument everything except specific libraries (blocklist)
waxell_observe.init(infra_exclude=["celery", "grpc"])

Coexistence with Existing OTel

If your application already uses OpenTelemetry instrumentation, waxell-observe works alongside it:

  • No double-patching: OTel instrumentors have a singleton guard. If you already called RedisInstrumentor().instrument(), our call is a safe no-op.
  • Additive: We add our span processor to the global TracerProvider alongside your existing exporters (Datadog, Jaeger, Honeycomb, etc.). Your spans still flow to your backend AND also appear in Waxell.
  • Context-gated: Outside of agent runs, our processor does nothing — your app's normal telemetry is untouched.

Manual Instrumentation

@waxell_agent Decorator

Wrap any function to create an observed agent run:

from waxell_observe import waxell_agent

@waxell_agent(agent_name="my-agent")
async def run_agent(query: str, waxell_ctx=None) -> str:
    # waxell_ctx is automatically injected when declared as a parameter
    response = openai_client.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": query}],
    )

    # Record steps for hierarchical trace visualization
    waxell_ctx.record_step("llm_response", {"model": "gpt-4o"})

    return response.choices[0].message.content

WaxellContext Context Manager

For more control, use the context manager directly. Works as both async with and plain with:

from waxell_observe import WaxellContext

# Async
async with WaxellContext(agent_name="my-agent") as ctx:
    result = await my_agent.run(query)
    ctx.record_llm_call(model="gpt-4o", tokens_in=150, tokens_out=80)
    ctx.record_step("retrieval", {"documents": 5})
    ctx.set_result({"output": result})

# Sync — ideal for batch scripts, CLI tools, ETL pipelines
with WaxellContext(agent_name="my-agent") as ctx:
    result = my_agent.run(query)
    ctx.record_llm_call(model="gpt-4o", tokens_in=150, tokens_out=80)
    ctx.record_step("retrieval", {"documents": 5})
    ctx.set_result({"output": result})

LangChain Integration

from waxell_observe.integrations.langchain import create_langchain_handler

handler = create_langchain_handler(agent_name="my-langchain-agent")
chain.invoke(input, config={"callbacks": [handler]})
handler.flush_sync()

Claude Code & Cowork

Add observability and security guardrails to Claude Code sessions:

# Set up hooks (basic observability)
wax claude-code setup

# With governance (policy enforcement on Bash/Edit/Write)
wax claude-code setup --governance

# With MCP tools (Claude can check policies proactively)
wax claude-code setup --governance --mcp

Every session is traced as an agent run — tool calls, LLM usage, and cost are captured automatically. The local guard provides instant security checks:

  • Destructive command blockingrm -rf /, fork bombs, pipe-to-shell
  • Sensitive file protection.env, private keys, credentials
  • Git safety — block force push, hard reset, config edits on protected branches
  • Path boundary enforcement — block writes outside project directory
  • Network access control — block WebFetch to internal/private URLs
  • CI/CD protection — require confirmation for Dockerfiles, CI configs, Terraform
  • Cowork conflict detection — warn when teammate modified the same file

Customize via .waxell/guard.json:

{
  "git_protected_branches": ["main", "master", "staging"],
  "max_file_changes": 30,
  "path_boundary_enabled": true
}

See the full Claude Code docs for server-side policies, MCP tools, and all configuration options.

Session Tracking

Group related agent runs into sessions:

from waxell_observe import generate_session_id, waxell_agent

session = generate_session_id()  # "sess_" + 16 hex chars

@waxell_agent(agent_name="chat-agent", session_id=session)
async def handle_message(msg: str) -> str:
    ...

Tags and Metadata

Attach searchable metadata to spans:

@waxell_agent(agent_name="my-agent")
async def run_agent(query: str, waxell_ctx=None) -> str:
    waxell_ctx.add_tags(environment="production", version="1.2.0")
    waxell_ctx.add_metadata(user_id="u_123", prompt_template="v3")
    ...

Governance

Policy Enforcement

Policies configured in the Waxell platform are automatically enforced:

from waxell_observe import waxell_agent, PolicyViolationError

@waxell_agent(agent_name="my-agent", enforce_policy=True)
async def run_agent(query: str) -> str:
    ...  # Raises PolicyViolationError if blocked by policy

# Disable policy enforcement for development
@waxell_agent(agent_name="my-agent", enforce_policy=False)
async def run_agent_dev(query: str) -> str:
    ...

Mid-Execution Governance

Enable cooperative policy checks during agent execution:

@waxell_agent(agent_name="my-agent", mid_execution_governance=True)
async def run_agent(query: str, waxell_ctx=None) -> str:
    # Each record_step() triggers a server-side policy check.
    # If a policy blocks, PolicyViolationError is raised.
    waxell_ctx.record_step("step_1", {"tokens_so_far": 5000})
    waxell_ctx.record_step("step_2", {"tokens_so_far": 12000})  # May halt here
    ...

Configuration

Configuration is resolved in priority order:

  1. Explicit init() arguments (highest)
  2. Environment variables
  3. Config file (~/.waxell/config)

init() Parameters

waxell_observe.init(
    # Core
    api_key="wax_sk_...",        # API key (or WAXELL_API_KEY env var)
    api_url="https://...",        # API URL (or WAXELL_API_URL env var)
    debug=False,                  # Enable debug logging + console span export

    # Tracing
    capture_content=False,        # Include prompt/response content in traces
    resource_attributes=None,     # Custom OTel resource attributes on all spans
                                  # e.g. {"deployment.environment": "production"}

    # AI/ML Instrumentation
    instrument=None,              # List of AI/ML libraries (None = auto-detect all)
                                  # e.g. ["openai", "anthropic"]

    # Infrastructure Instrumentation
    instrument_infra=True,        # Enable infra auto-instrumentation
    infra_libraries=None,         # Allowlist (None = auto-detect all installed)
                                  # e.g. ["redis", "httpx", "psycopg2"]
    infra_exclude=None,           # Blocklist — exclude specific libraries
                                  # e.g. ["celery", "grpc"]

    # Prompt Guard
    prompt_guard=False,           # Enable client-side PII/injection detection
    prompt_guard_server=False,    # Enable server-side ML-powered detection
    prompt_guard_action="block",  # "block", "warn", or "redact"
)

Environment Variables

Variable Description Default
WAXELL_API_KEY API key (wax_sk_...)
WAXELL_API_URL Platform API URL
WAXELL_OBSERVE Kill switch — set to false to disable all telemetry true
WAXELL_INSTRUMENT_INFRA Enable/disable infrastructure instrumentation true
WAXELL_INFRA_EXCLUDE Comma-delimited list of infra libraries to exclude
WAXELL_DEBUG Enable debug logging false
WAXELL_CAPTURE_CONTENT Capture prompt/response content false
WAXELL_PROMPT_GUARD Enable prompt guard false

Config File (~/.waxell/config)

INI-format config file with profile support:

[default]
api_url = https://api.waxell.dev
api_key = wax_sk_...
instrument_infra = true
infra_exclude = celery,grpc
debug = false
capture_content = false

[local]
api_url = http://localhost:8001
api_key = wax_sk_...
instrument_infra = true

The config file is created automatically by wax login or can be edited manually.

Kill Switch

Disable all observability with a single environment variable:

export WAXELL_OBSERVE=false  # Disables init(), auto-instrumentation, and span emission

The agent code runs identically — only telemetry emission is suppressed.

Architecture

Your Agent Code
    │
    ├─► waxell-observe SDK (this package)
    │       ├─► Auto-instrumented AI/ML spans (OpenAI, Anthropic, 145+ libraries)
    │       ├─► Auto-instrumented infra spans (HTTP, Redis, PostgreSQL, 30 libraries)
    │       ├─► HTTP REST API (runs, LLM calls, steps, policy checks)
    │       └─► OTel OTLP/HTTP (spans with gen_ai.* semantic conventions)
    │
    └─► Waxell Platform
            ├─► OTel Collector (tenant routing via X-Scope-OrgID)
            ├─► Tempo (distributed traces)
            ├─► Loki (structured logs)
            ├─► PostgreSQL (runs, LLM records, policy audit)
            └─► Grafana (dashboards, trace explorer)

Key design principles:

  • Dual data path: OTel spans flow to Tempo for trace visualization; HTTP REST calls persist structured data to PostgreSQL for cost tracking, governance, and analytics.
  • Zero latency impact: OTel spans export in a background thread via BatchSpanProcessor. Agent execution sees <0.01ms p99 overhead.
  • Fail-safe: If the Waxell backend is unreachable, telemetry is silently dropped. Agent execution continues unimpaired.
  • Multi-tenant: Tenant isolation via API key resolution at SDK init. Spans include waxell.tenant_id as an OTel resource attribute for collector routing.

Requirements

  • Python 3.10+
  • httpx (included in base install)
  • OpenTelemetry SDK 1.20+ (optional, via [otel] extra)
  • Infrastructure instrumentors (optional, via [infra] extra)

Development

# Install with dev dependencies
pip install -e "observe/waxell-observe[dev,otel,infra]"

# Run SDK tests
pytest observe/waxell-observe/tests/ -v

# Run integration tests (requires Django)
cd controlplane/waxell-controlplane
DJANGO_SETTINGS_MODULE=config.settings pytest ../../tests/integration/ -v

# Run benchmarks
pytest tests/benchmarks/ -v --tb=short

License

Apache 2.0 — see LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

waxell_observe-0.1.4-cp314-cp314-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.14Windows x86-64

waxell_observe-0.1.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

waxell_observe-0.1.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (6.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

waxell_observe-0.1.4-cp314-cp314-macosx_11_0_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.14macOS 11.0+ x86-64

waxell_observe-0.1.4-cp314-cp314-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

waxell_observe-0.1.4-cp313-cp313-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.13Windows x86-64

waxell_observe-0.1.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

waxell_observe-0.1.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (6.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

waxell_observe-0.1.4-cp313-cp313-macosx_11_0_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

waxell_observe-0.1.4-cp313-cp313-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

waxell_observe-0.1.4-cp312-cp312-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.12Windows x86-64

waxell_observe-0.1.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

waxell_observe-0.1.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (6.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

waxell_observe-0.1.4-cp312-cp312-macosx_11_0_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

waxell_observe-0.1.4-cp312-cp312-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

waxell_observe-0.1.4-cp311-cp311-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.11Windows x86-64

waxell_observe-0.1.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (7.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

waxell_observe-0.1.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (6.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

waxell_observe-0.1.4-cp311-cp311-macosx_11_0_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

waxell_observe-0.1.4-cp311-cp311-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

waxell_observe-0.1.4-cp310-cp310-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.10Windows x86-64

waxell_observe-0.1.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

waxell_observe-0.1.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (6.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

waxell_observe-0.1.4-cp310-cp310-macosx_11_0_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

waxell_observe-0.1.4-cp310-cp310-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file waxell_observe-0.1.4-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 6feb6edb2a2dbe6a8b8e15e69a12f2cf298d96f5f211d5695804ef4bc500e17c
MD5 6574c0afd89ce69c1ac4e1c199ae51c4
BLAKE2b-256 92fcd1e60ad65a1d7e79bc4cc7d634ac2624a8b3c52b0fbb108e1f9f068e55ea

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a1c48da607fdba8c22081011092e206adb10be0de125965762c1258510206645
MD5 5375cfad45f6970b3665ebae14d4d046
BLAKE2b-256 a5b729b98fc57714dce672863078f390f798d5707679ba2def4c4099b14849d2

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e5fdf99fe0a4f29043d13de776d01581283595dcdae23dd9cbb14715fd06ce0b
MD5 fb6e3ec6f0a50e34a219f7f0a40843a5
BLAKE2b-256 e2e5675455a9ef1cff252323fe9262f04b050f490c168b0b217a53ac3777274d

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp314-cp314-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp314-cp314-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 3c463da5b37e8be7e3f42dded68a3ad49eda612670bf5829b357ae1fbe0a0b17
MD5 3a682803d2cf5c5d641d00d12ab2d0a0
BLAKE2b-256 6a4c0b9a24349ec32d42485e1df268b4dadf81a9bd08a098149ca912b381a675

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9d821cf5fd7f69b76ea61d62f47accbdc7e87a9159d97360d2b469b98c6ab6be
MD5 7787d619b9796cd070d0761ada2181e9
BLAKE2b-256 191c2dbed8ade73ed68510c5d9596dec8b81eaa14f31f81049c1a9eb9b882f2d

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3c4214991341b9dd5b1a2c5c40b2ec22413833750274dd58a3c1d05e4f798574
MD5 152ad1564583f6054da28e53cc8b29b9
BLAKE2b-256 5f1fe761790d0c2b39c20d9d236ecad8dd3bceb49d54c29e19d4a72b8c631c31

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 44332650aeaf8176ef33ad067aeaafd6f93b3422fa2c6330ece17e8bb17ea512
MD5 134e6dde090fdf22d1479a7c623357b3
BLAKE2b-256 f8c6d88c5c4aa98cdf915bc573dc14d544c1a839b1310b90a3203323ee35655f

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 28f4463e422bbd126809389da57caef317ebe6e598289c38b55b4cc8afa42e0f
MD5 cb5a953e6d575e91076296cfd682ff21
BLAKE2b-256 644777c83f014972c267d72858a7edc277e9946cc95b92564b4b12ac5ed79453

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp313-cp313-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 589c0b6d2e3cd3a4228cf0013dbeb7f1968ee53ea1dc9ac8a47eeae01d2c1d47
MD5 446bb7e1d5c02a3b3507a3a1923f1463
BLAKE2b-256 38c595b8f21b3385b8871b8bb7a91f03ecd87b514841439a045938cbfb1ac39a

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3ec321355111a6eb0e8d1f91a10f020c3fa5d5048d431dadc80cc962e6294716
MD5 873c124cadc9e840eba7f42ebacd764a
BLAKE2b-256 d0a2453b495db919b308954ff359507739316828f5bdc2555b5b544ae50779fe

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 aa9e9b01b09005cb864b78152b18e9007142f06411bbee0f1712efa489a7359c
MD5 945373dc6eddd59624e4e21b6aa42b47
BLAKE2b-256 f9fac159f0d3b0e7a63de339d5f98cbbd241e944d8b1b63d739ec515ed10c482

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ff119b969973fe158d4a8481c7775d3358c9ad6acdd3065c4b81e78093476092
MD5 d9688d81f99ded8f7f203aa0bb888b73
BLAKE2b-256 2982cd49a08b08c9e0e53322accfb3847920dcfb60b0a26f9d1ca485b0c6cf76

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9ede1739bb945d494a0947eba6d5ad0379c63031693dd321f084631a7caaa180
MD5 dbd028cbc7ee2f473dcfd1f05a88b6e7
BLAKE2b-256 b9df3a925b71d5a0f6529570cb666226d64339692be6f2023396a51a3276be8e

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 9b9f080c96eb87736cefb542ce271e514ca86ee9480212151c3e26993f0b0980
MD5 77b3ef81bfa9b0064c8d00cc7b3d43c4
BLAKE2b-256 b629c1830f0a0c577803e07d0cfd787bcbeb6ab6ca593b477ebc533bd1e25fb4

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d9a4daf2cc2edc647509e2ae4c0f94c005705568e9df7b3e978e1a7ee359e7ea
MD5 d6af846d1588093b6380b7b720174834
BLAKE2b-256 67ad78376c10c77bbb2b47188323b42cc0750beddd9879cf808c4cb9d3573c92

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 cc176942796c9cf5c109bf514f2f30300e22bc86a349f689848a97a5c54301ae
MD5 235b9a23801d3a7b3c9c041a7b781037
BLAKE2b-256 cef976e820aa17e7e3d64ad11f37cc2a52c5bc2f5b264c8bd57aad3a203c1b6d

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1cc5150b9244e9288784137729dc93ad13e6894ca9d0f62af79673e7b83c1824
MD5 72d4ed889a90f954a17aa0fa4d2eedda
BLAKE2b-256 d1ba734b71d1e82a9946c3fbf4927c6d2fce43b59209d767befa1bf1d6033354

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e2aa091012d784338c15ed220983e7cfb2214f1e641f831f4ec6d45d737b9232
MD5 28e47a7aeb463b6e07d146ce47c43ed3
BLAKE2b-256 9359140f8e78fa3075f722683b12910f5b3313c779e3b96ac6688a690483c47e

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 dac97bb497f1ff141774acfef3c1d437e2d3b7968d2246bb82045f2924eb0e9a
MD5 9a4e9864318779c478f01337671f2b0d
BLAKE2b-256 de79ddf95d1cef51ac4b7b6c89e0efdcdd7596499cf2539623a79be582eb9193

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b681e511601631e3ac48d1bb3afb8d0dc2024f501e669d871ba98fba81653c1a
MD5 37e6a2bc3536cd68dac8d179a89b9370
BLAKE2b-256 1c4c43346caeaed0318a1dc537407cdb8f0c329cf8f36bf14eac5003b3062474

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ef6296fb6992bb317e594203d8ae82439356711f9e956d55d513954e0139d007
MD5 1b748aae62ff045c8dd96a1a19c87612
BLAKE2b-256 0a467084e8af48ff98c91a854b491c3bbc6b44805c9a353fc5b41641cdf8ab9e

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 11bc2153dfe41e3dd3739dd3d9e6ddb8ba1bc35406d2604dc04ba4f57d128677
MD5 b51561fefeedf550e80fefb0e1f7469f
BLAKE2b-256 1e0c306495b946d0ce4fca42a51b69ffcf178234103f4d819551dd7f55b7b353

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6943a66e28b99cf6f3b9cabbc39ddc46e00276f83a451694665d6667ea0b6467
MD5 ec11f5bca20c32688b682bfff40f7070
BLAKE2b-256 dd05666803837c4bca9640f33065837ffe3f7e9d4293207137dcc458b9c1bac7

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 43d19674fcaa62123602ea91bfbdb71405b8795de7ce8f50161ffcc6a3e8e6aa
MD5 cc7779ca967e69937cf5d259ca457c51
BLAKE2b-256 d79084b7e71dc41066199d2e6e0b5b45239314276305433af1b00efef160e2c6

See more details on using hashes here.

File details

Details for the file waxell_observe-0.1.4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for waxell_observe-0.1.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0aef22862c2ef595fc914463cebe6be79ad0f6e8db2d5c55514a22666d955b25
MD5 7951049ba09b2bc2823db9d2ce0d241d
BLAKE2b-256 9b14b0f12b4f1b9eba9d3b43d517af5a102088e18ce0e381aa0b858411228b51

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page