turbopuffer Python Client 
The official Python client for accessing the turbopuffer API.
Usage
- Install the turbopuffer package and set your API key.
pip install turbopuffer
Or if you're able to run C binaries for JSON encoding, use:
pip install 'turbopuffer[fast]'
import turbopuffer as tpuf
tpuf.api_key = 'your-token'
ns = tpuf.Namespace('hello_world', base_url="https://gcp-us-east4.turbopuffer.com")
if ns.exists():
print(f'Namespace {ns.name} exists with {ns.dimensions()} dimensions and approximately {ns.approx_count()} rows.')
ns.write(
upsert_columns={
"id": [1, 2],
"vector": [[0.1, 0.1], [0.2, 0.2]],
"name": ["one", "two"]
},
distance_metric='euclidean_squared',
)
ns.write(
upsert_rows=[
{
"id": id,
"vector": [id/10, id/10],
"name": "other"
} for id in range(3, 10)
],
distance_metric='euclidean_squared',
)
results = ns.query(
rank_by=["vector", "ANN", [0.18, 0.19]],
top_k=10,
filters=['And', [
['name', 'Glob', '*o*'],
['name', 'NotEq', 'other'],
]],
include_attributes=['name', 'vector'],
)
print(results)
namespaces = tpuf.namespaces()
print('Total namespaces:', len(namespaces))
for namespace in namespaces:
print('Namespace', namespace.name, 'contains approximately', namespace.approx_count(),
'rows with', namespace.dimensions(), 'dimensions.')
ns.write(deletes=[1, 2])
Endpoint Documentation
For more details on request parameters and query options, check the docs at https://turbopuffer.com/docs
Development
Run poetry install --with=test
to set up the project and dependencies.
poetry run pytest
- Bump version in
turbopuffer/version.py
and pyproject.toml
git tag vX.Y.Z && git push --tags
poetry build
poetry publish