def run_docformatter(
    rule_runner: RuleRunner,
    targets: List[Target],
    *,
    passthrough_args: Optional[str] = None,
    skip: bool = False,
) -> Tuple[Sequence[LintResult], FmtResult]:
    args = ["--backend-packages=pants.backend.python.lint.docformatter"]
    if passthrough_args:
        args.append(f"--docformatter-args='{passthrough_args}'")
    if skip:
        args.append("--docformatter-skip")
    rule_runner.set_options(args)
    field_sets = [DocformatterFieldSet.create(tgt) for tgt in targets]
    lint_results = rule_runner.request(LintResults,
                                       [DocformatterRequest(field_sets)])
    input_sources = rule_runner.request(
        SourceFiles,
        [
            SourceFilesRequest(field_set.sources for field_set in field_sets),
        ],
    )
    fmt_result = rule_runner.request(
        FmtResult,
        [
            DocformatterRequest(field_sets,
                                prior_formatter_result=input_sources.snapshot),
        ],
    )
    return lint_results.results, fmt_result
예제 #2
0
def run_docformatter(
    rule_runner: RuleRunner,
    targets: list[Target],
    *,
    extra_args: list[str] | None = None
) -> tuple[tuple[LintResult, ...], FmtResult]:
    rule_runner.set_options(
        [
            "--backend-packages=pants.backend.python.lint.docformatter",
            *(extra_args or ())
        ],
        env_inherit={"PATH", "PYENV_ROOT", "HOME"},
    )
    field_sets = [DocformatterFieldSet.create(tgt) for tgt in targets]
    lint_results = rule_runner.request(LintResults,
                                       [DocformatterRequest(field_sets)])
    input_sources = rule_runner.request(
        SourceFiles,
        [
            SourceFilesRequest(field_set.source for field_set in field_sets),
        ],
    )
    fmt_result = rule_runner.request(
        FmtResult,
        [
            DocformatterRequest(field_sets,
                                prior_formatter_result=input_sources.snapshot),
        ],
    )
    return lint_results.results, fmt_result
예제 #3
0
 def run_docformatter(
     self,
     targets: List[TargetWithOrigin],
     *,
     passthrough_args: Optional[str] = None,
     skip: bool = False,
 ) -> Tuple[LintResult, FmtResult]:
     args = ["--backend-packages2=pants.backend.python.lint.docformatter"]
     if passthrough_args:
         args.append(f"--docformatter-args='{passthrough_args}'")
     if skip:
         args.append(f"--docformatter-skip")
     options_bootstrapper = create_options_bootstrapper(args=args)
     field_sets = [DocformatterFieldSet.create(tgt) for tgt in targets]
     lint_result = self.request_single_product(
         LintResult,
         Params(DocformatterFieldSets(field_sets), options_bootstrapper))
     input_sources = self.request_single_product(
         SourceFiles,
         Params(
             AllSourceFilesRequest(field_set.sources
                                   for field_set in field_sets),
             options_bootstrapper,
         ),
     )
     fmt_result = self.request_single_product(
         FmtResult,
         Params(
             DocformatterFieldSets(
                 field_sets, prior_formatter_result=input_sources.snapshot),
             options_bootstrapper,
         ),
     )
     return lint_result, fmt_result