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.21.tar.gz (75.9 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.21-py3-none-any.whl (87.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: shkit-1.2.21.tar.gz
  • Upload date:
  • Size: 75.9 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.21.tar.gz
Algorithm Hash digest
SHA256 dd7960023e55cd314d2ff22f5f3fefcf55b6bbad08875e4ac2f1ceb3c72182ce
MD5 8850a436d82e5f4380d240f425bdc4cf
BLAKE2b-256 c6d48fde9f0c93aca2ef5f0ce8a973a189a57ad14b6e7b4b11fbe81ee3f1d5b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for shkit-1.2.21.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.21-py3-none-any.whl.

File metadata

  • Download URL: shkit-1.2.21-py3-none-any.whl
  • Upload date:
  • Size: 87.8 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.21-py3-none-any.whl
Algorithm Hash digest
SHA256 6b47e153ce52bd86320e97de1aec33e4e65e08a22066c51987670c33a6d07fc5
MD5 6ad67ea584eca604b6adfdd82273d7dd
BLAKE2b-256 a50aa56ec54809d94534495c682074d6b076252499b29d7a83ac82c8a792181a

See more details on using hashes here.

Provenance

The following attestation bundles were made for shkit-1.2.21-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