src.dackar.RCA.signal_evidence.historian_adapter ================================================ .. py:module:: src.dackar.RCA.signal_evidence.historian_adapter Classes ------- .. autoapisummary:: src.dackar.RCA.signal_evidence.historian_adapter.HistorianAdapter src.dackar.RCA.signal_evidence.historian_adapter.NullHistorianAdapter src.dackar.RCA.signal_evidence.historian_adapter.InfileHistorianAdapter src.dackar.RCA.signal_evidence.historian_adapter.OSIsoftPIHistorianAdapter Functions --------- .. autoapisummary:: src.dackar.RCA.signal_evidence.historian_adapter._to_float Module Contents --------------- .. py:class:: HistorianAdapter Bases: :py:obj:`Protocol` Fetches pre-flagged anomaly records for a set of sensors in a window. .. py:method:: get_anomalies(sensor_ids, window_start, window_end) Return ``(anomaly_records, gaps)`` for *sensor_ids* within the window. :param sensor_ids: Sensor/tag identifiers to fetch anomalies for. :param window_start: Inclusive UTC-aware start of the query window. :param window_end: Inclusive UTC-aware end of the query window. :returns: A tuple of the matched :class:`~.models.AnomalyRecord` list and a list of gap dicts (one per sensor with no data / a fetch failure). .. py:class:: NullHistorianAdapter Graceful-degradation adapter used when historian is unavailable. .. py:method:: get_anomalies(sensor_ids, window_start, window_end) .. py:class:: InfileHistorianAdapter(source_path) Reads pre-flagged anomalies from a JSON/CSV export. .. py:attribute:: source_path .. py:method:: get_anomalies(sensor_ids, window_start, window_end) .. py:method:: _load_rows() .. py:class:: OSIsoftPIHistorianAdapter NOT IMPLEMENTED — placeholder shim for a future OSIsoft PI integration. This adapter is contract-compatible but **not** wired to the PI Web API. Every call reports each sensor as ``historian_unavailable`` and returns no anomalies, so it must not be mistaken for a functional PI integration. Use :class:`InfileHistorianAdapter` for real data until PI is implemented. .. py:method:: get_anomalies(sensor_ids, window_start, window_end) .. py:function:: _to_float(value)