Hera SDK - rebranded metadata client and ingestion runtime for Hera/OpenMetadata
Project description
hera-sdk
A rebranded distribution of the Hera (OpenMetadata) Python ingestion runtime,
published as hera-sdk. Consumers (Vulcan, Nilus, etc.) depend on hera-sdk
instead of hera-ingestion and import from the hera_sdk.* namespace.
How it is built
This directory is not the SDK source. The SDK source lives under
ingestion/src/metadata/ and is shared with hera-ingestion. At build time
build.py stages a copy of the metadata package, rewrites the
top-level package name metadata -> hera_sdk, drops a slim
pyproject.toml.template into the stage and
runs python -m build --wheel.
The standard wrapper:
cd hera/
make hera-sdk
# wheel ends up in .build/hera-sdk-stage/dist/
make hera-sdk is a strict superset of make generate, so the wheel always
ships freshly regenerated Pydantic models and ANTLR parsers under
hera_sdk/generated/. The original ingestion wheel (hera-ingestion) is
still available via make hera-ingestion.
Consumer migration
Dependency change
- "hera-ingestion==1.12.3.8"
+ "hera-sdk>=1.12.6"
Imports change
A single mechanical pass per repo:
- from metadata.ingestion.ometa.ometa_api import OpenMetadata
- from metadata.generated.schema.entity.services.connections.metadata.openMetadataConnection import (
- AuthProvider, OpenMetadataConnection,
- )
- from metadata.ingestion.sink.metadata_rest import MetadataRestSink
+ from hera_sdk.ingestion.ometa.ometa_api import OpenMetadata
+ from hera_sdk.generated.schema.entity.services.connections.metadata.openMetadataConnection import (
+ AuthProvider, OpenMetadataConnection,
+ )
+ from hera_sdk.ingestion.sink.metadata_rest import MetadataRestSink
Inner directories named metadata/ (e.g. generated/.../connections/metadata/)
are not renamed - only the top-level package becomes hera_sdk.
For Vulcan: sqlmesh/core/hera/*.py (~10 files).
For Nilus: ingestr/src/hera_ingestion/**/*.py and ingestr/src/destinations.py.
Why "compatibility-first"
Nilus and Vulcan exercise a wide surface area today (ometa, sink, sql_lineage,
profiler, sampler, pii, secrets manager). The wheel therefore ships the full
metadata package tree and a dependency set aligned with the existing working
hera-ingestion 1.12.3.x baseline, plus the families consumers use at
runtime (pandas, pyarrow, presidio-analyzer, spacy, pyhive,
collate-sqllineage, snowflake-connector-python, etc.).
Aggressive pruning is intentionally deferred until consumer-backed tests confirm a smaller surface is safe.
Files in this directory
| File | Purpose |
|---|---|
build.py |
Staging + rename + python -m build --wheel |
MANIFEST.txt |
Paths from ingestion/src/metadata/ to ship (currently **) |
pyproject.toml.template |
Template for the staged wheel's pyproject.toml |
__init__.py |
Dev-time placeholder; not shipped |
README.md |
This file |
Verification
build.py runs an automatic smoke test after producing the wheel. It creates
a throwaway venv at <stage>/.venv-verify, installs the freshly built wheel,
and imports the modules Nilus and Vulcan depend on (ometa, MetadataRestSink,
sql_lineage, profiler, sampler, pii, generated schema + ANTLR). Build fails
loud if any of these break.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hera_sdk-1.12.6.10-py3-none-any.whl.
File metadata
- Download URL: hera_sdk-1.12.6.10-py3-none-any.whl
- Upload date:
- Size: 21.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a722eda5e8fa815643d0ec2b50103d96ee0cbf408b03ce735ded47b74c08aded
|
|
| MD5 |
f62bd7dd18b783231a7d594aa08b81d3
|
|
| BLAKE2b-256 |
212bab48cfdac0b35e829b1e7791a67c0ca2a84720afe9721e5bb69df381591f
|