condor-retl
Sync warehouse data to downstream partners from plain Python.
Quick Start
Install the core library with a source backend and destination connector:
pip install "condor-retl[duckdb]" condor-retl-meta
Declare the rows to send and run the sync:
import retl
from retl.backends.duckdb import DuckDBSqlBackend
db = DuckDBSqlBackend(
database="warehouse.duckdb",
source_schema="main",
runtime_schema="retl",
)
newsletter_audience = retl.state(
name="newsletter_audience",
source=retl.source(
name="newsletter_customers",
mode="snapshot",
backend=db.source_backend(),
query="""
select customer_id, email
from customers
where email is not null
""",
),
key={"customer_id": "customer_id"},
identifiers=[{"type": "email", "value": "email"}],
target=retl.target("newsletter_customers"),
)
meta = retl.destinations.load(
"retl/meta",
binding_name="meta_primary",
credential_namespace="destinations.meta",
config_namespace="destinations.meta",
)
result = retl.runner(
name="newsletter_to_meta",
runtime_store=db.runtime_store(),
).run(
retl.sync(
name="newsletter_to_meta",
declaration=newsletter_audience,
destination=meta,
surface="custom_audiences",
),
dry_run=True,
)
print(result.to_text())
Change dry_run=True to dry_run=False when the plan looks right.
Use a different source backend or partner connector when you need one:
pip install "condor-retl[snowflake]"
pip install "condor-retl[bigquery]"
pip install "condor-retl[databricks]"
pip install "condor-retl[postgresql]"
pip install condor-retl-klaviyo
pip install condor-retl-google-ads-data-manager
pip install condor-retl-bing-ads
pip install condor-retl-tiktok-ads
The distribution is condor-retl; the Python package is retl.
Configuration
By default, RETL reads config and secrets from environment variables. The Meta example above expects:
export DESTINATIONS__META__ACCESS_TOKEN="..."
export DESTINATIONS__META__AD_ACCOUNT_ID="act_..."
What You Declare
source: the SQL rows to readstate: current facts, such as audience membership or profile attributesevent: occurred facts, such as purchases or signupssync: one state or event declaration bound to one partner surfacedestination: the partner connector and account configuration
RETL runs syncs through durable collect -> stage -> reconcile -> sync phases,
so dry runs, retries, and operator evidence use the same declarations as
production sends.
Partners
First-party connector packages currently cover:
| Package | Connector ref |
|---|---|
condor-retl-meta |
retl/meta |
condor-retl-klaviyo |
retl/klaviyo |
condor-retl-google-ads-data-manager |
retl/google-ads-data-manager |
condor-retl-bing-ads |
retl/bing-ads |
condor-retl-tiktok-ads |
retl/tiktok-ads |
Metadata
Release files for condor-retl 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| condor_retl-0.1.1.tar.gz | 220.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| condor_retl-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 518.1 kB
Release files / condor_retl-0.1.1.tar.gz
| Download URL | condor_retl-0.1.1.tar.gz |
|---|---|
| Size | 220.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a1fdbfd0dd0c7fcad5f650584c470de2c3463e0f866d623c868c04ea14fcfee7
|
|
BLAKE2b-256 checksum How to use checksums |
d08b72df91b97a1abed05464a56b2f5abe82671857fb88c925ab0d44d9cf8532
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 May 18, 2026.
Transparency logRelease files / condor_retl-0.1.1-py3-none-any.whl
| Download URL | condor_retl-0.1.1-py3-none-any.whl |
|---|---|
| Size | 297.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
39082c03defd5be657af340f6cd310b172657d0979b08808e3b2bf684aa94547
|
|
BLAKE2b-256 checksum How to use checksums |
0c0a8727b30a24fe9df8911fcedc1bd7c10e6e76049258c14b35ee79805fabb7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 May 18, 2026.
Transparency log