Comment by veber-alex

5 hours ago

It's not "mildly annoying".

I don't enable strict mode on multiple projects because people don't want to type anything outside of function signatures.

Inferring the type from the first use is 100% the correct choice because this is what users want 99% of the time, for the rest you can provide type information.

Annotating empty collections is one of the few places you need to annotate outside function signatures. It's not a big deal. It doesn't happen that often.

  • And, when it does, you can just put them when the empty container is assigned:

        things: set[tuple[str, str, int]] = set()
        users: list[User] = []
    

    Many people don't seem to know this exists.