From b68f05c1acea187c994704a94ec633e36a1cef7d Mon Sep 17 00:00:00 2001 From: "Shakya, Milind" Date: Mon, 25 Mar 2019 16:25:06 -0400 Subject: [PATCH 1/2] Add exclude parameters to be passed in. --- caniusepython3/__main__.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/caniusepython3/__main__.py b/caniusepython3/__main__.py index b2cc278..c0366db 100644 --- a/caniusepython3/__main__.py +++ b/caniusepython3/__main__.py @@ -45,6 +45,8 @@ def projects_from_cli(args): help='name(s) of projects to test for Python 3 support') parser.add_argument('--verbose', '-v', action='store_true', help='verbose output (e.g. list compatibility overrides)') + parser.add_argument('--exclude', '-e', action='append', default=[], + help='Ignore list') parsed = parser.parse_args(args) if not (parsed.requirements or parsed.metadata or parsed.projects): @@ -61,6 +63,7 @@ def projects_from_cli(args): projects.extend(projects_.projects_from_metadata(metadata)) projects.extend(map(packaging.utils.canonicalize_name, parsed.projects)) + projects = [i for i in projects if i not in parsed.exclude] return projects From c60c64aa2d8ba37c542b9ab756a3f45bb60630bb Mon Sep 17 00:00:00 2001 From: "Shakya, Milind" Date: Fri, 26 Apr 2019 20:44:53 -0400 Subject: [PATCH 2/2] Add test for exclude parameter --- caniusepython3/__main__.py | 3 +-- caniusepython3/test/test_cli.py | 12 ++++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/caniusepython3/__main__.py b/caniusepython3/__main__.py index c0366db..766e47f 100644 --- a/caniusepython3/__main__.py +++ b/caniusepython3/__main__.py @@ -18,7 +18,6 @@ from caniusepython3 import dependencies from caniusepython3 import projects as projects_ -import distlib.metadata import packaging.utils import argparse @@ -63,7 +62,7 @@ def projects_from_cli(args): projects.extend(projects_.projects_from_metadata(metadata)) projects.extend(map(packaging.utils.canonicalize_name, parsed.projects)) - projects = [i for i in projects if i not in parsed.exclude] + projects = {i for i in projects if i not in parsed.exclude} return projects diff --git a/caniusepython3/test/test_cli.py b/caniusepython3/test/test_cli.py index 6018b57..a9791ee 100644 --- a/caniusepython3/test/test_cli.py +++ b/caniusepython3/test/test_cli.py @@ -66,6 +66,7 @@ Requires-Dist: baz """ + class CLITests(unittest.TestCase): expected_requirements = frozenset(['foo-project', 'fizzy', 'pickything', @@ -118,6 +119,17 @@ def test_cli_for_requirements(self): got = ciu_main.projects_from_cli(args) self.assertEqual(set(got), self.expected_requirements) + def test_excluding_requirements(self): + with tempfile.NamedTemporaryFile('w') as file: + file.write(EXAMPLE_REQUIREMENTS) + file.flush() + args = ['--requirements', file.name, '--exclude', 'pickything'] + got = ciu_main.projects_from_cli(args) + expected_requirements = set(self.expected_requirements) + expected_requirements.remove('pickything') + self.assertNotIn('pickything', set(got)) + self.assertEqual(set(got), expected_requirements) + def test_cli_for_metadata(self): with tempfile.NamedTemporaryFile('w') as file: file.write(EXAMPLE_METADATA)