For example:
# field base class
class F:
pass
# represent integer
class AF(F):
pass
# represent string
class BF(F):
pass
class M:
a = AF()
b = BF()
def __init__(self):
pass # generate dynamic attrs based on specified static attrs
m = M()
# m.a should have inferred type integer
Maybe it is just IDE (PyCharm) feature with all these type hint, and this feature is hard-bind to django's Model
class?