mypy: base class has no attribute x, how to type hint in base class
If you are using python 3.6 or later then
class Connector():
short_name: str
...
should work. This doesn't actually exist in the namespace, but MYPY will find it. See https://www.python.org/dev/peps/pep-0526/.
Another option is to do
import abc
class Connector(abc.ABC):
@property
@abc.abstractmethod
def short_name(self) -> str:
...
You'd add that attribute to the base type; you don't need to give it a value:
class Connector:
short_name: str
This uses Python 3.6's Variable Annotation syntax, which is new in Python 3.6 or newer. It defines the type of an instance attribute, not a class attribute (for which there is a separate syntax).
You can use a comment otherwise, at which point you do have to give the attribute an initial value, and is a class attribute:
class Connector:
short_name = '' # type: str