@@ -115,36 +115,6 @@ def hash_pandas_object(obj, index=True, encoding='utf8', hash_key=None,
115
115
return h
116
116
117
117
118
- def _hash_lists (vals , encoding = 'utf8' , hash_key = None ):
119
- """
120
-
121
- Parameters
122
- ----------
123
- vals : list of ndarrays
124
- encoding : string, default 'utf8'
125
- encoding for data & key when strings
126
- hash_key : string key to encode, default to _default_hash_key
127
-
128
- Returns
129
- -------
130
- 1d uint64 numpy array of hash values, same length as the vals[0]
131
- """
132
-
133
- if not isinstance (vals , list ):
134
- raise TypeError ("only can accept lists" )
135
-
136
- if not len (vals ):
137
- raise ValueError ("must pass a non-zero length vals" )
138
-
139
- if not isinstance (vals [0 ], np .ndarray ):
140
- raise ValueError ("must pass a ndarray" )
141
-
142
- hashes = (hash_array (l , encoding = encoding , hash_key = hash_key )
143
- for l in vals )
144
- h = _combine_hash_arrays (hashes , len (vals ))
145
- return h
146
-
147
-
148
118
def hash_tuples (vals , encoding = 'utf8' , hash_key = None ):
149
119
"""
150
120
Hash an MultiIndex / list-of-tuples efficiently
@@ -172,22 +142,25 @@ def hash_tuples(vals, encoding='utf8', hash_key=None):
172
142
if not isinstance (vals , MultiIndex ):
173
143
vals = MultiIndex .from_tuples (vals )
174
144
175
- # create a list-of-ndarrays & hash
145
+ # create a list-of-ndarrays
176
146
def get_level_values (num ):
177
147
unique = vals .levels [num ] # .values
178
148
labels = vals .labels [num ]
179
- filled = algos .take_1d (unique .values , labels ,
149
+ filled = algos .take_1d (unique ._values , labels ,
180
150
fill_value = unique ._na_value )
181
151
return filled
182
152
183
153
vals = [get_level_values (level )
184
154
for level in range (vals .nlevels )]
185
155
186
- result = _hash_lists (vals , encoding = encoding , hash_key = hash_key )
156
+ # hash the list-of-ndarrays
157
+ hashes = (hash_array (l , encoding = encoding , hash_key = hash_key )
158
+ for l in vals )
159
+ h = _combine_hash_arrays (hashes , len (vals ))
187
160
if is_tuple :
188
- result = result [0 ]
161
+ h = h [0 ]
189
162
190
- return result
163
+ return h
191
164
192
165
193
166
def _hash_categorical (c , encoding , hash_key ):
0 commit comments