def compute_build_matrix(meta, existing_matrix=None, channel_sources=tuple()): channel_sources = tuple(channel_sources) # Override what `defaults` means depending on the platform used. try: i = channel_sources.index("defaults") defaults = DEFAULT_CHANNELS_UNIX if meta_config(meta).subdir.startswith("win"): defaults = DEFAULT_CHANNELS_WIN channel_sources = ( channel_sources[:i] + defaults + channel_sources[i+1:] ) except ValueError: pass index = conda.api.get_index(channel_urls=channel_sources, platform=meta_config(meta).subdir) mtx = special_case_version_matrix(meta, index) mtx = list(filter_cases(mtx, ['python >=2.7,<3|>=3.5', 'numpy >=1.11', 'r-base >=3.3.2'])) if existing_matrix: mtx = [tuple(mtx_case) + tuple(MatrixCaseEnvVar(*item) for item in case) for case in sorted(existing_matrix) for mtx_case in mtx] return mtx
def compute_build_matrix(meta, existing_matrix=None, channel_sources=tuple()): channel_sources = tuple(channel_sources) # Override what `defaults` means depending on the platform used. try: i = channel_sources.index("defaults") defaults = DEFAULT_CHANNELS_UNIX if meta_config(meta).subdir.startswith("win"): defaults = DEFAULT_CHANNELS_WIN channel_sources = (channel_sources[:i] + defaults + channel_sources[i + 1:]) except ValueError: pass index = conda.api.get_index(channel_urls=channel_sources, platform=meta_config(meta).subdir) mtx = special_case_version_matrix(meta, index) mtx = list( filter_cases(mtx, [ 'python >=2.7,<3|>=3.5', 'numpy >=1.11', 'r-base ==3.3.2|==3.4.1' ])) if existing_matrix: mtx = [ tuple(mtx_case) + tuple(MatrixCaseEnvVar(*item) for item in case) for case in sorted(existing_matrix) for mtx_case in mtx ] return mtx
def test_multiple_filter_with_numpy(self): cases = ([self.item['py26'], self.item['np110']], [self.item['py34'], self.item['np19']], [self.item['py35'], self.item['np110']]) self.assertEqual( tuple(filter_cases(cases, ['python >=3', 'numpy 1.10.*'])), cases[2:])
def compute_build_matrix(meta, existing_matrix=None): index = conda.api.get_index() mtx = special_case_version_matrix(meta, index) mtx = list(filter_cases(mtx, ['python >=2.7,<3|>=3.4', 'numpy >=1.10'])) if existing_matrix: mtx = [tuple(mtx_case) + tuple(MatrixCaseEnvVar(*item) for item in case) for case in sorted(existing_matrix) for mtx_case in mtx] return mtx
def resolve_all(cls, meta, index=None, extra_conditions=None): """ Given a package, return a list of ResolvedDistributions, one for each possible (necessary) version permutation. """ if index is None: with vn_matrix.override_conda_logging('WARN'): index = get_index() cases = sorted(vn_matrix.special_case_version_matrix(meta, index)) if extra_conditions: cases = list(vn_matrix.filter_cases(cases, extra_conditions)) result = [] for case in cases: dist = cls(meta, case) if not dist.skip(): result.append(dist) return result
def test_no_filter(self): cases = ([self.item['py26']], [self.item['py35']]) self.assertEqual(tuple(filter_cases(cases, [])), cases)
def test_nothing(self): self.assertEqual(list(filter_cases([], [])), [])
def compute_build_matrix(meta): index = conda.api.get_index() mtx = special_case_version_matrix(meta, index) mtx = list(filter_cases(mtx, ['python >=2.7,<3|>=3.4', 'numpy >=1.10'])) return mtx
def compute_build_matrix(meta): index = conda.api.get_index() mtx = special_case_version_matrix(meta, index) mtx = list(filter_cases(mtx, ['python >=2.7,<3|>=3.4', 'numpy >=1.9'])) return mtx
def test_multiple_filter(self): cases = ([self.item['py26'], self.item['np110']], [self.item['py34'], self.item['np19']], [self.item['py35'], self.item['np110']]) self.assertEqual(tuple(filter_cases(cases, ['python >=3', 'numpy 1.10.*'])), cases[2:])
def test_single_filter(self): cases = ([self.item['py26']], [self.item['py35']]) self.assertEqual(tuple(filter_cases(cases, ['python >=3'])), cases[1:])
def test_multiple_filter(self): cases = ([self.item['py26']], [self.item['py34']], [self.item['py35']]) self.assertEqual(tuple(filter_cases(cases, ['python >=3', 'python <=3.4'])), cases[1:2])
def test_other_cases(self): cases = ([self.item['py26'], self.item['o12']], [self.item['py34'], self.item['o12']], [self.item['py35'], self.item['o13']]) self.assertEqual(tuple(filter_cases(cases, ['other 1.2.*'])), cases[:2])