[Python] How to make type-annotation-only type assertions?

Discussão em 'Python' iniciado por Stack, Março 10, 2025.

  1. Stack

    Stack Membro Participativo

    I have two functions:

    def get_foo(params) -> Optional[str]
    def bar(foo: str)


    And a function which chains these functions together:

    def f(params):
    # other stuff up here
    foo = get_foo(params)
    return bar(foo)


    I know based on the other things happening in my function that the result of get_foo will never be None.

    When I run mypy against this file, I of course get errors:

    error: Argument 1 of "bar" has incompatible type "Optional[str]"; expected "str"


    which makes sense.

    I could add an assert foo is not None statement, but this is hot-path code and in my tests it has measurable performance impact. I would like to make a type assertion for mypy only. How do I do that?

    EDIT: I also tried adding a comment #type: str after the assignment statement, but this generated a similar error

    Continue reading...

Compartilhe esta Página