Source code for clld.db.models.contributor
from sqlalchemy import Column, String, Unicode, UniqueConstraint
from zope.interface import implementer
from nameparser import HumanName
from clld.db.meta import Base, PolymorphicBaseMixin
from clld import interfaces
from .import (
IdNameDescriptionMixin,
DataMixin, FilesMixin, HasDataMixin, HasFilesMixin)
__all__ = ('Contributor',)
class Contributor_data(Base, DataMixin):
pass
class Contributor_files(Base, FilesMixin):
pass
[docs]@implementer(interfaces.IContributor)
class Contributor(Base,
PolymorphicBaseMixin,
IdNameDescriptionMixin,
HasDataMixin,
HasFilesMixin):
"""Creator of a contribution."""
__table_args__ = (UniqueConstraint('name'),)
url = Column(Unicode())
email = Column(String)
address = Column(Unicode)
def last_first(self):
if not self.name:
return ''
return '{0.last}, {0.first} {0.middle}'.format(HumanName(self.name)).strip()