def __init__(self, target_date): self.start_time = datetime.combine(target_date, time(hour=3)) self.end_time = self.start_time + timedelta(days=1) self.db_session = get_db_session() self.log = get_log('AlertEvaluator') self.schedule_adherence_api = cfg.get('Evaluator', 'schedule_adherence_api') self.api_key = cfg.get('Evaluator', 'api_key')
def __init__(self): # Load the length of time (seconds) to wait between scans self.scan_frequency_sec = cfg.getint("Archiver", "scan_frequency_sec") # How often (every n scans) should we clear the known-alerts set self.cull_frequency = cfg.getint("Archiver", "cull_frequency") # How many cycles until the next cull? self.next_cull = self.cull_frequency # Record each version of published alerts we've seen, # as a set of (alert_id, last_modified_dt) self.known_id_lastmodified_pairs = set() self.alerts_params = { 'api_key': cfg.get("API", "v2_api_key"), 'include_access_alerts': cfg.get("Archiver", "include_access_alerts"), 'include_service_alerts': cfg.get("Archiver", "include_service_alerts"), 'format': 'json' } self.alerts_url = cfg.get("API", "alerts_url")
def init_db(): from mbtaalerts.database.models import Base if ENGINE is None: setup_engine(cfg.get('Database', 'database_url')) Base.metadata.create_all(bind=ENGINE)
def get_db_session(): if ENGINE is None: setup_engine(cfg.get('Database', 'database_url')) session = sessionmaker(autocommit=False, autoflush=False, bind=ENGINE) return scoped_session(session)
import logging from mbtaalerts.config import config as cfg logging.basicConfig(format=cfg.get('Logging', 'format'), datefmt=cfg.get('Logging', 'datefmt'), level=cfg.get('Logging', 'level')) def get_log(name): return logging.getLogger(name)
import os from sqlalchemy import create_engine, Column, Integer, MetaData from sqlalchemy.orm import scoped_session, sessionmaker from sqlalchemy.ext.declarative import as_declarative, declared_attr from mbtaalerts.config import config as cfg ENGINE = create_engine(cfg.get('Database', 'database_url')) DB_SESSION = scoped_session( sessionmaker(autocommit=False, autoflush=False, bind=ENGINE)) @as_declarative() class Base(object): query = DB_SESSION.query_property() id = Column(Integer, primary_key=True, autoincrement=True) @declared_attr def __tablename__(cls): return cls.__name__.lower() def init_db(): import mbtaalerts.database.models Base.metadata.create_all(bind=ENGINE)