Skip to content

Commit dfa3e98

Browse files
committed
Moved methods [skip ci]
1 parent 6fa839d commit dfa3e98

1 file changed

Lines changed: 32 additions & 32 deletions

File tree

pgvector/utils/sparsevec.py

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -21,38 +21,6 @@ def __repr__(self):
2121
elements = dict(zip(self._indices, self._values))
2222
return f'SparseVector({elements}, {self.dimensions()})'
2323

24-
def _from_dict(self, d, dim):
25-
if dim is None:
26-
raise ValueError('dimensions required')
27-
28-
elements = [(i, v) for i, v in d.items()]
29-
elements.sort()
30-
self._dim = int(dim)
31-
self._indices = [int(v[0]) for v in elements]
32-
self._values = [float(v[1]) for v in elements]
33-
34-
def _from_sparse(self, value):
35-
value = value.tocoo()
36-
37-
if value.ndim == 1:
38-
self._dim = value.shape[0]
39-
elif value.ndim == 2 and value.shape[0] == 1:
40-
self._dim = value.shape[1]
41-
else:
42-
raise ValueError('expected ndim to be 1')
43-
44-
if hasattr(value, 'coords'):
45-
# scipy 1.13+
46-
self._indices = value.coords[0].tolist()
47-
else:
48-
self._indices = value.col.tolist()
49-
self._values = value.data.tolist()
50-
51-
def _from_dense(self, value):
52-
self._dim = len(value)
53-
self._indices = [i for i, v in enumerate(value) if v != 0]
54-
self._values = [float(value[i]) for i in self._indices]
55-
5624
def dimensions(self):
5725
return self._dim
5826

@@ -87,6 +55,38 @@ def to_binary(self):
8755
nnz = len(self._indices)
8856
return pack(f'>iii{nnz}i{nnz}f', self._dim, nnz, 0, *self._indices, *self._values)
8957

58+
def _from_dict(self, d, dim):
59+
if dim is None:
60+
raise ValueError('dimensions required')
61+
62+
elements = [(i, v) for i, v in d.items()]
63+
elements.sort()
64+
self._dim = int(dim)
65+
self._indices = [int(v[0]) for v in elements]
66+
self._values = [float(v[1]) for v in elements]
67+
68+
def _from_sparse(self, value):
69+
value = value.tocoo()
70+
71+
if value.ndim == 1:
72+
self._dim = value.shape[0]
73+
elif value.ndim == 2 and value.shape[0] == 1:
74+
self._dim = value.shape[1]
75+
else:
76+
raise ValueError('expected ndim to be 1')
77+
78+
if hasattr(value, 'coords'):
79+
# scipy 1.13+
80+
self._indices = value.coords[0].tolist()
81+
else:
82+
self._indices = value.col.tolist()
83+
self._values = value.data.tolist()
84+
85+
def _from_dense(self, value):
86+
self._dim = len(value)
87+
self._indices = [i for i, v in enumerate(value) if v != 0]
88+
self._values = [float(value[i]) for i in self._indices]
89+
9090
@classmethod
9191
def from_text(cls, value):
9292
elements, dim = value.split('/', 2)

0 commit comments

Comments
 (0)