from core.config import config, create_provider_from_config class DataProviders: """Global object for storing data providers.""" def __init__(self): self.spot_providers = [] self.alert_providers = [] self.solar_condition_providers = [] self.static_data_providers = [] self.sig_ref_data_providers = [] self.callsign_data_providers = [] def setup(self): for entry in config["spot-providers"]: self.spot_providers.append(create_provider_from_config("providers.spot", entry)) for entry in config["alert-providers"]: self.alert_providers.append(create_provider_from_config("providers.alert", entry)) for entry in config.get("solar-condition-providers", []): self.solar_condition_providers.append(create_provider_from_config("providers.solarconditions", entry)) for entry in config.get("static-data-providers", []): self.static_data_providers.append(create_provider_from_config("providers.staticdata", entry)) for entry in config.get("sig-ref-data-providers", []): self.sig_ref_data_providers.append(create_provider_from_config("providers.sigrefdata", entry)) for entry in config.get("callsign-data-providers", []): self.callsign_data_providers.append(create_provider_from_config("providers.callsigndata", entry)) def start(self): for p in self.spot_providers: if p.enabled: p.start() for p in self.alert_providers: if p.enabled: p.start() for p in self.solar_condition_providers: if p.enabled: p.start() for p in self.static_data_providers: if p.enabled: p.start() for p in self.sig_ref_data_providers: if p.enabled: p.start() for p in self.callsign_data_providers: if p.enabled: p.start() def stop(self): for sp in self.spot_providers: if sp.enabled: sp.stop() for ap in self.alert_providers: if ap.enabled: ap.stop() for scp in self.solar_condition_providers: if scp.enabled: scp.stop() for srdp in self.sig_ref_data_providers: if srdp.enabled: srdp.stop() for sdp in self.static_data_providers: if sdp.enabled: sdp.stop() for cdp in self.callsign_data_providers: if cdp.enabled: cdp.stop() # Global object DATA_PROVIDERS = DataProviders()