Skip to main content

analitiq-cdk

The Connector Development Kit: a vendor-neutral, transport-neutral toolbox of reusable building blocks a connector uses. It is consumed both for bulk streaming (the OSS engine reads/writes Arrow batches) and for a synchronous control-plane (discover schemas / create tables) that needs neither the columnar nor the HTTP weight.

The one rule

The dependency points engine → CDK, never back. No CDK module may import anything engine-side (src/grpc, src/state, src/models, src/source, src/engine/{engine,orchestrator,pipeline}, server.py, runner.py, main.py). Anything that must cross from engine to CDK crosses as a plain value or a CDK-owned type — never an engine object. A connectivity capability whose implementation is engine- or deployment-specific is expressed as a CDK-owned seam (Protocol / ABC) the other side implements (SecretsResolver, CheckpointStore).

What lives here

  • cdk/types.py — CDK-native value types (AckStatus, Cursor, SchemaSpec, BatchWriteResult, EndpointScope, CheckpointStore).
  • cdk/contract.py — capability Protocols (Readable, Writable, Discoverable, TableCreator, ColumnDef).
  • transports + ConnectionRuntime, the ADBC sub-registry, shared DB helpers, the query builder, the rate limiter.
  • the expression resolver + derived functions.
  • the type-map engine (type_map/).
  • the secrets seam + local/in-memory resolvers (secrets/).
  • the abstract destination base (base_handler.py).

Dependency tiers (core + extras)

The CDK ships a small required core and opt-in extras, so a consumer installs only what its role needs. The split is enforced by lazy imports: cdk.sql and cdk.type_map resolve the Arrow helpers (and the HTTP transport its aiohttp session) only on first use, so importing the core control-plane surface never pulls pyarrow/aiohttp.

Tier Pulls Surface
core (always) sqlalchemy, pydantic SQL control-plane: cdk.sql discovery + standalone create_table, ConnectionRuntime/transport seam, type-map (string surface), secrets
[arrow] pyarrow columnar streaming: schema_contract, sql.adbc_reader, type_map.parse_arrow_type, GenericSQLConnector read/write
[api] aiohttp HTTP transport for API connectors
[streaming] pyarrow + aiohttp full connector surface the engine consumes ([arrow] + [api])
[s3] boto3 s3:// secret refs (SchemeSecretsResolver)
[conformance] pytest + pyarrow the connector conformance suite a connector repo runs in its own CI

Plus the per-driver DB package a given connector needs (asyncpg, adbc-driver-*, …).

The thin-surface entry points raise cdk.MissingExtraError (naming the extra, e.g. analitiq-cdk[arrow]) when the extra is absent, rather than a bare No module named 'pyarrow': the package-level lazy reexports (cdk.sql.AdbcReader / open_adbc_reader, cdk.type_map.parse_arrow_type / resolve_arrow_type) and the HTTP transport (build_http_from_spec). A genuinely-absent extra is relabelled; an unrelated or broken-install import failure (a partial build failing on a submodule, a missing transitive dep) is re-raised untouched so the real cause survives.

Directly importing a streaming module that belongs to an extra (cdk.schema_contract, cdk.sql.adbc_reader, cdk.type_map.arrow, cdk.sql.generic, cdk.base_handler) without that extra raises a plain ImportError naming pyarrow on the import line — those modules are the extra and require it by design; a thin control-plane consumer reaches the Arrow surface only through the guarded lazy reexports above, never by importing these modules directly.

Install

Published on PyPI as analitiq-cdk. Releases are currently pre-releases, so pip needs --pre (or an exact pin).

Control-plane only (discover + create-table, no pyarrow/aiohttp):

pip install --pre analitiq-cdk

Full streaming surface:

pip install --pre "analitiq-cdk[streaming]"

The engine consumes it in-tree (it is on PYTHONPATH alongside src/) and declares pyarrow/aiohttp itself, so the bundled engine image always has the full surface regardless of the CDK's own extras.

Metadata

Release files for analitiq-cdk 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for analitiq-cdk 0.2.1
File Size Uploaded
analitiq_cdk-0.2.1.tar.gz 211.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for analitiq-cdk 0.2.1
File Interpreter ABI Platform
analitiq_cdk-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 461.4 kB

Release files / analitiq_cdk-0.2.1.tar.gz

Download URL analitiq_cdk-0.2.1.tar.gz
Size 211.6 kB
Tags Source
SHA-256 checksum
How to use checksums
56ba4e0289f3384b94c950924b70ba477b87253ff7ebfa5e68aa217b23cf2b7e
BLAKE2b-256 checksum
How to use checksums
f524ecba6ea9028defa676157692d91ad2a0c924ab18556d46582cbbfda1f5bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.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 Jul 29, 2026.

Transparency log

Release files / analitiq_cdk-0.2.1-py3-none-any.whl

Download URL analitiq_cdk-0.2.1-py3-none-any.whl
Size 249.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8c1b394402de23005cf4abb35fc75e8f599cbd4979e4fee3137bcc6258d420cc
BLAKE2b-256 checksum
How to use checksums
42748839e198117beeed9305f57d14999c64245c121f46f506a16ae25d3bc697
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.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 Jul 29, 2026.

Transparency log

Release history Release notifications | RSS feed

0.4.0

2 release files

0.3.0

2 release files

This release

0.2.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page