cgq-qgc/HydroSensorReader

Feature Request: Allow SolinstFileReader to read automatically de file when instantiating

jnsebgosselin opened this issue · 10 comments

The wait_read argument of the AbstractFileReader allow to read automatically the data from the a file when instantiating a reader.

:param wait_read: if wait_read is False, will wait to read the file content. This is usefull for hierarchi-class
see file_reader.compagny_file_reader.solinst_file_reader.py for an example

(We shoudl read here if wait_read is True, will wait to read the file content)

However, this argument is not available in the SolinstFileReader and its value is set to True by default :

class SolinstFileReader(TimeSeriesFileReader):
    def __init__(self, file_path: str = None, header_length: int = 10):
        super().__init__(
            file_path, header_length, encoding='cp1252', wait_read=False)

We need to explicitly call read_file after instantiating a SolinstFileReader, or else data are not read, which is confusing.

I suggest that:

  • We add the wait_read as an argument of the SolinstFileReader
  • We set the value to False by default.

@x-malet What do you think?

Good idea. I think that I unable it by default to force the programmer to use the read_file method. It's a good idea to use this parameter for batch processing!

Ok super, je vais faire une PR.

It's the same think for the XLSHannaFileReader class...^^ can you change that to??

It's the same think for the XLSHannaFileReader class...^^ can you change that to??

Sure

Hum....je viens de voir comment faire que ca marche vraiment bien...

  1. Ajouter wait_read aux classes spécialisé (XLSHannaFileReader, SolinstFileReader,..)
  2. Ajouter à la classe parent imédiate (TimeSeriesFileReader) l'élément suivant:
    if not wait_read: self.read_file()
  3. On peut alors enlever les read_file() !!!

Super. C'est ça que j'étais en train de me rendre compte. Je vais proposer de quoi et on itérera à partir de là.

Si on utilise Python 3 on peut utiliser init_subclass

Si on utilise Python 3 on peut utiliser init_subclass

Cool, Je vais essayer ça!

Je pense quand même que la première méthode est plus simple! (la méthode en 3 temps!). Init_subclass implique de transformer des méthodes en classmethod... Ça risque des long... Pour pas grand chose...lol

lol oui c'est ce que je me suis rendu compte... c'était moins simple que ça en avait l'air à première vue.