Skip to content

Commit b607c47

Browse files
deps: bump astrapy from 1.5.2 to 2.0.1 (#1881)
* deps: bump astrapy from 1.5.2 to 2.0.1 Bumps [astrapy](https://github.com/datastax/astrapy) from 1.5.2 to 2.0.1. - [Release notes](https://github.com/datastax/astrapy/releases) - [Commits](datastax/astrapy@v1.5.2...v2.0.1) --- updated-dependencies: - dependency-name: astrapy dependency-version: 2.0.1 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> * refactor: replaces instances of namespace with keyspace --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Collin Dutter <[email protected]>
1 parent a98fdf6 commit b607c47

File tree

4 files changed

+24
-21
lines changed

4 files changed

+24
-21
lines changed

griptape/drivers/vector/astradb_vector_store_driver.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,10 @@ def client(self) -> astrapy.DataAPIClient:
5656

5757
@lazy_property()
5858
def collection(self) -> astrapy.Collection:
59+
if self.token is None:
60+
raise ValueError("Astra DB token must be provided.")
5961
return self.client.get_database(
60-
self.api_endpoint, token=self.token, namespace=self.astra_db_namespace
62+
self.api_endpoint, token=self.token, keyspace=self.astra_db_namespace
6163
).get_collection(self.collection_name)
6264

6365
def delete_vector(self, vector_id: str) -> None:
@@ -96,7 +98,7 @@ def upsert_vector(
9698
"""
9799
document = {
98100
k: v
99-
for k, v in {"$vector": vector, "_id": vector_id, "namespace": namespace, "meta": meta}.items()
101+
for k, v in {"$vector": vector, "_id": vector_id, "keyspace": namespace, "meta": meta}.items()
100102
if v is not None
101103
}
102104
if vector_id is not None:
@@ -115,11 +117,11 @@ def load_entry(self, vector_id: str, *, namespace: Optional[str] = None) -> Opti
115117
Returns:
116118
The vector entry (a `BaseVectorStoreDriver.Entry`) if found, otherwise None.
117119
"""
118-
find_filter = {k: v for k, v in {"_id": vector_id, "namespace": namespace}.items() if v is not None}
120+
find_filter = {k: v for k, v in {"_id": vector_id, "keyspace": namespace}.items() if v is not None}
119121
match = self.collection.find_one(filter=find_filter, projection={"*": 1})
120122
if match is not None:
121123
return BaseVectorStoreDriver.Entry(
122-
id=match["_id"], vector=match.get("$vector"), meta=match.get("meta"), namespace=match.get("namespace")
124+
id=match["_id"], vector=match.get("$vector"), meta=match.get("meta"), namespace=match.get("keyspace")
123125
)
124126
return None
125127

@@ -132,10 +134,10 @@ def load_entries(self, *, namespace: Optional[str] = None) -> list[BaseVectorSto
132134
Returns:
133135
A list of vector (`BaseVectorStoreDriver.Entry`) entries.
134136
"""
135-
find_filter: dict[str, str] = {} if namespace is None else {"namespace": namespace}
137+
find_filter: dict[str, str] = {} if namespace is None else {"keyspace": namespace}
136138
return [
137139
BaseVectorStoreDriver.Entry(
138-
id=match["_id"], vector=match.get("$vector"), meta=match.get("meta"), namespace=match.get("namespace")
140+
id=match["_id"], vector=match.get("$vector"), meta=match.get("meta"), namespace=match.get("keyspace")
139141
)
140142
for match in self.collection.find(filter=find_filter, projection={"*": 1})
141143
]
@@ -165,7 +167,7 @@ def query_vector(
165167
with their `score` attribute set to the vector similarity to the query.
166168
"""
167169
query_filter: Optional[dict[str, Any]] = kwargs.get("filter")
168-
find_filter_ns: dict[str, Any] = {} if namespace is None else {"namespace": namespace}
170+
find_filter_ns: dict[str, Any] = {} if namespace is None else {"keyspace": namespace}
169171
find_filter = {**(query_filter or {}), **find_filter_ns}
170172
find_projection: Optional[dict[str, int]] = {"*": 1} if include_vectors else None
171173
ann_limit = count or BaseVectorStoreDriver.DEFAULT_QUERY_COUNT
@@ -182,7 +184,7 @@ def query_vector(
182184
vector=match.get("$vector"),
183185
score=match["$similarity"],
184186
meta=match.get("meta"),
185-
namespace=match.get("namespace"),
187+
namespace=match.get("keyspace"),
186188
)
187189
for match in matches
188190
]

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ drivers-vector-pgvector = [
5959
"psycopg2-binary>=2.9.9",
6060
]
6161
drivers-vector-qdrant = ["qdrant-client>=1.10.1"]
62-
drivers-vector-astra-db = ["astrapy>=1.4"]
62+
drivers-vector-astra-db = ["astrapy>=2.0"]
6363
drivers-embedding-amazon-bedrock = ["boto3>=1.34.119"]
6464
drivers-embedding-amazon-sagemaker = ["boto3>=1.34.119"]
6565
drivers-embedding-huggingface = [

tests/unit/drivers/vector/test_astra_db_vector_store_driver.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def one_document(
5050
"_id": "doc_id",
5151
"$vector": [3.0, 2.0, 1.0],
5252
"meta": "doc_meta",
53-
"namespace": "doc_namespace",
53+
"keyspace": "doc_namespace",
5454
"$similarity": 10,
5555
}
5656

@@ -60,7 +60,7 @@ def one_entry(self, one_document):
6060
id=one_document["_id"],
6161
vector=one_document["$vector"],
6262
meta=one_document["meta"],
63-
namespace=one_document["namespace"],
63+
namespace=one_document["keyspace"],
6464
)
6565

6666
@pytest.fixture()
@@ -69,7 +69,7 @@ def one_query_entry(self, one_document):
6969
id=one_document["_id"],
7070
vector=one_document["$vector"],
7171
meta=one_document["meta"],
72-
namespace=one_document["namespace"],
72+
namespace=one_document["keyspace"],
7373
score=one_document["$similarity"],
7474
)
7575

@@ -91,31 +91,31 @@ def test_load_entry(self, driver, mock_collection, one_entry):
9191
entry = driver.load_entry("vector_id", namespace="some_namespace")
9292
assert entry == one_entry
9393
mock_collection.return_value.find_one.assert_called_once_with(
94-
filter={"_id": "vector_id", "namespace": "some_namespace"},
94+
filter={"_id": "vector_id", "keyspace": "some_namespace"},
9595
projection={"*": 1},
9696
)
9797

9898
def test_load_entry_empty(self, driver, mock_collection_findnothing):
9999
entry = driver.load_entry("vector_id", namespace="some_namespace")
100100
assert entry is None
101101
mock_collection_findnothing.return_value.find_one.assert_called_once_with(
102-
filter={"_id": "vector_id", "namespace": "some_namespace"},
102+
filter={"_id": "vector_id", "keyspace": "some_namespace"},
103103
projection={"*": 1},
104104
)
105105

106106
def test_load_entries(self, driver, mock_collection, one_entry):
107107
entries = driver.load_entries(namespace="some_namespace")
108108
assert entries == [one_entry]
109109
mock_collection.return_value.find.assert_called_once_with(
110-
filter={"namespace": "some_namespace"},
110+
filter={"keyspace": "some_namespace"},
111111
projection={"*": 1},
112112
)
113113

114114
def test_query_vector_allparams(self, driver, mock_collection, one_query_entry):
115115
entries1 = driver.query_vector([0.0, 0.5], count=999, namespace="some_namespace", include_vectors=True)
116116
assert entries1 == [one_query_entry]
117117
mock_collection.return_value.find.assert_called_once_with(
118-
filter={"namespace": "some_namespace"},
118+
filter={"keyspace": "some_namespace"},
119119
sort={"$vector": [0.0, 0.5]},
120120
limit=999,
121121
projection={"*": 1},
@@ -138,7 +138,7 @@ def test_query_allparams(self, driver, mock_collection, one_query_entry):
138138
assert entries1 == [one_query_entry]
139139
query_vector = driver.embedding_driver.embed("some query")
140140
mock_collection.return_value.find.assert_called_once_with(
141-
filter={"namespace": "some_namespace"},
141+
filter={"keyspace": "some_namespace"},
142142
sort={"$vector": query_vector},
143143
limit=999,
144144
projection={"*": 1},

uv.lock

Lines changed: 5 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)