From 1146093cadb7dd86a62a8e28a4d8c669c343053b Mon Sep 17 00:00:00 2001 From: Sorin Sbarnea Date: Tue, 18 May 2021 13:58:15 +0100 Subject: [PATCH] Fix mypy issue with callable (#1553) Related: https://github.com/willmcgugan/rich/discussions/1243 --- .pre-commit-config.yaml | 3 +-- src/ansiblelint/__main__.py | 10 +++++++--- src/ansiblelint/generate_docs.py | 5 +++++ 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 57a0aa702a..2deb9e7228 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -88,8 +88,7 @@ repos: - enrich - flaky - pytest - # https://github.com/willmcgugan/rich/discussions/1243 - - rich>=9.5.1,<10.2 + - rich>=10.2.1 - ruamel.yaml - tenacity - types-PyYAML diff --git a/src/ansiblelint/__main__.py b/src/ansiblelint/__main__.py index 123a504e61..931782bec9 100755 --- a/src/ansiblelint/__main__.py +++ b/src/ansiblelint/__main__.py @@ -28,7 +28,7 @@ import sys from argparse import Namespace from contextlib import contextmanager -from typing import TYPE_CHECKING, Iterator, List, Optional +from typing import TYPE_CHECKING, Any, Callable, Dict, Iterator, List, Optional from enrich.console import should_do_markup @@ -192,14 +192,18 @@ def main(argv: Optional[List[str]] = None) -> int: # On purpose lazy-imports to avoid pre-loading Ansible # pylint: disable=import-outside-toplevel - from ansiblelint.generate_docs import rules_as_rich, rules_as_rst + from ansiblelint.generate_docs import rules_as_rich, rules_as_rst, rules_as_str from ansiblelint.rules import RulesCollection rules = RulesCollection(options.rulesdirs) if options.listrules: - _rule_format_map = {'plain': str, 'rich': rules_as_rich, 'rst': rules_as_rst} + _rule_format_map: Dict[str, Callable[..., Any]] = { + 'plain': rules_as_str, + 'rich': rules_as_rich, + 'rst': rules_as_rst, + } console.print(_rule_format_map[options.format](rules), highlight=False) return 0 diff --git a/src/ansiblelint/generate_docs.py b/src/ansiblelint/generate_docs.py index c8d98c9d04..1994acb1c1 100644 --- a/src/ansiblelint/generate_docs.py +++ b/src/ansiblelint/generate_docs.py @@ -25,6 +25,11 @@ _logger = logging.getLogger(__name__) +def rules_as_str(rules: RulesCollection) -> str: + """Return rules as string.""" + return str(rules) + + def rules_as_rst(rules: RulesCollection) -> str: """Return RST documentation for a list of rules.""" r = DOC_HEADER