def get_spec(self, project_name: str, model_name: str) -> typing.Optional[SensorDataSpec]: model = self.get_model_by_key(project_name=project_name, model_name=model_name) if not model: return None spec = SensorDataSpec(tag_list=model.tag_list) return spec
def get_spec(self, project_name: str, model_name: str) -> typing.Optional[SensorDataSpec]: model = self.get_machine_by_key(project_name=project_name, model_name=model_name) if not model: return None spec = SensorDataSpec( tag_list=_gordo_to_latigo_tag_list(model.tag_list)) return spec
def load_series( self, train_start_date: datetime, train_end_date: datetime, tag_list: typing.List[SensorTag], dry_run: typing.Optional[bool] = False, ) -> typing.Iterable[pd.Series]: if dry_run: raise NotImplementedError( "Dry run for LatigoDataProvider is not implemented") if not tag_list: logger.warning( "LatigoDataProvider called with empty tag_list, returning none" ) return if train_end_date < train_start_date: raise ValueError( f"LatigoDataProvider called with to_ts: {train_end_date} before from_ts: {train_start_date}" ) if not self.sensor_data_provider: logger.warning("Skipping, no sensor_data_provider") return spec: SensorDataSpec = SensorDataSpec( tag_list=_gordo_to_latigo_tag_list(tag_list)) time_range = TimeRange(from_time=train_start_date, to_time=train_end_date) sensor_data, err = self.sensor_data_provider.get_data_for_range( spec, time_range) if err: logger.error(f"Could not load sensor data: {err}") return if not sensor_data: logger.error(f"No sensor data") return if not sensor_data.ok(): logger.error(f"Sensor data not OK") return if not sensor_data.data: logger.error(f"No data.data") return if not sensor_data.data: logger.error(f"No gordo data") return for d in sensor_data.data: yield d return
def load_series( self, from_ts: datetime, to_ts: datetime, tag_list: typing.List[SensorTag], dry_run: typing.Optional[bool] = False ) -> typing.Iterable[pd.Series]: if self.sensor_data_provider: if isinstance(self.sensor_data_provider, str): raise Exception(f"IS STR: '{self.sensor_data_provider}'") spec: SensorDataSpec = SensorDataSpec( tag_list=_gordo_to_latigo_tag_list(tag_list)) time_range = TimeRange(from_ts, to_ts) sensor_data, err = self.sensor_data_provider.get_data_for_range( spec, time_range) if sensor_data and sensor_data.ok(): logger.info(f"Providing data: ") logger.info(pprint.pformat(sensor_data.data)) for item in sensor_data.data: yield item else: logger.warning(f"Could not load series: {err}")
not_found) }, } # fmt: on name: str = "latigo_integration_test" from_time = datetime_from_rfc3339("2019-01-02T00:00:00Z") to_time = datetime_from_rfc3339("2019-11-02T00:00:00Z") time_range = TimeRange(from_time=from_time, to_time=to_time) tag_list = [ LatigoSensorTag(name="tag_name_1", asset="tag_asset_1"), LatigoSensorTag(name="tag_name_2", asset="tag_asset_2") ] spec: SensorDataSpec = SensorDataSpec(tag_list=tag_list) # actual_tag_list = [LatigoSensorTag(name="GRA-STAT-20-1310_G01.ST", asset="1755-gra")] # actual_tag_list = [LatigoSensorTag(name="GRA-FOI -13-0979.PV", asset="GRA")] actual_tag_list = [ LatigoSensorTag(name="PT-13005/MeasA/PRIM", asset="1101-sfb") ] # ioc-preprod.ginkgrog-b17 #'PT-13005/MeasA/PRIM', asset='1101-sfb'), SensorTag(name='TT-13092/Meas1/PRIM', asset='1101-sfb'), Sen..., SensorTag(name='DQ-TT-T-B30L/Meas1/PRIM', asset='1101-sfb'), SensorTag(name='PT-13009/MeasA/PRIM', asset='1101-sfb') actual_spec: SensorDataSpec = SensorDataSpec(tag_list=actual_tag_list) # , ("GRA-HIC -13-0035.PV", "1755-gra")] data: typing.Iterable[typing.Tuple[str, pd.DataFrame, typing.List[str]]] = []
def get_spec(self) -> typing.Optional[SensorDataSpec]: return SensorDataSpec(tag_list=self.tag_list)