Skip to main content

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


Download files

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

Source Distribution

shkit-1.2.23.tar.gz (92.3 kB view details)

Uploaded Source

Built Distribution

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

shkit-1.2.23-py3-none-any.whl (102.3 kB view details)

Uploaded Python 3

File details

Details for the file shkit-1.2.23.tar.gz.

File metadata

  • Download URL: shkit-1.2.23.tar.gz
  • Upload date:
  • Size: 92.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for shkit-1.2.23.tar.gz
Algorithm Hash digest
SHA256 0998df2150af4b072268c589970ab0fa2c599e7376ec81427f2959f63f1a04b2
MD5 86db8cd0bce7f4d59abca9d37eb63b23
BLAKE2b-256 1cfa469e7158a522db49a4ea64e020551b039bdc739ccc92d2d3737ccd62ed66

See more details on using hashes here.

Provenance

The following attestation bundles were made for shkit-1.2.23.tar.gz:

Publisher: release-pypi.yml on yogasathyandrun/Self-healing-kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shkit-1.2.23-py3-none-any.whl.

File metadata

  • Download URL: shkit-1.2.23-py3-none-any.whl
  • Upload date:
  • Size: 102.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for shkit-1.2.23-py3-none-any.whl
Algorithm Hash digest
SHA256 223b2fcafa50fc186a0611e2120eaeee44ddaeef8ad5eb97d82b5654851b80cd
MD5 03323c4c6f7918c9c06fa9ed1acade27
BLAKE2b-256 404dd3b89e3e5ef8742e46262e5c5e88f085d60ea2f89fd8feef05f8f51be837

See more details on using hashes here.

Provenance

The following attestation bundles were made for shkit-1.2.23-py3-none-any.whl:

Publisher: release-pypi.yml on yogasathyandrun/Self-healing-kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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