Source code for clld.db.models.unit
from __future__ import unicode_literals, print_function, division, absolute_import
from sqlalchemy import Column, Integer, ForeignKey, UniqueConstraint
from sqlalchemy.orm import relationship
from zope.interface import implementer
from clld.db.meta import Base, PolymorphicBaseMixin
from clld.db.versioned import Versioned
from clld import interfaces
from . import (
IdNameDescriptionMixin,
DataMixin, HasDataMixin, FilesMixin, HasFilesMixin,
Language, _add_solr_language_info)
__all__ = ('Unit',)
class Unit_data(Base, Versioned, DataMixin):
pass
class Unit_files(Base, Versioned, FilesMixin):
pass
[docs]@implementer(interfaces.IUnit)
class Unit(Base,
PolymorphicBaseMixin,
Versioned,
IdNameDescriptionMixin,
HasDataMixin,
HasFilesMixin):
"""A linguistic unit of a language."""
__table_args__ = (UniqueConstraint('language_pk', 'id'),)
language_pk = Column(Integer, ForeignKey('language.pk'), nullable=False)
language = relationship(Language, innerjoin=True)
def __solr__(self, req):
return _add_solr_language_info(Base.__solr__(self, req), self)