_str_get() is guarded by an isinstance check (in my particular code base), would I type annotate the key parameter in that method under such conditions?
I forgot to mention one thing, what about methods such as __repr__, should it be typed as returning a str, or is that considered unnecessarily verbose?
For your get function, @overload may be something worth looking into (mypy docs)
For __repr__, I think it is not necessary to type, but I won’t say it is overly verbose if you do. Type checkers already understand that your subclass’s __repr__ overloads object’s __repr__, which should return str.