“At the same time, developers still see value in writing type annotations as they serve as documentation.”
Also useful for autocomplete.
For me, most of the value of typing is at the function level: what does this function accept as input and what does it produce as output?
Also mypy gets in the way of using loop constructs, as the iterating variables have to be predeclared with typing before the loop, breaking encapsulation.
I'm curious what you mean by "iterating variables have to be predeclared". In my experience mypy's type inference works with bog standard python constructs like a for loop that appends into a list that gets declared before the loop, aka:
output = []
for x in range(1):
output.append(x)
reveal_type(output)
# note: Revealed type is 'builtins.list[builtins.int*]'
Also useful for autocomplete.
For me, most of the value of typing is at the function level: what does this function accept as input and what does it produce as output?
Also mypy gets in the way of using loop constructs, as the iterating variables have to be predeclared with typing before the loop, breaking encapsulation.