Abstract type is a linking property (str), not an actual Type in Python. This leads to lookups using the abstract type, but that is not very Pythonic, therefore let's remove it on the surface level at least. This leads to cleaner readable code with magic.
Abstract type is a linking property (str), not an actual Type in Python. This leads to lookups using the abstract type, but that is not very Pythonic, therefore let's remove it on the surface level at least. This leads to cleaner readable code with magic.
Type.constants -> Iterable[Constant]
instead of
Database().constants_by_abstract_type[Type.abstract_type] -> Iterable[Constant]