from __future__ import annotations from inspect import Parameter, Signature from typing import List, Union class Foo: pass class Bar: def __init__(self, x, y): pass class Baz: def __new__(cls, x, y): pass class Qux: __signature__ = Signature(parameters=[Parameter('foo', Parameter.POSITIONAL_OR_KEYWORD), Parameter('bar', Parameter.POSITIONAL_OR_KEYWORD)]) def __init__(self, x, y): pass class Quux(List[Union[int, float]]): """A subclass of List[Union[int, float]]""" pass class Corge(Quux): pass Alias = Foo #: docstring OtherAlias = Bar #: docstring IntAlias = int