Skip to main content

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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

hera_sdk-1.12.6.10-py3-none-any.whl (21.6 MB view details)

Uploaded Python 3

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

Hashes for hera_sdk-1.12.6.10-py3-none-any.whl
Algorithm Hash digest
SHA256 a722eda5e8fa815643d0ec2b50103d96ee0cbf408b03ce735ded47b74c08aded
MD5 f62bd7dd18b783231a7d594aa08b81d3
BLAKE2b-256 212bab48cfdac0b35e829b1e7791a67c0ca2a84720afe9721e5bb69df381591f

See more details on using hashes here.

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