[Python] (Python, Numpy: type hinting), How to correctly convert "integer" value to...

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

  1. Stack

    Stack Membro Participativo

    I'm having trouble with Numpy (version 1.25) Type hinting. Suppose following code (/tmp/asdf.py):

    import numpy as np

    tx: int = 32
    out_tx = np.clip(
    tx,
    0,
    100,
    )


    pyright is giving me following errors:

    $ pyright /tmp/asdf.py
    /tmp/asdf.py
    /tmp/asdf.py:5:9 - error: Argument of type "Literal[32]" cannot be assigned to parameter "a" of type "ndarray[_DType@clip]" in function "clip"
    "Literal[32]" is incompatible with "ndarray[_DType@clip]" (reportGeneralTypeIssues)
    /tmp/asdf.py:6:9 - error: Argument of type "Literal[0]" cannot be assigned to parameter "a_min" of type "_DType@clip" in function "clip"
    Type "Literal[0]" is incompatible with constrained type variable "_DType" (reportGeneralTypeIssues)
    /tmp/asdf.py:7:9 - error: Argument of type "Literal[100]" cannot be assigned to parameter "a_max" of type "_DType@clip" in function "clip"
    Type "Literal[100]" is incompatible with constrained type variable "_DType" (reportGeneralTypeIssues)
    3 errors, 0 warnings, 0 informations

    • How to correctly convert in Literal "integer" into Numpy's "_DType@clip", such that pyright won't output this messages?

    Update:

    • I forgot to mention that I'm on numpy v1.25.
    • On numpy v.1.24, pyright doesn't output any warning
    • I know that above code works.
    • I was just looking for the safest way to write, because I really like static-analyzers/linters/LSPs.

    Continue reading...

Compartilhe esta Página