sqllocks-shape-eventhubs
Shape plugin: an Azure Event Hubs stream source (shape.stream_sources, scheme eventhubs://).
pip install sqllocks-shape-eventhubs # or: pip install 'sqllocks-shape[eventhubs]'
export SHAPE_EVENTHUBS_CONNECTION_STRING='Endpoint=sb://...'
shape stream-profile eventhubs://contoso.servicebus.windows.net/telemetry -o telemetry.json
eventhubs://NAMESPACE/HUB[?consumer_group=NAME] reads one event hub as Arrow micro-batches.
Connect with a connection string (the connection_string option or
SHAPE_EVENTHUBS_CONNECTION_STRING; the hub name comes from the URI) or, with the entra extra
(pip install 'sqllocks-shape-eventhubs[entra]'), with Microsoft Entra sign-in. Event bodies are
JSON objects; their fields become columns, and _shape_event_time carries the event time (the
body's _shape_event_time, or the enqueued time). Shape keeps its own position: each partition
is read from an explicit sequence number, nothing is checkpointed in Azure Blob Storage, and a
StreamOffset is {partition id: next sequence number}.
Options, offsets, delivery guarantees and the checkpoint format are described in
docs/plugins/streaming.md.
Emitting events: eventhubs://
export SHAPE_EVENTHUBS_CONNECTION_STRING='Endpoint=sb://...'
shape emit retail --realtime --rate 2000 --sink eventhubs://my-namespace/my-hub
shape.emitters eventhubs: one message per event (body = the event JSON; content type
application/json, or application/cloudevents+json with --envelope cloudevents), the
idempotency key <table>/<seq> as the property shape_key (plus shape_table, shape_seq).
Events are packed into service batches by size, one table per batch, with the table as the
partition key (partition_key="none" to let the service spread them). emit returns after the
service accepted every batch; a throttled service (server-busy) is waited for, any other send
failure is retried by the runtime. Event Hubs does not deduplicate: keep the first message of each
shape_key. See docs/EMIT.md.
Tests: contract tests run on every PR against an in-memory hub
(shape_eventhubs.testing.FakeHub, FakeProducerHub; the emitter contract is
shape.streaming.emit.contract); pytest -m emulator plugins/shape-eventhubs/tests runs the
end-to-end tests against the Event Hubs emulator (docker compose -f ci/emulators/docker-compose.yml up -d --wait azurite eventhubs; amd64 only), nightly in CI. Against live Azure resources, the
live marker runs plugins/shape-eventhubs/tests/test_live.py with the owner's EVENTHUBS_*
secrets (EVENTHUBS_CONNECTION_STRING, EVENTHUBS_HUB, optionally EVENTHUBS_GROUP; plan section
9, O-03); the nightly job runs it only where they exist.
Its version always equals core's (sqllocks-shape), and it is released together with core.
How plugins are written: docs/plugins/authoring.md in the repository.
Metadata
Release files for sqllocks-shape-eventhubs 0.9.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| sqllocks_shape_eventhubs-0.9.1.tar.gz | 25.1 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sqllocks_shape_eventhubs-0.9.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 42.6 kB
Release files / sqllocks_shape_eventhubs-0.9.1.tar.gz
| Download URL | sqllocks_shape_eventhubs-0.9.1.tar.gz |
|---|---|
| Size | 25.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6c4491e626b882cf873703ec9d94cebed1911a435ba04322d93fad02e836dd61
|
|
BLAKE2b-256 checksum How to use checksums |
bb4abe232fcedd0192914a8cd1c5c5d56abadcd9b6e2ef54c850f67d28e36e96
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / sqllocks_shape_eventhubs-0.9.1-py3-none-any.whl
| Download URL | sqllocks_shape_eventhubs-0.9.1-py3-none-any.whl |
|---|---|
| Size | 17.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
93679a16ff4f2fc780c180e81a2f58c0b53b70ab88900a27f9640c06a17b9762
|
|
BLAKE2b-256 checksum How to use checksums |
a37d460486a512362c31d3b93d7e645aab36eb8c2b47b85e3216dd7e1f75c61f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logSecurity for sqllocks-shape-eventhubs 0.9.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for sqllocks_shape_eventhubs-0.9.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.