""" SensorsFactory retrieve sensors information SPDX - License - Identifier: LGPL - 3.0 - or -later Copyright © 2021 Project Author Guille Gutierrez guillermo.gutierrezmorote@concordia.ca Contributors Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca """ from pathlib import Path from imports.sensors.concordia_energy_consumption import ConcordiaEnergyConsumption from imports.sensors.concordia_gas_flow import ConcordiaGasFlow from imports.sensors.concordia_temperature import ConcordiaTemperature class SensorsFactory: """ UsageFactory class """ def __init__(self, handler, city, end_point, base_path=None): if base_path is None: base_path = Path(Path(__file__).parent.parent / 'data/sensors') self._handler = '_' + handler.lower().replace(' ', '_') self._city = city self._end_point = end_point self._base_path = base_path def _cec(self): """ Enrich the city by using concordia energy consumption sensors as data source """ ConcordiaEnergyConsumption(self._city, self._end_point, self._base_path) def _cgf(self): """ Enrich the city by using concordia gas flow sensors as data source """ ConcordiaGasFlow(self._city, self._end_point, self._base_path) def _ct(self): """ Enrich the city by using concordia temperature sensors as data source """ ConcordiaTemperature(self._city, self._end_point, self._base_path) def enrich(self): """ Enrich the city given to the class using the given sensor handler :return: None """ getattr(self, self._handler, lambda: None)()