turbine-api 1.0.0__tar.gz
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.
- turbine_api-1.0.0/.gitignore +56 -0
- turbine_api-1.0.0/PKG-INFO +27 -0
- turbine_api-1.0.0/README.md +15 -0
- turbine_api-1.0.0/pyproject.toml +26 -0
- turbine_api-1.0.0/src/turbine/api/__init__.py +1 -0
- turbine_api-1.0.0/src/turbine/api/app.py +658 -0
- turbine_api-1.0.0/src/turbine/api/cursor.py +141 -0
- turbine_api-1.0.0/src/turbine/api/extension.py +31 -0
- turbine_api-1.0.0/src/turbine/api/lint.py +311 -0
- turbine_api-1.0.0/src/turbine/api/pool.py +97 -0
- turbine_api-1.0.0/src/turbine/api/publication.py +287 -0
- turbine_api-1.0.0/src/turbine/api/query.py +397 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Local system and Python files
|
|
2
|
+
.DS_Store
|
|
3
|
+
__pycache__/
|
|
4
|
+
*.py[cod]
|
|
5
|
+
.env
|
|
6
|
+
.venv/
|
|
7
|
+
|
|
8
|
+
# Builds and package metadata
|
|
9
|
+
/build/
|
|
10
|
+
dist/
|
|
11
|
+
*.egg-info/
|
|
12
|
+
target/
|
|
13
|
+
|
|
14
|
+
# Test and quality-tool output
|
|
15
|
+
.coverage
|
|
16
|
+
.coverage.*
|
|
17
|
+
htmlcov/
|
|
18
|
+
.hypothesis/
|
|
19
|
+
.pytest_cache/
|
|
20
|
+
.ruff_cache/
|
|
21
|
+
/tests/
|
|
22
|
+
|
|
23
|
+
# Local package credentials
|
|
24
|
+
.netrc
|
|
25
|
+
.pypirc
|
|
26
|
+
.beads/
|
|
27
|
+
ai-docs/
|
|
28
|
+
|
|
29
|
+
# Documentation build output
|
|
30
|
+
public/
|
|
31
|
+
|
|
32
|
+
# mutmut copies the sources here to mutate them
|
|
33
|
+
mutants/
|
|
34
|
+
|
|
35
|
+
# Generated tool/agent artifacts (graphify graphs, Pi subagent transcripts).
|
|
36
|
+
# These are machine output, not source, and must not be committed.
|
|
37
|
+
graphify-out/
|
|
38
|
+
outputs/
|
|
39
|
+
.serena/
|
|
40
|
+
*.lit.*
|
|
41
|
+
packages/turbine-serve/turbine-serve.pdf
|
|
42
|
+
.pi/
|
|
43
|
+
.pi-subagents/
|
|
44
|
+
.claude/settings.local.json
|
|
45
|
+
packages/turbine-core/.complexipy_cache/
|
|
46
|
+
|
|
47
|
+
# Impeccable design context and scratch work
|
|
48
|
+
.impeccable/
|
|
49
|
+
/DESIGN.md
|
|
50
|
+
/PRODUCT.md
|
|
51
|
+
scratch/
|
|
52
|
+
.cache/
|
|
53
|
+
.delta/
|
|
54
|
+
docs/assets/diagrams/turbine-extension-interface.html
|
|
55
|
+
.complexipy_cache/
|
|
56
|
+
.claude/
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: turbine-api
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Contract-first read API for Turbine Data Products
|
|
5
|
+
Requires-Python: >=3.12
|
|
6
|
+
Requires-Dist: litestar>=2.15
|
|
7
|
+
Requires-Dist: msgspec>=0.21.1
|
|
8
|
+
Requires-Dist: pyarrow>=25.0.1
|
|
9
|
+
Requires-Dist: sqlglot>=29.0
|
|
10
|
+
Requires-Dist: turbine-core==1.0.0
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
|
|
13
|
+
# turbine-api
|
|
14
|
+
|
|
15
|
+
`turbine-api` is a Turbine Extension. It adds a read-only Data API to `turbine serve`. The
|
|
16
|
+
API gives each published Dataset of a Data Contract as JSON, with filters, sort, and pages.
|
|
17
|
+
The routes and the fields come from the contract.
|
|
18
|
+
|
|
19
|
+
## Install
|
|
20
|
+
|
|
21
|
+
```console
|
|
22
|
+
uv add turbine-api "turbine-core[serve]"
|
|
23
|
+
uv run turbine serve
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
The API is at `/api/v1/data`. Its description in OpenAPI format is at
|
|
27
|
+
`/api/v1/data/docs/openapi.json`.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# turbine-api
|
|
2
|
+
|
|
3
|
+
`turbine-api` is a Turbine Extension. It adds a read-only Data API to `turbine serve`. The
|
|
4
|
+
API gives each published Dataset of a Data Contract as JSON, with filters, sort, and pages.
|
|
5
|
+
The routes and the fields come from the contract.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```console
|
|
10
|
+
uv add turbine-api "turbine-core[serve]"
|
|
11
|
+
uv run turbine serve
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
The API is at `/api/v1/data`. Its description in OpenAPI format is at
|
|
15
|
+
`/api/v1/data/docs/openapi.json`.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "turbine-api"
|
|
3
|
+
version = "1.0.0"
|
|
4
|
+
description = "Contract-first read API for Turbine Data Products"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.12"
|
|
7
|
+
dependencies = [
|
|
8
|
+
"litestar>=2.15",
|
|
9
|
+
"msgspec>=0.21.1",
|
|
10
|
+
"pyarrow>=25.0.1",
|
|
11
|
+
"sqlglot>=29.0",
|
|
12
|
+
"turbine-core==1.0.0",
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
[project.entry-points."turbine.extension"]
|
|
16
|
+
turbine-api = "turbine.api.extension:contribute"
|
|
17
|
+
|
|
18
|
+
[build-system]
|
|
19
|
+
requires = ["hatchling"]
|
|
20
|
+
build-backend = "hatchling.build"
|
|
21
|
+
|
|
22
|
+
[tool.hatch.build.targets.wheel]
|
|
23
|
+
packages = ["src/turbine"]
|
|
24
|
+
|
|
25
|
+
[tool.uv.sources]
|
|
26
|
+
turbine-core = { workspace = true }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Data Product API Extension: serve the published Datasets over HTTP."""
|