Skip to main content

Strata — prototype

Declarative, versioned, immutable data transformations. Compiles to SQL (DuckDB/Postgres/BigQuery/Snowflake), with column-level lineage and 3-phase contract pins.

Working title v0.1 — prototype lives in prototype/. Spec in ../spec/.

Install (dev)

cd prototype
python -m venv .venv
.venv/bin/pip install -e ".[dev]"
strata --help

Or without venv after publish:

pip install strata-lang
strata --help

uv (standalone tool, no venv)

# from PyPI (once published) — package is strata-lang, entry point stays `strata`
uv tool install strata-lang
strata --help

# from Git (before PyPI, or dev)
uv tool install git+https://github.com/Tzinny-dev/strata --from prototype
strata --help

# upgrade
uv tool upgrade strata-lang
pip install --upgrade strata-lang

Quick start

# typecheck + contracts + lineage (no DB)
strata build examples/daily_orders.strata

# emit SQL for a dialect
strata compile examples/daily_orders.strata --dialect postgres

# materialize in DuckDB (with demo fixtures)
strata run examples/daily_orders.strata --seed -o /tmp/demo.duckdb
strata test examples/daily_orders.strata --seed

See docs/getting-started.md and docs/tutorial.md for the full walkthrough (every code block was run against the CLI before writing).

Warehouses

Warehouse SQL emit (compile --dialect) Engine run (run -o / exec) Driver
DuckDB DuckDBWarehouse + dbcompat (duckdb default dep) duckdb
Postgres cli.open_warehouse("postgres://...")dbcompat.PGConn (probado vs Postgres 16 efímero) — adapters.get_adapter("postgres") sigue stub E095 a propósito pip install strata[postgres]
BigQuery ❌ stub E095 pip install strata[bigquery]
Snowflake ❌ stub E095 pip install strata[snowflake]

Experimental modules

Module Status Notes
strata.integrations scaffolding only airflow_dag_factory/prefect_flow_factory return strings of Python source; airflow/prefect not installed by default (pip install strata[airflow] / [prefect]). No real DAG/flow is instantiated — see plan-hito-2.md §B.
strata.testing fixture helpers only create_test_source/FreshnessTestHelper emit .strata text or temp tables; not wired to the executor for e2e. Use strata.exec for real freshness gates.
strata.observability connected MetricsCollector is imported by strata.exec._run_locked and exposed via get_metrics(); exporters are formatters (Prometheus/StatsD/JSON) without external deps.

Development

.venv/bin/pytest -q
.venv/bin/pytest --cov=strata --cov-fail-under=80

Coverage gate: 80% (pyproject.toml / pytest.ini).

Release files for strata-lang 0.1.0

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

Built distribution (wheel)

Table of built distributions (wheels) for strata-lang 0.1.0
File Interpreter ABI Platform
strata_lang-0.1.0-py3-none-any.whl Python 3 none any Details

Release files / strata_lang-0.1.0-py3-none-any.whl

Download URL strata_lang-0.1.0-py3-none-any.whl
Size 152.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
87de2af09fb90f380fb47b800f78d8d48cf85c57994b47c13e008661d6586de0
BLAKE2b-256 checksum
How to use checksums
5d2088d7c9e37a09f9c4561ce6d3ed0f3bf8850b212aba656793c4c0fdc84cfd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

This release

0.1.0 This release

1 release file

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