Skip to main content

Data-first registry compiler for loadable ORM packages.

Project description

schemancer

schemancer scans a flat folder of CSV, TSV, and Parquet files, infers a registry, adds conservative relationship hints, and generates a standalone Python package with SQLAlchemy models and load helpers.

CLI

schemancer scan <source-dir> --registry-out <path>
schemancer infer-relationships <registry-path>
schemancer generate <registry-path> --output-dir <dir> --package-name <name>
schemancer build <source-dir> --output-dir <dir> --package-name <name>

Example With test_data

From the repo root:

schemancer scan --registry-out new_schema ~/CODE/schemancer/test_data

If new_schema is an existing directory, this writes:

new_schema/registry.json

Then infer relationships into the same file:

schemancer infer-relationships new_schema/registry.json

Generate a standalone package:

schemancer generate new_schema/registry.json --output-dir generated --package-name my_schema

Or do the whole flow in one command:

schemancer build /Users/z3061723/Documents/CODE/schemancer/test_data --output-dir generated --package-name my_schema

After generation, the package will be at:

generated/my_schema

Development

uv run --extra dev pytest

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

schemancer-0.1.0.tar.gz (16.5 kB view details)

Uploaded Source

Built Distribution

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

schemancer-0.1.0-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

Details for the file schemancer-0.1.0.tar.gz.

File metadata

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

File hashes

Hashes for schemancer-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4cc0f2719bcb04cbd3f64fa23302e51765892e76608013e2b41ec0a7a6a978b2
MD5 ca3a8cb52ff3ae598f973032b6f569df
BLAKE2b-256 b58a1ca44b2a9ddf6e87311a43b3815aac62cfe9aa3c820755a41a68f0e6c5d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for schemancer-0.1.0.tar.gz:

Publisher: pypi.yaml on AustralianCancerDataNetwork/schemancer

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

File details

Details for the file schemancer-0.1.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for schemancer-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 24a8eab437d7fbb9a5134cf5e4ec93205207ca12d246fcd3d6ce07193b17578e
MD5 1f8a58873c99ff55e9e9e012d8abe94d
BLAKE2b-256 a0489f2f321f2390fcd60baa539b340d2952ebb95d42e5b62cf1db2660515e8b

See more details on using hashes here.

Provenance

The following attestation bundles were made for schemancer-0.1.0-py3-none-any.whl:

Publisher: pypi.yaml on AustralianCancerDataNetwork/schemancer

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