AUTOMODEL — universal data discovery, relationship intelligence, and warehouse architecture (published as the shkit distribution).
Project description
AUTOMODEL
A universal data discovery, relationship-intelligence, and data-architecture framework.
AUTOMODEL inspects a data source, profiles every column, infers primary/foreign keys and relationships, discovers business domains and metrics, builds a knowledge graph, assesses data quality and warehouse readiness, makes architecture recommendations, traces lineage, and generates a model in the architecture of your choice — star, snowflake, normalized ER, Data Vault, or a full dbt project.
The core is deterministic, rule-based, and statistically driven — identical input always yields identical output. Every inferred artifact carries a confidence score and structured evidence, so the platform is explainable and auditable. (AI is an optional explanation layer, never part of the inference path.)
Status: 0.2. Implemented + tested: SQLite/CSV connectors, profiling, PK/FK detection, fact/dim classification; pluggable modeling strategies (dimensional/snowflake/normalized/data_vault/dbt); domain, metric, knowledge-graph, data-quality, readiness, recommendation, and lineage engines; the interactive Architect Explorer HTML report + named JSON/SVG catalogs; CLI. See docs/ARCHITECTURE.md for the full design and roadmap.
Choose your architecture
automodel analyze -s examples/shop.db --strategy data_vault # or dimensional|snowflake|normalized|dbt
automodel analyze -s examples/shop.db --config examples/automodel.yaml
import automodel
bp = automodel.analyze("sqlite:///examples/shop.db", modeling_strategy="snowflake")
print(bp.domains, bp.metrics, bp.readiness.overall)
bp.knowledge_graph.related("customer") # "show all assets related to Customer"
Install
pip install -e . # core (zero third-party deps)
pip install -e ".[dev]" # + pytest/ruff
pip install -e ".[all]" # + every connector/UI extra
The core runs on the Python standard library alone. Heavy backends (Postgres, Snowflake, BigQuery, Parquet, Excel, …) are opt-in extras.
Quick start
# Build the bundled sample retail database
python examples/build_sample_db.py
# Full analysis → JSON + Markdown + HTML + DDL in ./automodel_out
automodel analyze --source examples/shop.db --out automodel_out
Or from Python:
import automodel
bp = automodel.analyze("sqlite:///examples/shop.db")
print(bp.model.facts, bp.model.dimensions)
CLI
| Command | Output |
|---|---|
automodel analyze |
full pipeline → all reports + catalogs + SVGs + DDL |
automodel profile / discover |
metadata + profiling (+ PK/FK) JSON |
automodel generate |
warehouse model (per --strategy) + DDL |
automodel domains / metrics |
domain / metric catalog (JSON) |
automodel quality / readiness / recommend |
intelligence catalogs (JSON) |
automodel graph --query Revenue |
knowledge graph (JSON/SVG) + related-assets query |
automodel dbt |
a complete dbt project tree |
automodel report --format html|markdown|json |
one report |
automodel visualize --kind star|lineage|graph |
an SVG |
Common flags: --source/-s, --out/-o, --strategy, --config <yaml>,
--sample N (0 = full scan), --seed, --log-level.
Sources
Built-in (core): SQLite, CSV. Planned extras: PostgreSQL, MySQL, SQL Server,
Oracle, Snowflake, BigQuery, Excel, Parquet, JSON, REST APIs — added via the plugin
system (automodel.connectors entry-point group).
How it works
connect → metadata → profile → primary keys → foreign keys → graph →
classify (fact/dim) → entities → warehouse model → blueprint
Each stage is an isolated, testable engine. Scoring formulas (PK/FK/fact/dimension)
live in docs/ARCHITECTURE.md §7 and every tunable
threshold is in automodel.core.config.Config — no magic numbers in engine code.
Development
pytest # run the suite
ruff check . # lint
License
Apache-2.0
Project details
Release history Release notifications | RSS feed
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 shkit-1.2.20.tar.gz.
File metadata
- Download URL: shkit-1.2.20.tar.gz
- Upload date:
- Size: 65.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff663e82211dcaff46571714517cb06c89c2038f4d13c1609e5ebd2318191b55
|
|
| MD5 |
229e5659a861a6b7590cabebe9a764e4
|
|
| BLAKE2b-256 |
ed92d700a7773b1abd604f258e8795014242e33b436669ea2262040d02956bca
|
Provenance
The following attestation bundles were made for shkit-1.2.20.tar.gz:
Publisher:
release-pypi.yml on yogasathyandrun/Self-healing-kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
shkit-1.2.20.tar.gz -
Subject digest:
ff663e82211dcaff46571714517cb06c89c2038f4d13c1609e5ebd2318191b55 - Sigstore transparency entry: 1859778944
- Sigstore integration time:
-
Permalink:
yogasathyandrun/Self-healing-kit@e4d66cc491a22b0c6b71e41f74ddea8d0fb396a2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/yogasathyandrun
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@e4d66cc491a22b0c6b71e41f74ddea8d0fb396a2 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file shkit-1.2.20-py3-none-any.whl.
File metadata
- Download URL: shkit-1.2.20-py3-none-any.whl
- Upload date:
- Size: 76.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3a021d7f52e53f0a20e736cdaaed8571d883dfa23c40c1036cc58f95cf5f4e3
|
|
| MD5 |
f594db5ef19e2bb43bc6f111628aabb1
|
|
| BLAKE2b-256 |
f60fc398c115b0d3d777f3dbdfffa842834b6d20f55d520987c3bcc7a589f1b2
|
Provenance
The following attestation bundles were made for shkit-1.2.20-py3-none-any.whl:
Publisher:
release-pypi.yml on yogasathyandrun/Self-healing-kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
shkit-1.2.20-py3-none-any.whl -
Subject digest:
e3a021d7f52e53f0a20e736cdaaed8571d883dfa23c40c1036cc58f95cf5f4e3 - Sigstore transparency entry: 1859778987
- Sigstore integration time:
-
Permalink:
yogasathyandrun/Self-healing-kit@e4d66cc491a22b0c6b71e41f74ddea8d0fb396a2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/yogasathyandrun
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@e4d66cc491a22b0c6b71e41f74ddea8d0fb396a2 -
Trigger Event:
workflow_dispatch
-
Statement type: