Skip to content

Commit 0cf5ca5

Browse files
committed
Improved code
1 parent 2b89e16 commit 0cf5ca5

1 file changed

Lines changed: 8 additions & 6 deletions

File tree

pgvector/utils/sparsevec.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,23 @@
11
import numpy as np
22
from struct import pack, unpack_from
33

4+
NO_DEFAULT = object()
5+
46

57
class SparseVector:
6-
def __init__(self, value, dimensions=None, /):
8+
def __init__(self, value, dimensions=NO_DEFAULT, /):
79
if value.__class__.__module__ == 'scipy.sparse._arrays':
8-
if dimensions is not None:
10+
if dimensions is not NO_DEFAULT:
911
raise ValueError('dimensions not allowed')
1012

1113
self._from_sparse(value)
1214
elif isinstance(value, dict):
15+
if dimensions is NO_DEFAULT:
16+
raise ValueError('dimensions required')
17+
1318
self._from_dict(value, dimensions)
1419
else:
15-
if dimensions is not None:
20+
if dimensions is not NO_DEFAULT:
1621
raise ValueError('dimensions not allowed')
1722

1823
self._from_dense(value)
@@ -56,9 +61,6 @@ def to_binary(self):
5661
return pack(f'>iii{nnz}i{nnz}f', self._dim, nnz, 0, *self._indices, *self._values)
5762

5863
def _from_dict(self, d, dim):
59-
if dim is None:
60-
raise ValueError('dimensions required')
61-
6264
elements = [(i, v) for i, v in d.items() if v != 0]
6365
elements.sort()
6466

0 commit comments

Comments
 (0)