diff --git a/setup.py b/setup.py index b230e18a498e..374bf8c5cc39 100644 --- a/setup.py +++ b/setup.py @@ -181,31 +181,36 @@ def keywords_with_side_effects(argv): 'sdist', 'upload', ) + def is_short_option(argument): """Check whether a command line argument is a short option.""" return len(argument) >= 2 and argument[0] == '-' and argument[1] != '-' + def expand_short_options(argument): """Expand combined short options into canonical short options.""" return ('-' + char for char in argument[1:]) + def argument_without_setup_requirements(argv, i): """Check whether a command line argument needs setup requirements.""" if argv[i] in no_setup_requires_arguments: # Simple case: An argument which is either an option or a command # which doesn't need setup requirements. return True - elif is_short_option(argv[i]) and all(option in - no_setup_requires_arguments for option in - expand_short_options(argv[i])): + elif (is_short_option(argv[i]) and + all(option in no_setup_requires_arguments + for option in expand_short_options(argv[i]))): # Not so simple case: Combined short options none of which need # setup requirements. return True - elif argv[i - 1 : i] == ['--egg-base']: + elif argv[i - 1:i] == ['--egg-base']: # Tricky case: --egg-info takes an argument which should not make # us use setup_requires (defeating the purpose of this code). return True else: return False - if all(argument_without_setup_requirements(argv, i) for i in range(1, len(argv))): + + if all(argument_without_setup_requirements(argv, i) + for i in range(1, len(argv))): return { "cmdclass": { "build": DummyCFFIBuild,