this post was submitted on 23 Apr 2024
81 points (100.0% liked)

Python

6368 readers
3 users here now

Welcome to the Python community on the programming.dev Lemmy instance!

๐Ÿ“… Events

PastNovember 2023

October 2023

July 2023

August 2023

September 2023

๐Ÿ Python project:
๐Ÿ’“ Python Community:
โœจ Python Ecosystem:
๐ŸŒŒ Fediverse
Communities
Projects
Feeds

founded 1 year ago
MODERATORS
 

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

you are viewing a single comment's thread
view the rest of the comments
[โ€“] aluminium@lemmy.world 8 points 6 months ago* (last edited 6 months ago) (1 children)

I mean thats one of the big points of python and why you wanna use it in the first place.

I personally don't main python but to me this all seems like a effort to retrofit the language for use in large enterprise and web applications, something for which it honestly never should have been used this heavily in the first place. I guess the state of the world 10 years ago let to it, with .NET not officially being multiplat, Java being Java and Rust, Kotlin and Go being in their infancy.

To me Python always was a cool language to write small scripts to automate certain things. Something a single developer writes with < 10K LoC. Where than you can achieve the same thing with way less code and less hastle like setting up a seperate build tool

If your gonna go heavy on typing and error handling but don't want the complexity of a compiled language just use a .NET or JVM lang, honestly. They are fundamentally built around strong typing and use that information for much better performance and developer experience.

Or if you just want THE most flexible typesystem where you can specify types as broad or specific as possible typescript takes the cake.

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.