waxell-observe
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-observeis 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 waxellbrings the runtime, thewaxCLI, and observe together, available aswaxell.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 blocking —
rm -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:
- Explicit
init()arguments (highest) - Environment variables
- 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_idas 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.
Metadata
Release files for waxell-observe 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 112.8 MB
Release files / waxell_observe-0.1.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | waxell_observe-0.1.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 8.1 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
5309f0be41929759370e84ad4a46f7380f56291e08fab9c5076447eedec45d68
|
|
BLAKE2b-256 checksum How to use checksums |
316bfe0578926c2e9d4cbd91b40f0a8b1d730343a64a7161ef568fe3d1944bf8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / waxell_observe-0.1.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | waxell_observe-0.1.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 7.9 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
7fa0aef37e132c721f55dc15eb99d906c688d8c58d292fc76d8d40f1f2c434d7
|
|
BLAKE2b-256 checksum How to use checksums |
c017feeac35c78ef71bfed50c21020502eecdd5637073c65b3eb6d3b53a563cb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / waxell_observe-0.1.5-cp314-cp314-macosx_11_0_x86_64.whl
| Download URL | waxell_observe-0.1.5-cp314-cp314-macosx_11_0_x86_64.whl |
|---|---|
| Size | 3.2 MB |
| Tags | CPython 3.14 macOS 11.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
02ce584cee30f944b6ba48b00a58b8f52dc6bc45e30ac86534e299ba976aa711
|
|
BLAKE2b-256 checksum How to use checksums |
e9f844e49dadd6e7fc0145010c8a42b374d8af785a69f3a094ef4cd5b4928d8c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / waxell_observe-0.1.5-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | waxell_observe-0.1.5-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 3.1 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
4112e373676cc7971684c99c0c71780467e8eee26a7bb6a1eef9b94958015fec
|
|
BLAKE2b-256 checksum How to use checksums |
148de7d2b28a1d5eb421ddb60371396a13c19e03ddbcb1e3f59102af999231e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / waxell_observe-0.1.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | waxell_observe-0.1.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 8.2 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
e829a5f481e2888ecaa0b14fbd4ffcfde4f819d357fc5c2b365f4c8c777173c7
|
|
BLAKE2b-256 checksum How to use checksums |
4c5a8edef5b963085b2918ad5d6f9fe0b192b159f568aedefae09d75fc9861d8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / waxell_observe-0.1.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | waxell_observe-0.1.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 7.9 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
336efc5f3cff6fd4261794b20756665829220a64dddeb715a5f4ef9608a49d74
|
|
BLAKE2b-256 checksum How to use checksums |
fef74b0672408455822dd7ec8108522326394afb6671634af4926036593e7284
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / waxell_observe-0.1.5-cp313-cp313-macosx_11_0_x86_64.whl
| Download URL | waxell_observe-0.1.5-cp313-cp313-macosx_11_0_x86_64.whl |
|---|---|
| Size | 3.2 MB |
| Tags | CPython 3.13 macOS 11.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
9412eccb358fa686c041087581a8ad048ff6cac7d5d389703542a3a2e8347922
|
|
BLAKE2b-256 checksum How to use checksums |
d455b72faf8f0422401ae619a55cf3404e133e18c057d580bebb102b22b79165
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / waxell_observe-0.1.5-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | waxell_observe-0.1.5-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 3.1 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
f07a1cd4c18da58a1893dcc09f2f20cb5ac2595d2c4344fc946829f7296ead94
|
|
BLAKE2b-256 checksum How to use checksums |
90da06438f686cc246118b3fabc57418e507d3f155e333d6da931577e7f54622
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / waxell_observe-0.1.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | waxell_observe-0.1.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 8.2 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
3cbe5b44b9e710e878602fe894551ffd8d8ddf1f2e63e56029ae7093d1e2b559
|
|
BLAKE2b-256 checksum How to use checksums |
678ddb9c8e6acb1c8b3dd294b69ce157523528dc2f3acf1d25c2fa89ec61f3ce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / waxell_observe-0.1.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | waxell_observe-0.1.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 8.0 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
de8c27c240af6a6fb944bc936397578f40dce90d18264ac5bf3d5c204d50297a
|
|
BLAKE2b-256 checksum How to use checksums |
868c31550b3e70616e33efa68c8ad9a0c877cdf14ec10b14aa8f8fb4abc889c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / waxell_observe-0.1.5-cp312-cp312-macosx_11_0_x86_64.whl
| Download URL | waxell_observe-0.1.5-cp312-cp312-macosx_11_0_x86_64.whl |
|---|---|
| Size | 3.2 MB |
| Tags | CPython 3.12 macOS 11.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
662535e0e28f74077b25483b879082c6516e39fc80bba49ccff458d6f7716f4a
|
|
BLAKE2b-256 checksum How to use checksums |
2581073e53436fa67ac9b245f69631cca4c8b5951ff02e872540d1e42a4c9093
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / waxell_observe-0.1.5-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | waxell_observe-0.1.5-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 3.1 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
c2afe6ca8067b7be96fc9c0092ecd8ce35fd6af6b5466c004a04052005af69f2
|
|
BLAKE2b-256 checksum How to use checksums |
2e108a99b9f786abda50a234388a5997e6f81032ec8e0e3f6b4cdb44725ea892
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / waxell_observe-0.1.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | waxell_observe-0.1.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 8.5 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
8ffd24db574306bc0c82f095aa3ababb6e30fd7acf095ae3859df9146190e2ae
|
|
BLAKE2b-256 checksum How to use checksums |
c27f9c20b5779522f4c83517c21f70b7e9fe30a7d527b7a014dab75e4b3ebe44
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / waxell_observe-0.1.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | waxell_observe-0.1.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 8.3 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
c7a02e676c7e5e675693acf1600bc58e7a20c7d8728dfa1849480fb2a07c8e27
|
|
BLAKE2b-256 checksum How to use checksums |
8e0630b48295198fd08aac961c64f5e9edca1779dc15a2329a4c18c9e0aa8d76
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / waxell_observe-0.1.5-cp311-cp311-macosx_11_0_x86_64.whl
| Download URL | waxell_observe-0.1.5-cp311-cp311-macosx_11_0_x86_64.whl |
|---|---|
| Size | 3.2 MB |
| Tags | CPython 3.11 macOS 11.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
46ac07f57071cb233f145fe368d64772f3e2e3f871cfece8a81115a92b42177d
|
|
BLAKE2b-256 checksum How to use checksums |
c654c3cfd725aaaee37bee530efdd0c2551dbeddcb03967eb49c0932a2cf0eae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / waxell_observe-0.1.5-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | waxell_observe-0.1.5-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 3.1 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
3022c21f89aed5959cf1e9c1f1451a1c87653f4c2fcaf3103e8f1778aaf55ebc
|
|
BLAKE2b-256 checksum How to use checksums |
5eb8ce7de17d5c227edfc28f83114aff0ec06bdd0493d8a2411762ea84cf89dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / waxell_observe-0.1.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | waxell_observe-0.1.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 8.2 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
69df547885cd92917041c3349608ce69543428227d6c75a57ce86b6004182290
|
|
BLAKE2b-256 checksum How to use checksums |
c071ce9981d7742bc1393be3f729a859516d8e6f0a7b3f086ff15b2155e2fdad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / waxell_observe-0.1.5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | waxell_observe-0.1.5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 8.1 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
66ec6f1cc3b7184ef7ce98153f6d8ac90f51f46b192f474101efcc2c8a168fe2
|
|
BLAKE2b-256 checksum How to use checksums |
4d103871c7f608bf412c3ec13911b2bb32b1be4e81d056088fe90ae7af6a6a55
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / waxell_observe-0.1.5-cp310-cp310-macosx_11_0_x86_64.whl
| Download URL | waxell_observe-0.1.5-cp310-cp310-macosx_11_0_x86_64.whl |
|---|---|
| Size | 3.2 MB |
| Tags | CPython 3.10 macOS 11.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
12e0d3020f5f9dcdf5aa83c479ac6827b2e971ac6992c761bc146f3186816c3c
|
|
BLAKE2b-256 checksum How to use checksums |
968f148a34c3285680fb7220e90a3003d81b0479dcc6bfa36ef24654dca68cff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / waxell_observe-0.1.5-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | waxell_observe-0.1.5-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 3.1 MB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5901b6bf3eb0f3bd1b4b506415d2b1313771bb5b5e0d82e47357a72a162563db
|
|
BLAKE2b-256 checksum How to use checksums |
909154492ebd4a2c30e1292a94339323d88a8828758ca577d75d1dad07c341c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|