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.20.tar.gz (65.6 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.20-py3-none-any.whl (76.0 kB view details)

Uploaded Python 3

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

Hashes for shkit-1.2.20.tar.gz
Algorithm Hash digest
SHA256 ff663e82211dcaff46571714517cb06c89c2038f4d13c1609e5ebd2318191b55
MD5 229e5659a861a6b7590cabebe9a764e4
BLAKE2b-256 ed92d700a7773b1abd604f258e8795014242e33b436669ea2262040d02956bca

See more details on using hashes here.

Provenance

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

Hashes for shkit-1.2.20-py3-none-any.whl
Algorithm Hash digest
SHA256 e3a021d7f52e53f0a20e736cdaaed8571d883dfa23c40c1036cc58f95cf5f4e3
MD5 f594db5ef19e2bb43bc6f111628aabb1
BLAKE2b-256 f60fc398c115b0d3d777f3dbdfffa842834b6d20f55d520987c3bcc7a589f1b2

See more details on using hashes here.

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

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