happy-psychiatrist-90774
08/14/2024, 11:39 AMregex-lint
so I've created this very simple example, but I keep getting
Rule entry <generator object AbstractLintRequest.rules at 0x70d1edabc580> had an unexpected type: <class 'generator'>. Rules either extend Rule or UnionRule, or are static functions decorated with @rule.
What am I missing here? 🤔
(code in the comments)happy-psychiatrist-90774
08/14/2024, 11:39 AMfrom pants.core.goals.lint import LintFilesRequest, LintResult
from pants.engine.rules import collect_rules, rule
from pants.option.subsystem import Subsystem
from pants.util.logging import LogLevel
class TestLintSubsystem(Subsystem):
options_scope = 'test-lint'
name = 'test-lint'
help = 'test linting'
class TestLintRequest(LintFilesRequest):
tool_subsystem = TestLintSubsystem
@rule(desc='test linter', level=LogLevel.DEBUG)
async def run_tester(
request: TestLintRequest.Batch, lint_subsystem: TestLintSubsystem
) -> LintResult:
return LintResult(
exit_code=1,
stdout='test stdout',
stderr='',
linter_name=TestLintSubsystem.options_scope,
)
def rules():
return [
*collect_rules(),
TestLintRequest.rules(),
]
broad-processor-92400
08/14/2024, 12:28 PMTestLintRequest.rules()
is what is returning a generator, and so needs to be *
in to the parent list too, like collect_rules()
fast-nail-55400
08/14/2024, 12:43 PMhappy-psychiatrist-90774
08/14/2024, 2:37 PM