diff options
Diffstat (limited to 'src/argaze/DataLog/FileWriter.py')
-rw-r--r-- | src/argaze/DataLog/FileWriter.py | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/src/argaze/DataLog/FileWriter.py b/src/argaze/DataLog/FileWriter.py deleted file mode 100644 index 388ec44..0000000 --- a/src/argaze/DataLog/FileWriter.py +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env python - -"""Module for file logging. -""" - -__author__ = "Théo de la Hogue" -__credits__ = [] -__copyright__ = "Copyright 2023, Ecole Nationale de l'Aviation Civile (ENAC)" -__license__ = "BSD" - -from typing import TypeVar, Tuple -from dataclasses import dataclass, field -import os, pathlib - -from argaze import DataFeatures - -@dataclass -class TimeStampedDataLogger(DataFeatures.TimeStampedDataLogger): - """Implementation of file logger.""" - - path: str = field(default=None) - """File path where to write data.""" - - header: str = field(default=None) - """String to write first.""" - - separator: str = field(default=", ") - """String used to separate list or tuple formatted log.""" - - def __post_init__(self): - """Check that folder structure exist and create file.""" - - self.path = pathlib.Path(self.path) - - if not os.path.exists(self.path.parent.absolute()): - os.makedirs(self.path.parent.absolute()) - - # Open file - self._file = open(self.path, 'w', encoding='utf-8', buffering=1) - - # Write header if required - if self.header is not None: - - print(self.header, file=self._file, flush=True) - - def __del__(self): - """Close file.""" - - self._file.close() - - def handle(self, log: any): - """Write log as a new line into file. List or tuple are converted into strings separated by separator char.""" - - # Format list or tuple element into quoted strings - if not isinstance(log, str): - - log = self.separator.join(f'\"{d}\"' for d in log) - - # Write into file - print(log, file=self._file, flush=True)
\ No newline at end of file |