From eee4743d4dc5e7bd5026f166d9756e145d985d22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9E=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80=20?= =?UTF-8?q?=D0=93=D1=83=D1=80=D0=B0=D0=BD=D0=B5=D1=86=D1=8C?= Date: Wed, 25 Feb 2026 20:56:43 +0200 Subject: [PATCH] Remove unused _detect_header_and_buffer method and related fields --- agent/src/file_datasource.py | 67 +++++++----------------------------- 1 file changed, 12 insertions(+), 55 deletions(-) diff --git a/agent/src/file_datasource.py b/agent/src/file_datasource.py index 03143d2..8aa8187 100644 --- a/agent/src/file_datasource.py +++ b/agent/src/file_datasource.py @@ -23,10 +23,6 @@ class FileDatasource: self._started = False - # one-row buffers (supports CSVs with or without header) - self._acc_has_header: Optional[bool] = None - self._gps_has_header: Optional[bool] = None - def startReading(self, *args, **kwargs): """Must be called before read()""" if self._started: @@ -50,8 +46,8 @@ class FileDatasource: if not self._started: raise RuntimeError("Datasource is not started. Call startReading() before read().") - acc_row = self._get_next_row(self._acc_reader) - gps_row = self._get_next_row(self._gps_reader) + acc_row = self._get_next_row(self._acc_reader, source="acc") + gps_row = self._get_next_row(self._gps_reader, source="gps") acc = self._parse_acc(acc_row) gps = self._parse_gps(gps_row) @@ -78,10 +74,6 @@ class FileDatasource: self._acc_reader = csv.reader(self._acc_f, skipinitialspace=True) self._gps_reader = csv.reader(self._gps_f, skipinitialspace=True) - self._acc_has_header = None - self._gps_has_header = None - - # detect header / buffer first data row (we only need the buffered row) self._rewind_acc() self._rewind_gps() @@ -103,22 +95,16 @@ class FileDatasource: raise RuntimeError("Accelerometer file is not open.") self._acc_f.seek(0) self._acc_reader = csv.reader(self._acc_f, skipinitialspace=True) - next(self._acc_reader) # Skip header row - _ = self._detect_header_and_buffer( - self._acc_reader, expected_cols=3, header_tokens=("x", "y", "z") - ) + next(self._acc_reader, None) # skip header row def _rewind_gps(self) -> None: if self._gps_f is None: raise RuntimeError("GPS file is not open.") self._gps_f.seek(0) self._gps_reader = csv.reader(self._gps_f, skipinitialspace=True) - next(self._gps_reader) # Skip header row - _ = self._detect_header_and_buffer( - self._gps_reader, expected_cols=2, header_tokens=("longitude", "latitude") - ) + next(self._gps_reader, None) # skip header row - def _get_next_row(self, reader) -> List[str]: + def _get_next_row(self, reader, source: str) -> List[str]: """Get the next valid row from the reader.""" if reader is None: raise RuntimeError("Reader is not initialized.") @@ -127,7 +113,12 @@ class FileDatasource: row = next(reader, None) if row is None: # EOF -> rewind & continue - self._rewind_acc() if reader == self._acc_reader else self._rewind_gps() + if source == "acc": + self._rewind_acc() + reader = self._acc_reader + else: + self._rewind_gps() + reader = self._gps_reader continue if not row or not any(cell.strip() for cell in row): @@ -135,32 +126,6 @@ class FileDatasource: return row - @staticmethod - def _detect_header_and_buffer( - rdr: csv.reader, expected_cols: int, header_tokens: tuple[str, ...] - ) -> tuple[bool, Optional[List[str]]]: - - first = None - while True: - first = next(rdr, None) - if first is None: - return False, None - if first and any(first): - break - - norm = [c.strip().lower() for c in first] - - # Header if it contains the expected tokens - if all(tok in norm for tok in header_tokens): - return True, None - - # If first row is numeric-like and has enough columns => it's data (buffer it back) - if len(norm) >= expected_cols and all(FileDatasource._is_number(x) for x in norm[:expected_cols]): - return False, first - - # Otherwise treat it as header-ish (skip it) - return True, None - @staticmethod def _parse_acc(row: List[str]) -> Accelerometer: if len(row) < 3: @@ -181,12 +146,4 @@ class FileDatasource: raise ValueError(f"GPS row must have 2 values (longitude,latitude). Got: {row}") lon = float(row[0]) lat = float(row[1]) - return Gps(longitude=lon, latitude=lat) - - @staticmethod - def _is_number(s: str) -> bool: - try: - float(s) - return True - except Exception: - return False \ No newline at end of file + return Gps(longitude=lon, latitude=lat) \ No newline at end of file