def get_style_guide(**kwargs): """Parse the options and configure the checker. This returns a sub-class of ``pep8.StyleGuide``.""" kwargs['parser'], options_hooks = get_parser() styleguide = StyleGuide(**kwargs) options = styleguide.options _disable_extensions(kwargs['parser'], options) if options.exclude and not isinstance(options.exclude, list): options.exclude = pep8.normalize_paths(options.exclude) elif not options.exclude: options.exclude = [] # Add patterns in EXTRA_EXCLUDE to the list of excluded patterns options.exclude.extend(pep8.normalize_paths(EXTRA_EXCLUDE)) for options_hook in options_hooks: options_hook(options) if util.warn_when_using_jobs(options): if not multiprocessing: warnings.warn("The multiprocessing module is not available. " "Ignoring --jobs arguments.") if util.is_windows(): warnings.warn("The --jobs option is not available on Windows. " "Ignoring --jobs arguments.") if util.is_using_stdin(styleguide.paths): warnings.warn("The --jobs option is not compatible with supplying " "input using - . Ignoring --jobs arguments.") if options.diff: warnings.warn("The --diff option was specified with --jobs but " "they are not compatible. Ignoring --jobs arguments." ) if options.diff: options.jobs = None force_disable_jobs = util.force_disable_jobs(styleguide) if multiprocessing and options.jobs and not force_disable_jobs: if options.jobs.isdigit(): n_jobs = int(options.jobs) else: try: n_jobs = multiprocessing.cpu_count() except NotImplementedError: n_jobs = 1 if n_jobs > 1: options.jobs = n_jobs reporter = QueueReport if options.quiet: reporter = BaseQReport if options.quiet == 1: reporter = FileQReport report = styleguide.init_report(reporter) report.input_file = styleguide.input_file styleguide.runner = report.task_queue.put return styleguide
def parse_options(cls, options): if options.builtins: cls.builtIns = cls.builtIns.union(options.builtins.split(',')) cls.withDoctest = options.doctests included_files = [] for included_file in options.include_in_doctest.split(','): if included_file == '': continue if not included_file.startswith((os.sep, './', '~/')): included_files.append('./' + included_file) else: included_files.append(included_file) cls.include_in_doctest = pep8.normalize_paths(','.join(included_files)) excluded_files = [] for excluded_file in options.exclude_from_doctest.split(','): if excluded_file == '': continue if not excluded_file.startswith((os.sep, './', '~/')): excluded_files.append('./' + excluded_file) else: excluded_files.append(excluded_file) cls.exclude_from_doctest = pep8.normalize_paths( ','.join(excluded_files)) inc_exc = set(cls.include_in_doctest).intersection( set(cls.exclude_from_doctest)) if inc_exc: raise ValueError('"%s" was specified in both the ' 'include-in-doctest and exclude-from-doctest ' 'options. You are not allowed to specify it in ' 'both for doctesting.' % inc_exc)
def parse_options(cls, options): if options.builtins: cls.builtIns = cls.builtIns.union(options.builtins.split(",")) cls.withDoctest = options.doctests included_files = [] for included_file in options.include_in_doctest.split(","): if included_file == "": continue if not included_file.startswith((os.sep, "./", "~/")): included_files.append("./" + included_file) else: included_files.append(included_file) cls.include_in_doctest = pep8.normalize_paths(",".join(included_files)) excluded_files = [] for excluded_file in options.exclude_from_doctest.split(","): if excluded_file == "": continue if not excluded_file.startswith((os.sep, "./", "~/")): excluded_files.append("./" + excluded_file) else: excluded_files.append(excluded_file) cls.exclude_from_doctest = pep8.normalize_paths(",".join(excluded_files)) inc_exc = set(cls.include_in_doctest).intersection(set(cls.exclude_from_doctest)) if inc_exc: raise ValueError( '"%s" was specified in both the ' "include-in-doctest and exclude-from-doctest " "options. You are not allowed to specify it in " "both for doctesting." % inc_exc )
def test_normalize_paths(self): cwd = os.getcwd() self.assertEquals(pep8.normalize_paths(''), []) self.assertEquals(pep8.normalize_paths([]), []) self.assertEquals(pep8.normalize_paths(None), []) self.assertEquals(pep8.normalize_paths(['foo']), ['foo']) self.assertEquals(pep8.normalize_paths('foo'), ['foo']) self.assertEquals(pep8.normalize_paths('foo,bar'), ['foo', 'bar']) self.assertEquals(pep8.normalize_paths('foo, bar '), ['foo', 'bar']) self.assertEquals(pep8.normalize_paths('/foo/bar,baz/../bat'), ['/foo/bar', cwd + '/bat']) self.assertEquals(pep8.normalize_paths(".pyc,\n build/*"), ['.pyc', cwd + '/build/*'])
def test_normalize_paths(self): cwd = os.getcwd() self.assertEqual(pep8.normalize_paths(''), []) self.assertEqual(pep8.normalize_paths([]), []) self.assertEqual(pep8.normalize_paths(None), []) self.assertEqual(pep8.normalize_paths(['foo']), ['foo']) self.assertEqual(pep8.normalize_paths('foo'), ['foo']) self.assertEqual(pep8.normalize_paths('foo,bar'), ['foo', 'bar']) self.assertEqual(pep8.normalize_paths('foo, bar '), ['foo', 'bar']) self.assertEqual(pep8.normalize_paths('/foo/bar,baz/../bat'), ['/foo/bar', cwd + '/bat']) self.assertEqual(pep8.normalize_paths(".pyc,\n build/*"), ['.pyc', cwd + '/build/*'])
def get_style_guide(**kwargs): """Parse the options and configure the checker. This returns a sub-class of ``pep8.StyleGuide``.""" kwargs['parser'], options_hooks = get_parser() styleguide = StyleGuide(**kwargs) options = styleguide.options _disable_extensions(kwargs['parser'], options) if options.exclude and not isinstance(options.exclude, list): options.exclude = pep8.normalize_paths(options.exclude) elif not options.exclude: options.exclude = [] # Add pattersn in EXTRA_EXCLUDE to the list of excluded patterns options.exclude.extend(pep8.normalize_paths(EXTRA_EXCLUDE)) for options_hook in options_hooks: options_hook(options) if options.diff: options.jobs = None force_disable_jobs = is_windows() or is_using_stdin(styleguide.paths) if multiprocessing and options.jobs and not force_disable_jobs: if options.jobs.isdigit(): n_jobs = int(options.jobs) else: try: n_jobs = multiprocessing.cpu_count() except NotImplementedError: n_jobs = 1 if n_jobs > 1: options.jobs = n_jobs reporter = BaseQReport if options.quiet else QueueReport report = styleguide.init_report(reporter) report.input_file = styleguide.input_file styleguide.runner = report.task_queue.put return styleguide
def get_style_guide(**kwargs): """Parse the options and configure the checker. This returns a sub-class of ``pep8.StyleGuide``.""" kwargs["parser"], options_hooks = get_parser() styleguide = StyleGuide(**kwargs) options = styleguide.options _disable_extensions(kwargs["parser"], options) if options.exclude and not isinstance(options.exclude, list): options.exclude = pep8.normalize_paths(options.exclude) elif not options.exclude: options.exclude = [] # Add pattersn in EXTRA_EXCLUDE to the list of excluded patterns options.exclude.extend(pep8.normalize_paths(EXTRA_EXCLUDE)) for options_hook in options_hooks: options_hook(options) if options.diff: options.jobs = None force_disable_jobs = is_windows() or is_using_stdin(styleguide.paths) if multiprocessing and options.jobs and not force_disable_jobs: if options.jobs.isdigit(): n_jobs = int(options.jobs) else: try: n_jobs = multiprocessing.cpu_count() except NotImplementedError: n_jobs = 1 if n_jobs > 1: options.jobs = n_jobs reporter = BaseQReport if options.quiet else QueueReport report = styleguide.init_report(reporter) report.input_file = styleguide.input_file styleguide.runner = report.task_queue.put return styleguide
def __init__(self, tree, filename): filename = pep8.normalize_paths(filename)[0] withDoctest = self.withDoctest included_by = [include for include in self.include_in_doctest if include != "" and filename.startswith(include)] if included_by: withDoctest = True for exclude in self.exclude_from_doctest: if exclude != "" and filename.startswith(exclude): withDoctest = False overlaped_by = [include for include in included_by if include.startswith(exclude)] if overlaped_by: withDoctest = True super(FlakesChecker, self).__init__(tree, filename, withDoctest=withDoctest)
def __init__(self, tree, filename): filename = pep8.normalize_paths(filename)[0] withDoctest = self.withDoctest included_by = [ include for include in self.include_in_doctest if include != '' and filename.startswith(include) ] if included_by: withDoctest = True for exclude in self.exclude_from_doctest: if exclude != '' and filename.startswith(exclude): withDoctest = False overlaped_by = [ include for include in included_by if include.startswith(exclude) ] if overlaped_by: withDoctest = True super(FlakesChecker, self).__init__(tree, filename, withDoctest=withDoctest)