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

"""Define the observatory dataset table for the pipeline"""

from sqlalchemy import Column, String, Float

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__ = ["Observatory"]


# The standard use of SQLAlchemy ORM requires classes with no public methods.
# pylint: disable=too-few-public-methods
[docs] class Observatory(DataModelBase): """The table describing the observatory""" __tablename__ = "observatory" latitude = Column( Float, nullable=False, doc="The latitude of the observatory" ) longitude = Column( Float, nullable=False, doc="The longitude of the observatory" ) altitude = Column( Float, nullable=False, doc="The altitude of the observatory" ) name = Column( String(100), nullable=False, doc="The name of the observatory" ) observing_sessions = relationship( "ObservingSession", back_populates="observatory" )
[docs] def __str__(self): """Human readable identifier for the observatory.""" return f"{self.name} (lat={self.latitude}, lon={self.longitude})"