John Snow <js...@redhat.com> writes:

> Mypy cannot generally understand that these regex functions cannot
> possibly fail. Add a _nofail helper that clarifies this for mypy.

Convention wants a blank line here.

> Signed-off-by: John Snow <js...@redhat.com>
> ---
>  scripts/qapi/common.py |  8 +++++++-
>  scripts/qapi/main.py   |  6 ++----
>  scripts/qapi/parser.py | 13 +++++++------
>  3 files changed, 16 insertions(+), 11 deletions(-)
>
> diff --git a/scripts/qapi/common.py b/scripts/qapi/common.py
> index cbd3fd81d36..d38c1746767 100644
> --- a/scripts/qapi/common.py
> +++ b/scripts/qapi/common.py
> @@ -12,7 +12,7 @@
>  # See the COPYING file in the top-level directory.
>  
>  import re
> -from typing import Optional, Sequence
> +from typing import Match, Optional, Sequence
>  
>  
>  #: Magic string that gets removed along with all space to its right.
> @@ -210,3 +210,9 @@ def gen_endif(ifcond: Sequence[str]) -> str:
>  #endif /* %(cond)s */
>  ''', cond=ifc)
>      return ret
> +
> +
> +def match_nofail(pattern: str, string: str) -> Match[str]:
> +    match = re.match(pattern, string)
> +    assert match is not None
> +    return match

Name it must_match()?  You choose.

I wish we could have more stating typing with less notational overhead,
but no free lunch...

[...]


Reply via email to