pypdown
A Pydantic model-based approach to data pipelining with file I/O linting.
Features
- Pydantic model-based approach to data pipelining
- File I/O linting for robust pipeline execution
- Easy-to-use API for defining and running pipeline steps
- Support for callback functions and keyword argument-based file paths
Installation
pip install pypdown
Quick Start
from pypdown import run_step
from pypdown.models import Step
from pydantic import BaseModel
from pathlib import Path
class StepParams(BaseModel):
input_file: Path = "input.txt"
output_file: Path = "output.txt"
final_file: Path = "final.txt"
def process_input(input_file: Path, output_file: Path, config: StepParams):
"""Process input file and create output file."""
output_file.write_text(input_file.read_text().upper())
def finalize_output(output_file: Path, final_file: Path, config: StepParams):
"""Process output file and create final file."""
final_file.write_text(f"Processed: {output_file.read_text()}")
config = StepParams()
# Define your pipeline tasks by reference to config field names
task_refs = [
{
"src": ["input_file"],
"dst": ["output_file"],
"fn": process_input,
},
{
"src": ["output_file"],
"dst": ["final_file"],
"fn": finalize_output,
},
]
# Create a Step
step = Step(name="Example Pipeline Step", task_refs=task_refs, config=config)
# Run the step
run_step(step)
Documentation
For full documentation, please visit pypdown.vercel.app.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Metadata
Release files for pypdown 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pypdown-0.1.5.tar.gz | 3.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pypdown-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.1 kB
Release files / pypdown-0.1.5.tar.gz
| Download URL | pypdown-0.1.5.tar.gz |
|---|---|
| Size | 3.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
af6a7c09f197db7a7ba2fbbfc47ff3f27d84e24eeff294dcc74792cd48ecf9ff
|
|
BLAKE2b-256 checksum How to use checksums |
69ce98c13df58d1afaa3dc03554863c8fd160f4ae811da138ef0b15da92efed9
|
| 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 Apr 15, 2026.
Transparency logRelease files / pypdown-0.1.5-py3-none-any.whl
| Download URL | pypdown-0.1.5-py3-none-any.whl |
|---|---|
| Size | 4.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f92ca12e79f3d3eb9ddfeb80bf54eb00ff780799b96d2708c434f11a7a9a1ad7
|
|
BLAKE2b-256 checksum How to use checksums |
e3f790d2808a14a6b07f8deaae7134bfedb235b5f998ea33e99a3d38f452b52f
|
| 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 Apr 15, 2026.
Transparency log