Source code for galaxy.webapps.reports.app

import logging
import sys
import time

import galaxy.model
from galaxy.config import configure_logging
from galaxy.model.base import SharedModelMapping
from galaxy.security import idencoding
from galaxy.structured_app import BasicSharedApp
from galaxy.web_stack import application_stack_instance
from . import config

log = logging.getLogger(__name__)


[docs]class UniverseApplication(BasicSharedApp): """Encapsulates the state of a Universe application"""
[docs] def __init__(self, **kwargs): super().__init__() self[BasicSharedApp] = self log.debug("python path is: %s", ", ".join(sys.path)) self.name = "reports" # Read config file and check for errors self.config = config.Configuration(**kwargs) self.config.check() configure_logging(self.config) self.application_stack = application_stack_instance() # Determine the database url if self.config.database_connection: db_url = self.config.database_connection else: db_url = f"sqlite:///{self.config.database}?isolation_level=IMMEDIATE" # Setup the database engine and ORM self.model = galaxy.model.mapping.init(self.config.file_path, db_url, self.config.database_engine_options) if not self.config.database_connection: self.targets_mysql = False else: self.targets_mysql = "mysql" in self.config.database_connection # Security helper self.security = idencoding.IdEncodingHelper(id_secret=self.config.id_secret) self._register_singleton(idencoding.IdEncodingHelper, self.security) self._register_singleton(SharedModelMapping, self.model) # used for cachebusting -- refactor this into a *SINGLE* UniverseApplication base. self.server_starttime = int(time.time())
[docs] def shutdown(self): pass