"""class_hack module""" from functools import wraps class Body: def __body__(cls): """Generate the class body.""" return locals() class BodyMeta(type): def __new__(meta, name, bases, namespace): body = namespace.pop("__body__", None) cls = type.__new__(meta, name, bases, namespace) if body: arg = body.__code__.co_varnames[:body.__code__.co_argcount][0] @wraps(body) def __body__(cls): return dict((k, v) for k, v in body(cls).items() if k != arg) for key, value in __body__(cls).items(): setattr(cls, key, value) setattr(cls, "__body__", staticmethod(__body__)) return cls