Source code for plio.io.io_db

from sqlalchemy import Column, Integer, String, create_engine, orm
from sqlalchemy.ext import declarative

from plio.sqlalchemy_json.alchemy import NestedJsonObject

Base = declarative.declarative_base()


[docs]def setup_db_session(db): """ Add a database session object to the root namespace Parameters ---------- db : str Database name Returns ------- : object A SQLAlchemy session object """ engine = create_engine('sqlite:///{}'.format(db)) Base.metadata.bind = engine Base.metadata.create_all() return orm.sessionmaker(bind=engine)()
[docs]class Translations(Base): # pragma: no cover """ Table mapping for the ISIS Translation file table """ __tablename__ = 'isis_translations' id = Column(Integer, primary_key=True) mission = Column(String) instrument = Column(String) translation = Column(NestedJsonObject) def __init__(self, mission, instrument, translation): self.mission = mission self.instrument = instrument self.translation = translation def __repr__(self): return 'Mission: {}\nInstrument: {}\nTranslation: {}'.format(self.mission, self.instrument, self.translation)
[docs]class StringToMission(Base): # pragma: no cover """ Table mapping for the ISIS mission name cleaner table """ __tablename__ = 'isis_mission_to_standard' id = Column(Integer, primary_key=True) key = Column(String) value = Column(String) def __init__(self, key, value): self.key = key self.value = value