@classmethod
def post_init(cls, func):
    """A decorator for defining a routine to run after creation of a type object.

        An example use of this method would be to define a classmethod that gathers
        any defined methods or attributes after the base Python type construction (i.e. after
        :py:func:`type` has been called)
        """
    setattr(func, cls.__postinit, True)
    return classmethod(func)
