Tiozin, your friendly ETL framework
Project description
Tiozin
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.
Quick Start
pip install tiozin
Option 1: Define a job in YAML
kind: Job
name: kinglear_word_count_job
org: tiozin
region: latam
domain: literature
product: shakespeare
model: kinglear
layer: refined
runner:
kind: SparkRunner
inputs:
- kind: SparkFileInput
name: load_poems
path: s3://{{org}}-{{domain}}-raw/{{product}}/{{model}}/date={{ DAY[-1] }}
transforms:
- kind: SparkWordCountTransform
name: word_count
outputs:
- kind: SparkFileOutput
name: save_word_counts
path: s3://{{org}}-{{domain}}-{{layer}}/{{product}}/{{model}}/date={{ today }}
Run it:
tiozin run examples/jobs/shakespeare/kinglear_word_count_job.yaml
Option 2: Use Python directly
from tiozin import TiozinApp
app = TiozinApp()
app.run("examples/jobs/shakespeare/kinglear_word_count_job.yaml")
Done. No ceremony, no boilerplate.
Documentation
Philosophy
Your uncle's advice: Keep it simple, readable, and testable.
- Declarative – Define what, not how
- Pluggable – Swap runners, registries, plugins as needed
- Metadata – Built-in metadata integration
- Observable – Logs that help
- Testable – Mock anything, validate everything
No magic. No surprises. Just clean data pipelines.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tiozin-1.4.0.tar.gz.
File metadata
- Download URL: tiozin-1.4.0.tar.gz
- Upload date:
- Size: 6.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d8a418d79496cfbffbee0637d237b81514066bb1016e3ba19ffd6f07241b292d
|
|
| MD5 |
67629518b5eb8f9e1ee251988a0fd5ff
|
|
| BLAKE2b-256 |
5f758f88079b47f88f535de4f21e3c50eb8f86d5ad816d335467ffa6aab452b5
|
File details
Details for the file tiozin-1.4.0-py3-none-any.whl.
File metadata
- Download URL: tiozin-1.4.0-py3-none-any.whl
- Upload date:
- Size: 84.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c1796512707ea9da1df8c61ba5ff9546be3a652cf004b0e77732183decbc04bf
|
|
| MD5 |
5a2d82427055775ab888d153098ee5c4
|
|
| BLAKE2b-256 |
14da37d6cf1c41260d2a8446012313790809c1801cd455573dd3ac62e2b3cf24
|