Source code for autowisp.database.data_model.provenance.observer

"""Define the observer dataset table for the pipeline"""

from sqlalchemy import Column, String

from sqlalchemy.orm import relationship

from autowisp.database.data_model.base import DataModelBase

# pylint false positive: this is actually a class name
# pylint: disable=invalid-name
# pylint: enable=invalid-name
__all__ = ["Observer"]


# The standard use of SQLAlchemy ORM requires classes with no public methods.
# pylint: disable=too-few-public-methods
[docs] class Observer(DataModelBase): """The table describing the observers""" __tablename__ = "observer" name = Column( String(100), nullable=False, unique=True, index=True, doc="The name of the observer", ) email = Column(String(100), nullable=True, doc="The email of the observer") phone = Column( String(100), nullable=True, doc="The phone number of the observer" ) notes = Column( String(1000), nullable=True, doc="Any user supplied notes describing the observer.", ) cameras = relationship( "Camera", secondary="camera_access", back_populates="observers" ) mounts = relationship( "Mount", secondary="mount_access", back_populates="observers" ) telescopes = relationship( "Telescope", secondary="telescope_access", back_populates="observers" ) observing_sessions = relationship( "ObservingSession", back_populates="observer" )
[docs] def __str__(self): """Human readable string identifying the observer.""" return self.name