def __init__(self, V=8, M=4, subquantizer_clusters=256, parameters=None):

        # If learned parameters are passed in explicitly, derive the model params by inspection.
        self.Cs, self.Rs, self.mus, self.subquantizers = parameters if parameters is not None else (None, None, None, None)

        if self.Cs is not None:
            self.V = self.Cs[0].shape[0]
            self.num_coarse_splits = len(self.Cs)
        else:
            self.V = V
            self.num_coarse_splits = 2

        if self.subquantizers is not None:
            self.num_fine_splits = len(self.subquantizers[0])
            self.M = self.num_fine_splits * self.num_coarse_splits
            self.subquantizer_clusters = self.subquantizers[0][0].shape[0]
        else:
            self.num_fine_splits = M / 2
            self.M = M
            self.subquantizer_clusters = subquantizer_clusters
Finder can accept a path with ~ in it and will normalize it.
dataset/ETHPy150Open yahoo/lopq/python/lopq/model.py/LOPQModel.__init__--crossover with--dataset/ETHPy150Open pypa/pip/tests/unit/test_finder.py/test_tilde