hevlayer 0.4.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.
@@ -0,0 +1,53 @@
1
+ # Rust
2
+ target/
3
+
4
+ # Node/site
5
+ node_modules/
6
+ site/node_modules/
7
+ site/dist/
8
+ site/.astro/
9
+
10
+ # Python
11
+ __pycache__/
12
+ *.py[cod]
13
+ .venv/
14
+ venv/
15
+ .pytest_cache/
16
+ .ruff_cache/
17
+
18
+ # Terraform
19
+ **/.terraform/
20
+ *.tfstate
21
+ *.tfstate.*
22
+ crash.log
23
+ crash.*.log
24
+ override.tf
25
+ override.tf.json
26
+ *_override.tf
27
+ *_override.tf.json
28
+ *.tfvars
29
+ !*.tfvars.example
30
+ backend.hcl
31
+
32
+ # Secrets and local environment
33
+ .env
34
+ .env.*
35
+ *.local
36
+ .dev.vars
37
+ site/.dev.vars
38
+ .wrangler/
39
+ site/.wrangler/
40
+ scripts/route53-contact.json
41
+ .license-e2e-key.json
42
+ .license-e2e-real-key.json
43
+ .license-e2e-real-report.*.txt
44
+ .license-funnel-report.*.txt
45
+
46
+ # Tooling and OS noise
47
+ .claude/
48
+ .DS_Store
49
+ Thumbs.db
50
+ *.log
51
+ logs/
52
+
53
+ clients/typescript/dist/
@@ -0,0 +1,5 @@
1
+ # hevlayer Python client changelog
2
+
3
+ ## 0.1.0
4
+
5
+ - Initial public release candidate for the typed async Python client.
@@ -0,0 +1,143 @@
1
+ Metadata-Version: 2.4
2
+ Name: hevlayer
3
+ Version: 0.4.0
4
+ Summary: Typed async Python client for the hevlayer gateway
5
+ License-Expression: Apache-2.0
6
+ Requires-Python: >=3.11
7
+ Requires-Dist: httpx>=0.27
8
+ Requires-Dist: pydantic>=2
9
+ Description-Content-Type: text/markdown
10
+
11
+ # hevlayer Python SDK
12
+
13
+ Generated by `scripts/sdk-harness generate --lang python` from
14
+ `apps/layer-gateway/openapi.yaml`.
15
+
16
+ ## Quickstart
17
+
18
+ ```python
19
+ import asyncio
20
+ import os
21
+
22
+ from hevlayer import AsyncHevlayer, QueryRequest
23
+
24
+
25
+ async def main() -> None:
26
+ client = AsyncHevlayer(
27
+ api_key=os.environ["HEVLAYER_API_KEY"],
28
+ base_url="https://aws-us-east-1.hevlayer.com",
29
+ )
30
+ async with client:
31
+ response = await client.query_namespace(
32
+ "products",
33
+ QueryRequest(vector=[0.1, 0.2, 0.3], top_k=5, include_attributes=True),
34
+ raw_query="wireless headphones",
35
+ tags=["app:hev-shop", "surface:storefront", "route:search", "page:first"],
36
+ with_perf=True,
37
+ )
38
+ print(response.perf.latency_ms, response.perf.cache_status)
39
+ print(response.data.rows)
40
+
41
+ history = await client.list_search_history(
42
+ "products",
43
+ tags=["app:hev-shop", "route:search", "page:first"],
44
+ limit=20,
45
+ )
46
+ print(history.entries)
47
+
48
+
49
+ asyncio.run(main())
50
+ ```
51
+
52
+ ## Generated Operations
53
+
54
+ - `authenticate_key`
55
+ - `batch_query_namespace`
56
+ - `branch_namespace`
57
+ - `claim_documents`
58
+ - `claim_udf_items`
59
+ - `complete_udf_items`
60
+ - `copy_namespace`
61
+ - `create_checkpoint`
62
+ - `create_pipeline`
63
+ - `create_scan`
64
+ - `create_snapshot`
65
+ - `create_udf`
66
+ - `delete_key`
67
+ - `delete_namespace`
68
+ - `delete_pipeline`
69
+ - `delete_scan`
70
+ - `delete_udf`
71
+ - `discover_udf`
72
+ - `evaluate_turbopuffer_recall`
73
+ - `explain_turbopuffer_query`
74
+ - `fail_udf_items`
75
+ - `fetch_document`
76
+ - `fetch_documents`
77
+ - `get_blob`
78
+ - `get_checkpoint`
79
+ - `get_cost_rate_card`
80
+ - `get_cost_snapshot`
81
+ - `get_cost_timeseries`
82
+ - `get_key`
83
+ - `get_license`
84
+ - `get_metric_catalog_entry`
85
+ - `get_namespace_metadata`
86
+ - `get_namespace_snapshot`
87
+ - `get_pipeline_document_chunks`
88
+ - `get_pipeline_status`
89
+ - `get_scan`
90
+ - `get_scan_results`
91
+ - `get_snapshot_job`
92
+ - `get_snapshot_policy`
93
+ - `get_turbopuffer_namespace_schema`
94
+ - `get_turbopuffer_v1_namespace_metadata`
95
+ - `get_udf`
96
+ - `get_udf_status`
97
+ - `get_vectorstore`
98
+ - `get_warehouse`
99
+ - `get_warm_job`
100
+ - `heartbeat_documents`
101
+ - `heartbeat_udf_items`
102
+ - `hint_cache_warm`
103
+ - `import_namespace`
104
+ - `init_namespace`
105
+ - `list_checkpoints`
106
+ - `list_clickstream`
107
+ - `list_keys`
108
+ - `list_metrics_catalog`
109
+ - `list_namespace_history`
110
+ - `list_namespaces`
111
+ - `list_pipelines`
112
+ - `list_scans`
113
+ - `list_search_history`
114
+ - `list_snapshot_activity`
115
+ - `list_snapshot_jobs`
116
+ - `list_turbopuffer_namespaces`
117
+ - `list_udfs`
118
+ - `list_vectorstores`
119
+ - `list_warehouses`
120
+ - `list_warm_jobs`
121
+ - `mint_key`
122
+ - `pause_udf`
123
+ - `put_blob`
124
+ - `put_pipeline_document_chunks`
125
+ - `put_pipeline_document_vectors`
126
+ - `put_snapshot_policy`
127
+ - `query`
128
+ - `query_agent`
129
+ - `query_metrics`
130
+ - `query_metrics_api_v1`
131
+ - `query_metrics_range`
132
+ - `query_metrics_range_api_v1`
133
+ - `query_namespace`
134
+ - `query_turbopuffer_namespace`
135
+ - `reset_failed_udf`
136
+ - `resume_udf`
137
+ - `revoke_key`
138
+ - `set_documents_stage`
139
+ - `update_turbopuffer_namespace_metadata`
140
+ - `update_turbopuffer_namespace_schema`
141
+ - `upsert_udf`
142
+ - `warm_cache`
143
+ - `write_namespace`
@@ -0,0 +1,133 @@
1
+ # hevlayer Python SDK
2
+
3
+ Generated by `scripts/sdk-harness generate --lang python` from
4
+ `apps/layer-gateway/openapi.yaml`.
5
+
6
+ ## Quickstart
7
+
8
+ ```python
9
+ import asyncio
10
+ import os
11
+
12
+ from hevlayer import AsyncHevlayer, QueryRequest
13
+
14
+
15
+ async def main() -> None:
16
+ client = AsyncHevlayer(
17
+ api_key=os.environ["HEVLAYER_API_KEY"],
18
+ base_url="https://aws-us-east-1.hevlayer.com",
19
+ )
20
+ async with client:
21
+ response = await client.query_namespace(
22
+ "products",
23
+ QueryRequest(vector=[0.1, 0.2, 0.3], top_k=5, include_attributes=True),
24
+ raw_query="wireless headphones",
25
+ tags=["app:hev-shop", "surface:storefront", "route:search", "page:first"],
26
+ with_perf=True,
27
+ )
28
+ print(response.perf.latency_ms, response.perf.cache_status)
29
+ print(response.data.rows)
30
+
31
+ history = await client.list_search_history(
32
+ "products",
33
+ tags=["app:hev-shop", "route:search", "page:first"],
34
+ limit=20,
35
+ )
36
+ print(history.entries)
37
+
38
+
39
+ asyncio.run(main())
40
+ ```
41
+
42
+ ## Generated Operations
43
+
44
+ - `authenticate_key`
45
+ - `batch_query_namespace`
46
+ - `branch_namespace`
47
+ - `claim_documents`
48
+ - `claim_udf_items`
49
+ - `complete_udf_items`
50
+ - `copy_namespace`
51
+ - `create_checkpoint`
52
+ - `create_pipeline`
53
+ - `create_scan`
54
+ - `create_snapshot`
55
+ - `create_udf`
56
+ - `delete_key`
57
+ - `delete_namespace`
58
+ - `delete_pipeline`
59
+ - `delete_scan`
60
+ - `delete_udf`
61
+ - `discover_udf`
62
+ - `evaluate_turbopuffer_recall`
63
+ - `explain_turbopuffer_query`
64
+ - `fail_udf_items`
65
+ - `fetch_document`
66
+ - `fetch_documents`
67
+ - `get_blob`
68
+ - `get_checkpoint`
69
+ - `get_cost_rate_card`
70
+ - `get_cost_snapshot`
71
+ - `get_cost_timeseries`
72
+ - `get_key`
73
+ - `get_license`
74
+ - `get_metric_catalog_entry`
75
+ - `get_namespace_metadata`
76
+ - `get_namespace_snapshot`
77
+ - `get_pipeline_document_chunks`
78
+ - `get_pipeline_status`
79
+ - `get_scan`
80
+ - `get_scan_results`
81
+ - `get_snapshot_job`
82
+ - `get_snapshot_policy`
83
+ - `get_turbopuffer_namespace_schema`
84
+ - `get_turbopuffer_v1_namespace_metadata`
85
+ - `get_udf`
86
+ - `get_udf_status`
87
+ - `get_vectorstore`
88
+ - `get_warehouse`
89
+ - `get_warm_job`
90
+ - `heartbeat_documents`
91
+ - `heartbeat_udf_items`
92
+ - `hint_cache_warm`
93
+ - `import_namespace`
94
+ - `init_namespace`
95
+ - `list_checkpoints`
96
+ - `list_clickstream`
97
+ - `list_keys`
98
+ - `list_metrics_catalog`
99
+ - `list_namespace_history`
100
+ - `list_namespaces`
101
+ - `list_pipelines`
102
+ - `list_scans`
103
+ - `list_search_history`
104
+ - `list_snapshot_activity`
105
+ - `list_snapshot_jobs`
106
+ - `list_turbopuffer_namespaces`
107
+ - `list_udfs`
108
+ - `list_vectorstores`
109
+ - `list_warehouses`
110
+ - `list_warm_jobs`
111
+ - `mint_key`
112
+ - `pause_udf`
113
+ - `put_blob`
114
+ - `put_pipeline_document_chunks`
115
+ - `put_pipeline_document_vectors`
116
+ - `put_snapshot_policy`
117
+ - `query`
118
+ - `query_agent`
119
+ - `query_metrics`
120
+ - `query_metrics_api_v1`
121
+ - `query_metrics_range`
122
+ - `query_metrics_range_api_v1`
123
+ - `query_namespace`
124
+ - `query_turbopuffer_namespace`
125
+ - `reset_failed_udf`
126
+ - `resume_udf`
127
+ - `revoke_key`
128
+ - `set_documents_stage`
129
+ - `update_turbopuffer_namespace_metadata`
130
+ - `update_turbopuffer_namespace_schema`
131
+ - `upsert_udf`
132
+ - `warm_cache`
133
+ - `write_namespace`
@@ -0,0 +1,18 @@
1
+ [build-system]
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "hevlayer"
7
+ version = "0.4.0"
8
+ description = "Typed async Python client for the hevlayer gateway"
9
+ readme = "README.md"
10
+ requires-python = ">=3.11"
11
+ license = "Apache-2.0"
12
+ dependencies = [
13
+ "httpx>=0.27",
14
+ "pydantic>=2",
15
+ ]
16
+
17
+ [tool.hatch.build.targets.wheel]
18
+ packages = ["src/hevlayer"]
@@ -0,0 +1,24 @@
1
+ import warnings
2
+
3
+ warnings.filterwarnings(
4
+ "ignore",
5
+ message=r'Field name "schema" in "NamespaceMetadata" shadows an attribute in parent "BaseModel"',
6
+ category=UserWarning,
7
+ )
8
+
9
+ from .client import AsyncHevlayer, HevlayerError, HevlayerProtocol, LayerPerf, LayerResponse
10
+ from .models import *
11
+ from .udf import PermanentError, TpufClient, TransientError, run_udf_worker, udf
12
+
13
+ __all__ = [
14
+ "AsyncHevlayer",
15
+ "HevlayerError",
16
+ "HevlayerProtocol",
17
+ "LayerPerf",
18
+ "LayerResponse",
19
+ "PermanentError",
20
+ "TpufClient",
21
+ "TransientError",
22
+ "run_udf_worker",
23
+ "udf",
24
+ ]