Twitter user @DanyX23:

TIL: pyright, the python type checking engine that is used by VS Code, has support for exhaustiveness checking for match statements with union types!

If you add the following to your pyproject.toml, you’ll get the attached warning

[tool.pyright] reportMatchNotExhaustive = true

  • sugar_in_your_tea@sh.itjust.works
    link
    fedilink
    arrow-up
    5
    ·
    8 months ago

    I write Python and Typescript with full typing for my day job, and it’s pretty nice. Here’s the general workflow:

    1. Add some code without typing
    2. Iterate on 1 until it works properly
    3. Add tests and types
    4. Submit code for review

    In development I get the benefit of most of the types being specified, but I don’t need to specify everything until I’m done. I much prefer Python to Typescript, but my hands are tied on the FE.

    If I needed better performance though, I’d write in Rust, which is actually what I use for most of my hobby projects.