Skip to main content

Tiozin, your friendly ETL framework

Project description

Tiozin

Tiozin - Your friendly ETL framework


ETL shouldn't require 80 files, 50 YAMLs, and a PhD in complexity.

Tiozin brings it back to basics: Transform. Input. Output. Nothing more, nothing less.

A lightweight Python framework that makes data jobs declarative, testable, and actually enjoyable to write.

Philosophy

Your uncle's advice: keep it simple, readable, and testable.

Tiozin is built around a small set of principles that are not features but constraints that shape the design.

  • Declarative: Define what, not how
  • Pluggable: Swap runners, registries, and plugins when needed
  • Metadata-native: Execution and metadata walk together
  • Observable: Logs that actually help
  • Testable: Mock anything, validate everything

One-Minute Example

pip install tiozin

Define a declarative job

kind: LinearJob
name: example_job
owner: tiozin@tiozin.com
maintainer: tiozin
cost_center: tio_scrooge

org: tiozin
region: latam
domain: marketing
subdomain: campaigns
layer: refined
product: users
model: customers

runner:
  kind: NoOpRunner
  name: postgres
  log_level: "{{ ENV.LOG_LEVEL }}"
  db_url: postgres://user:{{ SECRET.FAKE_PASSWORD }}@host:5432/dbname

inputs:
  - kind: NoOpInput
    name: load_it
    layer: raw
    path: .output/lake-{{domain}}-{{layer}}/{{product}}/{{model}}/date={{ DAY[-1] }}

transforms:
  - kind: NoOpTransform
    name: process_it
    strategy: sha256

outputs:
  - kind: NoOpOutput
    name: save_it
    path: .output/lake-{{domain}}-{{layer}}/{{product}}/{{model}}/{{ today }}

Run it:

$ tiozin run examples/jobs/dummy.yaml

Using Python directly

from tiozin import TiozinApp

app = TiozinApp()
app.run("examples/jobs/dummy.yaml")

Done. No ceremony, no boilerplate.

Who is Tiozin for?

Tiozin is human-readable and machine-generatable:

  • Data engineers who want reusable pipeline components
  • Teams that value declarative jobs
  • Projects that require testable ETL logic
  • Pipelines where metadata is connected to the execution model
  • Teams leveraging AI agents 🤖 to author and maintain data jobs

Documentation

Writing Declarative Jobs

Concepts

Extending Tiozin

How-to Guides

Reference

Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.

License

This project is licensed under the Mozilla Public License 2.0.

Project details


Download files

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

Source Distribution

tiozin-3.2.0.tar.gz (97.4 kB view details)

Uploaded Source

Built Distribution

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

tiozin-3.2.0-py3-none-any.whl (154.1 kB view details)

Uploaded Python 3

File details

Details for the file tiozin-3.2.0.tar.gz.

File metadata

  • Download URL: tiozin-3.2.0.tar.gz
  • Upload date:
  • Size: 97.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for tiozin-3.2.0.tar.gz
Algorithm Hash digest
SHA256 07318ba33e0d33dc3081bb3e58f3e1fdf8f2504849a23eea6c34d967e197c9ca
MD5 0867550b506d88da2646bf11e412d0a8
BLAKE2b-256 94b3cfd8a6fff64eb45d66e9bbfeb3e2109829e548ca07f40a16a5540c74edc5

See more details on using hashes here.

File details

Details for the file tiozin-3.2.0-py3-none-any.whl.

File metadata

  • Download URL: tiozin-3.2.0-py3-none-any.whl
  • Upload date:
  • Size: 154.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for tiozin-3.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 16c3c822940aeed0d36123d1d58821199f66b41684e842594fd88c1d2c024b02
MD5 680cb26889f6101c478a46670fd17c17
BLAKE2b-256 77c79260bc6eb318117d443caf276b226f9b6055629c1beb66cccca09c38f9d2

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