""" This module contains pure wrapper functions used as decorators. Functions in this module should be simple and not involve complex logic. """ from django.db.models import Model from eav import register def register_eav(**kwargs): """ Registers the given model(s) classes and wrapped ``Model`` class with Django EAV 2:: @register_eav class Author(models.Model): pass """ def _model_eav_wrapper(model_class): if not issubclass(model_class, Model): raise TypeError("Wrapped class must subclass Model.") register(model_class, **kwargs) return model_class return _model_eav_wrapper