Source code for umongo.mixin

"""umongo MixinDocument"""
from .template import Implementation, Template

__all__ = (
    'MixinDocumentTemplate',
    'MixinDocument',
    'MixinDocumentImplementation'
)


[docs]class MixinDocumentTemplate(Template): """ Base class to define a umongo mixin document. .. note:: Once defined, this class must be registered inside a :class:`umongo.instance.BaseInstance` to obtain it corresponding :class:`umongo.mixin.MixinDocumentImplementation`. """
MixinDocument = MixinDocumentTemplate "Shortcut to MixinDocumentTemplate"
[docs]class MixinDocumentOpts: """ Configuration for an :class:`umongo.mixin.MixinDocument`. ==================== ====================== =========== attribute configurable in Meta description ==================== ====================== =========== template no Origin template of the embedded document instance no Implementation's instance ==================== ====================== =========== """ def __repr__(self): return ('<{ClassName}(' 'instance={self.instance}, ' 'template={self.template}, ' .format(ClassName=self.__class__.__name__, self=self)) def __init__(self, instance, template): self.instance = instance self.template = template
[docs]class MixinDocumentImplementation(Implementation): """ Represent a mixin document once it has been implemented inside a :class:`umongo.instance.BaseInstance`. """ opts = MixinDocumentOpts(None, MixinDocumentTemplate) def __repr__(self): return '<object MixinDocument %s.%s>' % (self.__module__, self.__class__.__name__)