DataForgeML
DataForgeML is an automated, end-to-end pipeline for turning raw tabular datasets into ML-ready data — without hand-writing schema logic, imputation rules, or splitting code for every new dataset.
The library is built as a one-stop solution: the goal is that a user should not need to manually assemble fragmented libraries steps or write custom glue code around it. Every phase — profiling, imputation, splitting — is designed to compose directly, driven by configuration objects rather than bespoke per-dataset scripts.
Supported input formats: CSV, TSV, Parquet, JSON, NDJSON, JSONL, XLSX, XLS, Arrow, and Feather, with automatic encoding and delimiter detection.
Installation
Requires Python 3.11+.
uv add dataforge-ml
or, from PyPI with pip:
pip install dataforge-ml
Quick start — profile a dataset
Structurally profile a raw dataset: inferred semantic types, per-column stats, missingness, correlations, and nonlinearity signals — all driven by config.
from dataforge_ml import (
PipelineConfig,
ProfileConfig,
SemanticType,
StructuralProfiler,
)
pipeline_config = PipelineConfig(
profiling=ProfileConfig(
compute_correlation=True,
compute_nonlinearity=True,
),
random_seed=42,
)
# Nudge the profiler where you know better than the type detector.
pipeline_config.set_column_type(column="Year", semantic_type=SemanticType.Categorical)
profiler = StructuralProfiler(config=pipeline_config)
result = profiler.profile(data=df) # df is a polars.DataFrame
# The lossless Profile Report — every to_dict() field rendered as Markdown.
# On a wide dataset (~82 columns) this is roughly a megabyte of text; for a
# bounded view, read result.to_dict() and select the fields you care about.
print(result.to_markdown())
Examples
To see how to use DataForgeML end to end, browse the full set of runnable, self-contained example scripts — each with bundled datasets and step-by-step walkthroughs — in the dedicated examples repository:
https://github.com/DEVunderdog/dataforgeml-examples
Video
Documentation
Full documentation — including the complete API reference, configuration guide, and the domain concepts behind profiling, imputation, and splitting — is available at:
https://devunderdog.github.io/DataForgeML/
License
MIT
Metadata
Release files for dataforge-ml 3.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dataforge_ml-3.3.0.tar.gz | 201.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dataforge_ml-3.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 443.5 kB
Release files / dataforge_ml-3.3.0.tar.gz
| Download URL | dataforge_ml-3.3.0.tar.gz |
|---|---|
| Size | 201.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9739d57dff80ecb4d4e9fdef2f025d9252d9a43b9854314cc022b8cd1ac22ace
|
|
BLAKE2b-256 checksum How to use checksums |
b17ef693ab0e49f1848beef2dd46d82939cc7f03802148d293775fe4213f9ece
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","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}
|
Release files / dataforge_ml-3.3.0-py3-none-any.whl
| Download URL | dataforge_ml-3.3.0-py3-none-any.whl |
|---|---|
| Size | 241.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
37d9c83bfc6177f714c30c273319daae546f49fb77feb4f81e1a0a8df7776bc7
|
|
BLAKE2b-256 checksum How to use checksums |
b41e525836c05081347fe72c61b64a8a714fb74e5cbbbac2a222bf88d06c7ed8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","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}
|