コード例 #1
0
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
コード例 #2
0
ファイル: _pyflakes.py プロジェクト: Twister920/studyhelper
    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)
コード例 #3
0
ファイル: _pyflakes.py プロジェクト: wdv4758h/flake8
    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
            )
コード例 #4
0
ファイル: test_util.py プロジェクト: zaazbb/pep8
    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/*'])
コード例 #5
0
    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/*'])
コード例 #6
0
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
コード例 #7
0
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
コード例 #8
0
ファイル: _pyflakes.py プロジェクト: wdv4758h/flake8
    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)
コード例 #9
0
ファイル: _pyflakes.py プロジェクト: Twister920/studyhelper
    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)