Skip to content

Commit 0266a2e

Browse files
committed
Fixed dict constructor for SparseVector [skip ci]
1 parent dfa3e98 commit 0266a2e

2 files changed

Lines changed: 4 additions & 3 deletions

File tree

pgvector/utils/sparsevec.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ def _from_dict(self, d, dim):
5959
if dim is None:
6060
raise ValueError('dimensions required')
6161

62-
elements = [(i, v) for i, v in d.items()]
62+
elements = [(i, v) for i, v in d.items() if v != 0]
6363
elements.sort()
6464
self._dim = int(dim)
6565
self._indices = [int(v[0]) for v in elements]

tests/test_sparse_vector.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@ def test_from_dense_dimensions(self):
1616
assert str(error.value) == 'dimensions not allowed'
1717

1818
def test_from_dict(self):
19-
assert SparseVector({2: 2, 4: 3, 0: 1, 3: 0}, 6).to_list() == [1, 0, 2, 0, 3, 0]
20-
assert SparseVector([1, 0, 2, 0, 3, 0]).indices() == [0, 2, 4]
19+
vec = SparseVector({2: 2, 4: 3, 0: 1, 3: 0}, 6)
20+
assert vec.to_list() == [1, 0, 2, 0, 3, 0]
21+
assert vec.indices() == [0, 2, 4]
2122

2223
def test_from_dict_no_dimensions(self):
2324
with pytest.raises(ValueError) as error:

0 commit comments

Comments
 (0)