continuo-python-runtime 0.7.0__py3-none-any.whl → 0.8.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {continuo_python_runtime-0.7.0.dist-info → continuo_python_runtime-0.8.0.dist-info}/METADATA +24 -19
- {continuo_python_runtime-0.7.0.dist-info → continuo_python_runtime-0.8.0.dist-info}/RECORD +6 -6
- {continuo_python_runtime-0.7.0.dist-info → continuo_python_runtime-0.8.0.dist-info}/WHEEL +0 -0
- {continuo_python_runtime-0.7.0.dist-info → continuo_python_runtime-0.8.0.dist-info}/entry_points.txt +0 -0
- {continuo_python_runtime-0.7.0.dist-info → continuo_python_runtime-0.8.0.dist-info}/licenses/LICENSE +0 -0
- {continuo_python_runtime-0.7.0.dist-info → continuo_python_runtime-0.8.0.dist-info}/licenses/NOTICE +0 -0
{continuo_python_runtime-0.7.0.dist-info → continuo_python_runtime-0.8.0.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: continuo-python-runtime
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.8.0
|
|
4
4
|
Summary: Runtime harness, contract tooling, and CI lint for Continuo python nodes.
|
|
5
5
|
Author: Simone Carolini
|
|
6
6
|
Maintainer: Simone Carolini
|
|
@@ -41,15 +41,16 @@ Five artifacts come out of this repository:
|
|
|
41
41
|
- **The `continuo-engine-contract` PyPI package** — the `WarehouseAdapter`
|
|
42
42
|
port, the contract schema, the shared SQL/type/config guards, and the
|
|
43
43
|
sentinel result-block format. Adapter authors outside this repo pin it.
|
|
44
|
-
- **The
|
|
45
|
-
`continuo-trino-adapter`) — one `WarehouseAdapter` implementation per
|
|
44
|
+
- **The three engine-adapter PyPI packages** (`continuo-postgres-adapter`,
|
|
45
|
+
`continuo-trino-adapter`, `continuo-duckdb-adapter`) — one `WarehouseAdapter` implementation per
|
|
46
46
|
warehouse engine, each published independently under the same tag. A
|
|
47
47
|
domain repo normally never installs these directly (the engine image
|
|
48
48
|
already has the matching one baked in); they exist as standalone PyPI
|
|
49
49
|
packages for the "build your own container" shape (see below) and for
|
|
50
50
|
third-party adapter authors to reference.
|
|
51
51
|
- **Per-engine base images**, one per warehouse engine
|
|
52
|
-
(`continuo-python-runtime-postgres`, `continuo-python-runtime-trino
|
|
52
|
+
(`continuo-python-runtime-postgres`, `continuo-python-runtime-trino`,
|
|
53
|
+
`continuo-python-runtime-duckdb`), that
|
|
53
54
|
domain repos build `FROM`. Each image bakes in the runtime and a single
|
|
54
55
|
`WarehouseAdapter` for that engine, and serves both roles that adapter has:
|
|
55
56
|
the node harness (`ENTRYPOINT ["continuo-runtime"]`, `CMD ["run"]`) and the
|
|
@@ -57,15 +58,17 @@ Five artifacts come out of this repository:
|
|
|
57
58
|
- **`template/`** — a copy-ready domain repo: `Dockerfile`, `contracts/`,
|
|
58
59
|
`scripts/`, and the `release.yml` CI/CD workflow.
|
|
59
60
|
|
|
60
|
-
One `vX.Y.Z` git tag releases all of it: `publish-pypi.yml` builds all
|
|
61
|
-
PyPI distributions into a single `dist
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
One `vX.Y.Z` git tag releases all of it: `publish-pypi.yml` builds all five
|
|
62
|
+
PyPI distributions into a single `dist/`, verifies them (and full engine
|
|
63
|
+
images built from them) on amd64 and arm64, and only then publishes them
|
|
64
|
+
together. It then builds all three engine images natively per architecture —
|
|
65
|
+
each installing its matching pinned adapter version from that same release —
|
|
66
|
+
pulls and smoke-tests the exact pushed digests, and finally gives the verified
|
|
67
|
+
amd64 + arm64 digests one multi-arch tag. See `CONTRIBUTING.md` (Releasing).
|
|
65
68
|
|
|
66
69
|
### What this repo owns
|
|
67
70
|
|
|
68
|
-
This repository owns the entire python-node surface: the engine contract,
|
|
71
|
+
This repository owns the entire python-node surface: the engine contract, the three
|
|
69
72
|
engine adapters, the validation runner, and the node harness. The former
|
|
70
73
|
`continuo-validation` repository was merged in — there is no longer a separate
|
|
71
74
|
validation-side port, adapter class, entry-point group, or image. One
|
|
@@ -80,16 +83,18 @@ validation-side port, adapter class, entry-point group, or image. One
|
|
|
80
83
|
| `continuo-engine-contract` | `continuo_engine_contract` | this repo, `contract/` | The `WarehouseAdapter` port, contract schema, the SQL/type/config guards adapters must run, and the result-block format. Published to PyPI. |
|
|
81
84
|
| `continuo-postgres-adapter` | `continuo_postgres_adapter` | this repo, `adapters/postgres/` | `PostgresAdapter` — one class, both roles. Published to PyPI. |
|
|
82
85
|
| `continuo-trino-adapter` | `continuo_trino_adapter` | this repo, `adapters/trino/` | `TrinoAdapter` — one class, both roles, for Trino/Iceberg. Published to PyPI. |
|
|
86
|
+
| `continuo-duckdb-adapter` | `continuo_duckdb_adapter` | this repo, `adapters/duckdb/` | `DuckDBAdapter` — one class, both roles, for DuckDB on a DuckLake (Postgres catalog, Parquet on S3). Published to PyPI. |
|
|
83
87
|
|
|
84
|
-
All
|
|
88
|
+
All five are uv workspace members (`[tool.uv.workspace]` in the root
|
|
85
89
|
`pyproject.toml`), so `uv sync --all-packages --all-groups` at the repo root
|
|
86
90
|
installs everything for local development.
|
|
87
91
|
|
|
88
|
-
**All
|
|
89
|
-
same `vX.Y.Z` tag. The
|
|
92
|
+
**All five packages in the table above are published to PyPI**, under the
|
|
93
|
+
same `vX.Y.Z` tag. The three engine images then **install the matching pinned
|
|
90
94
|
adapter version from PyPI** — `Dockerfile.postgres` installs
|
|
91
95
|
`continuo-postgres-adapter==X.Y.Z`, `Dockerfile.trino` installs
|
|
92
|
-
`continuo-trino-adapter==X.Y.Z`
|
|
96
|
+
`continuo-trino-adapter==X.Y.Z` and `Dockerfile.duckdb` installs
|
|
97
|
+
`continuo-duckdb-adapter==X.Y.Z` — rather than building it from this repo's
|
|
93
98
|
source tree, so each image still ships exactly one adapter and the runtime
|
|
94
99
|
still discovers it through the `continuo_engine.adapters` entry-point group
|
|
95
100
|
at run time. The image **name** (`continuo-python-runtime-<engine>`) and the
|
|
@@ -97,7 +102,7 @@ adapter's pip **distribution** name (`continuo-<engine>-adapter`) are two
|
|
|
97
102
|
different artifacts of the same adapter — same engine, same version, same
|
|
98
103
|
runtime behavior, different packaging; see "Build your own container" below
|
|
99
104
|
for a build shape that installs the pip package directly instead of `FROM`
|
|
100
|
-
the image. All
|
|
105
|
+
the image. All five packages are still built, type-checked, and tested by CI
|
|
101
106
|
on every change.
|
|
102
107
|
|
|
103
108
|
### The result block is a frozen wire contract
|
|
@@ -149,7 +154,7 @@ the pre-flight check once before your next release; it reports every affected
|
|
|
149
154
|
read at once:
|
|
150
155
|
|
|
151
156
|
```bash
|
|
152
|
-
continuo-runtime validate contracts/ --dialect postgres # or trino
|
|
157
|
+
continuo-runtime validate contracts/ --dialect postgres # or trino, duckdb
|
|
153
158
|
```
|
|
154
159
|
|
|
155
160
|
The runtime image does not re-run this gate, so a read that passes here is
|
|
@@ -281,9 +286,9 @@ A domain repo picks its warehouse engine by which base image it builds
|
|
|
281
286
|
`FROM`:
|
|
282
287
|
|
|
283
288
|
```dockerfile
|
|
284
|
-
FROM ghcr.io/carolsimone/continuo-python-runtime-postgres:v0.
|
|
289
|
+
FROM ghcr.io/carolsimone/continuo-python-runtime-postgres:v0.8.0
|
|
285
290
|
# or
|
|
286
|
-
FROM ghcr.io/carolsimone/continuo-python-runtime-trino:v0.
|
|
291
|
+
FROM ghcr.io/carolsimone/continuo-python-runtime-trino:v0.8.0
|
|
287
292
|
```
|
|
288
293
|
|
|
289
294
|
The engine is part of the image **name**; the tag is the bare version, so
|
|
@@ -294,7 +299,7 @@ pinned PyPI version of the `continuo-postgres-adapter` or
|
|
|
294
299
|
`continuo-trino-adapter` package built from this repo's `adapters/postgres/`
|
|
295
300
|
or `adapters/trino/` source (see the table above) — registered under the
|
|
296
301
|
`continuo_engine.adapters` entry-point group (entry names `postgres` /
|
|
297
|
-
`trino`). The runtime discovers it via `discover_adapter()` at run time, so a
|
|
302
|
+
`trino` / `duckdb`). The runtime discovers it via `discover_adapter()` at run time, so a
|
|
298
303
|
single image serves every node in the service and the release-time
|
|
299
304
|
validation Job for it. The executor injects the warehouse connection as
|
|
300
305
|
environment variables (engine-native, e.g.
|
|
@@ -23,9 +23,9 @@ continuo_python_runtime/csv_readers/s3.py,sha256=zmvHs3TxlN2alPKrdaHzPyREmkve2nB
|
|
|
23
23
|
continuo_python_runtime/validation/__init__.py,sha256=hz5oGXsoaUoygR0_pBby9PS6cEfrre518EE0HGB58eE,79
|
|
24
24
|
continuo_python_runtime/validation/runner.py,sha256=7pbksf7MXfTNcdklCOkOXg9qfRiJtyI_dbgbL3a9LWk,14072
|
|
25
25
|
continuo_python_runtime/validation/s3.py,sha256=q8nRrT9R7L1-M4dSlDnkL7CUJMPmq86MHY_UKYFlEf8,1785
|
|
26
|
-
continuo_python_runtime-0.
|
|
27
|
-
continuo_python_runtime-0.
|
|
28
|
-
continuo_python_runtime-0.
|
|
29
|
-
continuo_python_runtime-0.
|
|
30
|
-
continuo_python_runtime-0.
|
|
31
|
-
continuo_python_runtime-0.
|
|
26
|
+
continuo_python_runtime-0.8.0.dist-info/METADATA,sha256=q2tb518F9n_Bo4LIzbhhGSGm5yJPxbrOkWJKJ6y9gxQ,19874
|
|
27
|
+
continuo_python_runtime-0.8.0.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
|
|
28
|
+
continuo_python_runtime-0.8.0.dist-info/entry_points.txt,sha256=ZvIwSm9f9B9ZmZMf6CyF5Zt4QONn8rqaIk-u-B1CF2Y,70
|
|
29
|
+
continuo_python_runtime-0.8.0.dist-info/licenses/LICENSE,sha256=hfXfFCk-8gnps4YvHA6bjCNaSYqOrq2gAdqkXYycAQc,11345
|
|
30
|
+
continuo_python_runtime-0.8.0.dist-info/licenses/NOTICE,sha256=ykgYyQkAMx3uas90FZHzt0aTca9IgJQCLpZ4d74Pl3U,465
|
|
31
|
+
continuo_python_runtime-0.8.0.dist-info/RECORD,,
|
|
File without changes
|
{continuo_python_runtime-0.7.0.dist-info → continuo_python_runtime-0.8.0.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{continuo_python_runtime-0.7.0.dist-info → continuo_python_runtime-0.8.0.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
{continuo_python_runtime-0.7.0.dist-info → continuo_python_runtime-0.8.0.dist-info}/licenses/NOTICE
RENAMED
|
File without changes
|