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.22.tar.gz (79.2 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.22-py3-none-any.whl (90.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: shkit-1.2.22.tar.gz
  • Upload date:
  • Size: 79.2 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.22.tar.gz
Algorithm Hash digest
SHA256 18541d6d03fbd868e6a2ad3de14ed3862dc8cb7586e4ea9f1a0171d6c258c4f2
MD5 f4c04281295e28b7b56749ba16d28aa7
BLAKE2b-256 95b3925e8b0dbf4cbaa075ec5cb8b734d329f75de3af6acb2d83c934b3f0feb8

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: shkit-1.2.22-py3-none-any.whl
  • Upload date:
  • Size: 90.6 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.22-py3-none-any.whl
Algorithm Hash digest
SHA256 e4736913b8b4df7d8e98285327ded28453beddaf5b2d139601c7b30582b37026
MD5 68ad15da93f8563c02a2447a7ba09184
BLAKE2b-256 f56746c69884bcacf9082f12964d47ab4c6e5d0b0428026a33b4a9b43f173a3e

See more details on using hashes here.

Provenance

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