diff --git a/idecomp/decomp/dadger.py b/idecomp/decomp/dadger.py index bab6613..a1e08c6 100644 --- a/idecomp/decomp/dadger.py +++ b/idecomp/decomp/dadger.py @@ -502,6 +502,38 @@ def ia( df=df, ) + def ri( + self, + codigo_usina: Optional[int] = None, + estagio: Optional[int] = None, + codigo_submercado: Optional[int] = None, + df: bool = False, + ) -> Optional[Union[RI, List[RI], pandas.DataFrame]]: + """ + Obtém um registro que define as restrições de Itaipu + no estudo descrito pelo :class:`Dadger`. + + :param codigo_usina: código da UHE Itaipu + :type codigo_usina: int + :param estagio: estagio de validade das informações + :type estagio: int + :param codigo_submercado: código do submercado da UHE Itaipu + :type codigo_submercado: int + :param df: ignorar os filtros e retornar + todos os dados de registros como um DataFrame + :type df: bool + + :return: Um ou mais registros, se existirem. + :rtype: :class:`RI` | list[:class:`RI`] | :class:`pandas.DataFrame` | None + """ + return self.__registros_ou_df( + RI, + codigo_usina=codigo_usina, + estagio=estagio, + codigo_submercado=codigo_submercado, + df=df, + ) + def ac( self, codigo_usina: int, diff --git a/idecomp/decomp/modelos/dadger.py b/idecomp/decomp/modelos/dadger.py index 709eb9a..6224abf 100644 --- a/idecomp/decomp/modelos/dadger.py +++ b/idecomp/decomp/modelos/dadger.py @@ -84,18 +84,20 @@ class UH(Register): IDENTIFIER = "UH " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(2, 9), - FloatField(10, 14, 2), - FloatField(10, 25, 2), - IntegerField(1, 39), - IntegerField(2, 44), - FloatField(10, 49, 2), - FloatField(10, 59, 2), - IntegerField(1, 69), - LiteralField(2, 71), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(2, 9), + FloatField(10, 14, 2), + FloatField(10, 25, 2), + IntegerField(1, 39), + IntegerField(2, 44), + FloatField(10, 49, 2), + FloatField(10, 59, 2), + IntegerField(1, 69), + LiteralField(2, 71), + ] + ) @property def codigo_usina(self) -> Optional[int]: @@ -250,27 +252,29 @@ class CT(Register): IDENTIFIER = "CT " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(2, 9), - LiteralField(10, 14), - IntegerField(2, 24), - FloatField(5, 29, 2), - FloatField(5, 34, 2), - FloatField(10, 39, 2), - FloatField(5, 49, 2), - FloatField(5, 54, 2), - FloatField(10, 59, 2), - FloatField(5, 69, 2), - FloatField(5, 74, 2), - FloatField(10, 79, 2), - FloatField(5, 89, 2), - FloatField(5, 94, 2), - FloatField(10, 99, 2), - FloatField(5, 109, 2), - FloatField(5, 114, 2), - FloatField(10, 119, 2), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(2, 9), + LiteralField(10, 14), + IntegerField(2, 24), + FloatField(5, 29, 2), + FloatField(5, 34, 2), + FloatField(10, 39, 2), + FloatField(5, 49, 2), + FloatField(5, 54, 2), + FloatField(10, 59, 2), + FloatField(5, 69, 2), + FloatField(5, 74, 2), + FloatField(10, 79, 2), + FloatField(5, 89, 2), + FloatField(5, 94, 2), + FloatField(10, 99, 2), + FloatField(5, 109, 2), + FloatField(5, 114, 2), + FloatField(10, 119, 2), + ] + ) def __atualiza_dados_lista( self, @@ -396,16 +400,18 @@ class UE(Register): IDENTIFIER = "UE " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(2, 9), - LiteralField(12, 14), - IntegerField(3, 29), - IntegerField(3, 34), - FloatField(10, 39, 1), - FloatField(10, 49, 1), - FloatField(10, 59, 2), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(2, 9), + LiteralField(12, 14), + IntegerField(3, 29), + IntegerField(3, 34), + FloatField(10, 39, 1), + FloatField(10, 49, 1), + FloatField(10, 59, 2), + ] + ) @property def codigo_usina(self) -> Optional[int]: @@ -530,21 +536,23 @@ class DP(Register): IDENTIFIER = "DP " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(2, 4), - IntegerField(2, 9), - IntegerField(1, 14), - FloatField(10, 19, 1), - FloatField(10, 29, 1), - FloatField(10, 39, 1), - FloatField(10, 49, 1), - FloatField(10, 59, 1), - FloatField(10, 69, 1), - FloatField(10, 79, 1), - FloatField(10, 89, 1), - FloatField(10, 99, 1), - FloatField(10, 109, 1), - ]) + LINE = Line( + [ + IntegerField(2, 4), + IntegerField(2, 9), + IntegerField(1, 14), + FloatField(10, 19, 1), + FloatField(10, 29, 1), + FloatField(10, 39, 1), + FloatField(10, 49, 1), + FloatField(10, 59, 1), + FloatField(10, 69, 1), + FloatField(10, 79, 1), + FloatField(10, 89, 1), + FloatField(10, 99, 1), + FloatField(10, 109, 1), + ] + ) def __atualiza_dados_lista( self, @@ -642,16 +650,18 @@ class PQ(Register): IDENTIFIER = "PQ " IDENTIFIER_DIGITS = 4 - LINE = Line([ - LiteralField(10, 4), - IntegerField(2, 14), - IntegerField(2, 19), - FloatField(5, 24, 0), - FloatField(5, 29, 0), - FloatField(5, 34, 0), - FloatField(5, 39, 0), - FloatField(5, 44, 0), - ]) + LINE = Line( + [ + LiteralField(10, 4), + IntegerField(2, 14), + IntegerField(2, 19), + FloatField(5, 24, 0), + FloatField(5, 29, 0), + FloatField(5, 34, 0), + FloatField(5, 39, 0), + FloatField(5, 44, 0), + ] + ) def __atualiza_dados_lista( self, @@ -735,22 +745,24 @@ class CD(Register): IDENTIFIER = "CD " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(2, 4), - IntegerField(2, 9), - LiteralField(10, 14), - IntegerField(2, 24), - FloatField(5, 29, 1), - FloatField(10, 34, 2), - FloatField(5, 44, 1), - FloatField(10, 49, 2), - FloatField(5, 59, 1), - FloatField(10, 64, 2), - FloatField(5, 74, 1), - FloatField(10, 79, 2), - FloatField(5, 89, 1), - FloatField(10, 94, 2), - ]) + LINE = Line( + [ + IntegerField(2, 4), + IntegerField(2, 9), + LiteralField(10, 14), + IntegerField(2, 24), + FloatField(5, 29, 1), + FloatField(10, 34, 2), + FloatField(5, 44, 1), + FloatField(10, 49, 2), + FloatField(5, 59, 1), + FloatField(10, 64, 2), + FloatField(5, 74, 1), + FloatField(10, 79, 2), + FloatField(5, 89, 1), + FloatField(10, 94, 2), + ] + ) def __atualiza_dados_lista( self, @@ -862,36 +874,165 @@ class RI(Register): IDENTIFIER = "RI " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(3, 8), - IntegerField(3, 12), - FloatField(7, 16, 1), - FloatField(7, 23, 1), - FloatField(7, 30, 1), - FloatField(7, 37, 1), - FloatField(7, 44, 1), - FloatField(7, 51, 1), - FloatField(7, 58, 1), - FloatField(7, 65, 1), - FloatField(7, 72, 1), - FloatField(7, 79, 1), - FloatField(7, 86, 1), - FloatField(7, 93, 1), - FloatField(7, 100, 1), - FloatField(7, 107, 1), - FloatField(7, 114, 1), - FloatField(7, 121, 1), - FloatField(7, 128, 1), - FloatField(7, 135, 1), - FloatField(7, 142, 1), - FloatField(7, 149, 1), - FloatField(7, 156, 1), - FloatField(7, 163, 1), - FloatField(7, 170, 1), - FloatField(7, 177, 1), - FloatField(7, 184, 1), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(3, 8), + IntegerField(3, 12), + FloatField(7, 16, 1), + FloatField(7, 23, 1), + FloatField(7, 30, 1), + FloatField(7, 37, 1), + FloatField(7, 44, 1), + FloatField(7, 51, 1), + FloatField(7, 58, 1), + FloatField(7, 65, 1), + FloatField(7, 72, 1), + FloatField(7, 79, 1), + FloatField(7, 86, 1), + FloatField(7, 93, 1), + FloatField(7, 100, 1), + FloatField(7, 107, 1), + FloatField(7, 114, 1), + FloatField(7, 121, 1), + FloatField(7, 128, 1), + FloatField(7, 135, 1), + FloatField(7, 142, 1), + FloatField(7, 149, 1), + FloatField(7, 156, 1), + FloatField(7, 163, 1), + FloatField(7, 170, 1), + FloatField(7, 177, 1), + FloatField(7, 184, 1), + ] + ) + + def __atualiza_dados_lista( + self, + novos_dados: list, + indice_inicial: int, + espacamento: int, + ): + atuais = len(self.data) + ultimo_indice = indice_inicial + espacamento * len(novos_dados) + diferenca = (ultimo_indice - atuais) // espacamento + if diferenca > 0: + self.data += [None] * (ultimo_indice - atuais) + diferenca -= 1 + novos_dados += [None] * abs(diferenca) + self.data[indice_inicial::espacamento] = novos_dados + + @property + def codigo_usina(self) -> Optional[int]: + """ + O código da usina de Itaipu. + + :return: O código. + :rtype: int | None + """ + return self.data[0] + + @codigo_usina.setter + def codigo_usina(self, codigo: int): + self.data[0] = codigo + + @property + def estagio(self) -> Optional[int]: + """ + O índice do estágio. + + :return: O estágio. + :rtype: int | None + """ + return self.data[1] + + @estagio.setter + def estagio(self, estagio: int): + self.data[1] = estagio + + @property + def codigo_submercado(self) -> Optional[int]: + """ + O submercado que representa o Sudeste. + + :return: O submercado. + :rtype: int | None + """ + return self.data[2] + + @codigo_submercado.setter + def codigo_submercado(self, submercado: int): + self.data[2] = submercado + + @property + def geracao_minima_60_hz(self) -> Optional[List[float]]: + """ + A geração mínima de Itaipu 60 Hz. + + :return: As gerações mínimas (60 Hz). + :rtype: list[float] | None + """ + return self.data[3::5] + + @geracao_minima_60_hz.setter + def geracao_minima_60_hz(self, lim: List[float]): + self.__atualiza_dados_lista(lim, 3, 5) + + @property + def geracao_maxima_60_hz(self) -> Optional[List[float]]: + """ + A geração máxima de Itaipu 60 Hz. + + :return: As gerações máximas (60 Hz). + :rtype: list[float] | None + """ + return self.data[4::5] + + @geracao_maxima_60_hz.setter + def geracao_maxima_60_hz(self, lim: List[float]): + self.__atualiza_dados_lista(lim, 4, 5) + + @property + def geracao_minima_50_hz(self) -> Optional[List[float]]: + """ + A geração mínima de Itaipu 50 Hz. + + :return: As gerações mínimas (50 Hz). + :rtype: list[float] | None + """ + return self.data[5::5] + + @geracao_minima_50_hz.setter + def geracao_minima_50_hz(self, lim: List[float]): + self.__atualiza_dados_lista(lim, 5, 5) + + @property + def geracao_maxima_50_hz(self) -> Optional[List[float]]: + """ + A geração máxima de Itaipu 50 Hz. + + :return: As gerações mínimas (50 Hz). + :rtype: list[float] | None + """ + return self.data[6::5] + + @geracao_maxima_50_hz.setter + def geracao_maxima_50_hz(self, lim: List[float]): + self.__atualiza_dados_lista(lim, 6, 5) + + @property + def carga_ande(self) -> Optional[List[float]]: + """ + A carga da ANDE. + + :return: As cargas da ANDE. + :rtype: list[float] | None + """ + return self.data[7::5] + + @carga_ande.setter + def carga_ande(self, lim: List[float]): + self.__atualiza_dados_lista(lim, 7, 5) class IA(Register): @@ -904,22 +1045,24 @@ class IA(Register): IDENTIFIER = "IA " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(2, 4), - LiteralField(2, 9), - LiteralField(2, 14), - IntegerField(1, 17), - FloatField(10, 19, 0), - FloatField(10, 29, 0), - FloatField(10, 39, 0), - FloatField(10, 49, 0), - FloatField(10, 59, 0), - FloatField(10, 69, 0), - FloatField(10, 79, 0), - FloatField(10, 89, 0), - FloatField(10, 99, 0), - FloatField(10, 109, 0), - ]) + LINE = Line( + [ + IntegerField(2, 4), + LiteralField(2, 9), + LiteralField(2, 14), + IntegerField(1, 17), + FloatField(10, 19, 0), + FloatField(10, 29, 0), + FloatField(10, 39, 0), + FloatField(10, 49, 0), + FloatField(10, 59, 0), + FloatField(10, 69, 0), + FloatField(10, 79, 0), + FloatField(10, 89, 0), + FloatField(10, 99, 0), + FloatField(10, 109, 0), + ] + ) @property def estagio(self) -> Optional[int]: @@ -973,9 +1116,11 @@ class TX(Register): IDENTIFIER = "TX " IDENTIFIER_DIGITS = 4 - LINE = Line([ - FloatField(5, 4, 0), - ]) + LINE = Line( + [ + FloatField(5, 4, 0), + ] + ) @property def taxa(self) -> Optional[float]: @@ -1001,9 +1146,11 @@ class GP(Register): IDENTIFIER = "GP " IDENTIFIER_DIGITS = 4 - LINE = Line([ - FloatField(10, 4, 6), - ]) + LINE = Line( + [ + FloatField(10, 4, 6), + ] + ) @property def gap(self) -> Optional[float]: @@ -1069,11 +1216,13 @@ class DT(Register): IDENTIFIER = "DT " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(2, 4), - IntegerField(2, 9), - IntegerField(4, 14), - ]) + LINE = Line( + [ + IntegerField(2, 4), + IntegerField(2, 9), + IntegerField(4, 14), + ] + ) @property def dia(self) -> Optional[int]: @@ -1128,34 +1277,36 @@ class MP(Register): IDENTIFIER = "MP " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(2, 7), - FloatField(5, 9, 3), - FloatField(5, 14, 3), - FloatField(5, 19, 3), - FloatField(5, 24, 3), - FloatField(5, 29, 3), - FloatField(5, 34, 3), - FloatField(5, 39, 3), - FloatField(5, 44, 3), - FloatField(5, 49, 3), - FloatField(5, 54, 3), - FloatField(5, 59, 3), - FloatField(5, 64, 3), - FloatField(5, 69, 3), - FloatField(5, 74, 3), - FloatField(5, 79, 3), - FloatField(5, 84, 3), - FloatField(5, 89, 3), - FloatField(5, 94, 3), - FloatField(5, 99, 3), - FloatField(5, 104, 3), - FloatField(5, 109, 3), - FloatField(5, 114, 3), - FloatField(5, 119, 3), - FloatField(5, 124, 3), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(2, 7), + FloatField(5, 9, 3), + FloatField(5, 14, 3), + FloatField(5, 19, 3), + FloatField(5, 24, 3), + FloatField(5, 29, 3), + FloatField(5, 34, 3), + FloatField(5, 39, 3), + FloatField(5, 44, 3), + FloatField(5, 49, 3), + FloatField(5, 54, 3), + FloatField(5, 59, 3), + FloatField(5, 64, 3), + FloatField(5, 69, 3), + FloatField(5, 74, 3), + FloatField(5, 79, 3), + FloatField(5, 84, 3), + FloatField(5, 89, 3), + FloatField(5, 94, 3), + FloatField(5, 99, 3), + FloatField(5, 104, 3), + FloatField(5, 109, 3), + FloatField(5, 114, 3), + FloatField(5, 119, 3), + FloatField(5, 124, 3), + ] + ) def __atualiza_dados_lista( self, @@ -1225,34 +1376,36 @@ class MT(Register): IDENTIFIER = "MT " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(2, 9), - FloatField(5, 14, 3), - FloatField(5, 19, 3), - FloatField(5, 24, 3), - FloatField(5, 29, 3), - FloatField(5, 34, 3), - FloatField(5, 39, 3), - FloatField(5, 44, 3), - FloatField(5, 49, 3), - FloatField(5, 54, 3), - FloatField(5, 59, 3), - FloatField(5, 64, 3), - FloatField(5, 69, 3), - FloatField(5, 74, 3), - FloatField(5, 79, 3), - FloatField(5, 84, 3), - FloatField(5, 89, 3), - FloatField(5, 94, 3), - FloatField(5, 99, 3), - FloatField(5, 104, 3), - FloatField(5, 109, 3), - FloatField(5, 114, 3), - FloatField(5, 119, 3), - FloatField(5, 124, 3), - FloatField(5, 129, 3), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(2, 9), + FloatField(5, 14, 3), + FloatField(5, 19, 3), + FloatField(5, 24, 3), + FloatField(5, 29, 3), + FloatField(5, 34, 3), + FloatField(5, 39, 3), + FloatField(5, 44, 3), + FloatField(5, 49, 3), + FloatField(5, 54, 3), + FloatField(5, 59, 3), + FloatField(5, 64, 3), + FloatField(5, 69, 3), + FloatField(5, 74, 3), + FloatField(5, 79, 3), + FloatField(5, 84, 3), + FloatField(5, 89, 3), + FloatField(5, 94, 3), + FloatField(5, 99, 3), + FloatField(5, 104, 3), + FloatField(5, 109, 3), + FloatField(5, 114, 3), + FloatField(5, 119, 3), + FloatField(5, 124, 3), + FloatField(5, 129, 3), + ] + ) def __atualiza_dados_lista( self, @@ -1322,34 +1475,36 @@ class FD(Register): IDENTIFIER = "FD " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(2, 7), - FloatField(5, 9, 3), - FloatField(5, 14, 3), - FloatField(5, 19, 3), - FloatField(5, 24, 3), - FloatField(5, 29, 3), - FloatField(5, 34, 3), - FloatField(5, 39, 3), - FloatField(5, 44, 3), - FloatField(5, 49, 3), - FloatField(5, 54, 3), - FloatField(5, 59, 3), - FloatField(5, 64, 3), - FloatField(5, 69, 3), - FloatField(5, 74, 3), - FloatField(5, 79, 3), - FloatField(5, 84, 3), - FloatField(5, 89, 3), - FloatField(5, 94, 3), - FloatField(5, 99, 3), - FloatField(5, 104, 3), - FloatField(5, 109, 3), - FloatField(5, 114, 3), - FloatField(5, 119, 3), - FloatField(5, 124, 3), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(2, 7), + FloatField(5, 9, 3), + FloatField(5, 14, 3), + FloatField(5, 19, 3), + FloatField(5, 24, 3), + FloatField(5, 29, 3), + FloatField(5, 34, 3), + FloatField(5, 39, 3), + FloatField(5, 44, 3), + FloatField(5, 49, 3), + FloatField(5, 54, 3), + FloatField(5, 59, 3), + FloatField(5, 64, 3), + FloatField(5, 69, 3), + FloatField(5, 74, 3), + FloatField(5, 79, 3), + FloatField(5, 84, 3), + FloatField(5, 89, 3), + FloatField(5, 94, 3), + FloatField(5, 99, 3), + FloatField(5, 104, 3), + FloatField(5, 109, 3), + FloatField(5, 114, 3), + FloatField(5, 119, 3), + FloatField(5, 124, 3), + ] + ) def __atualiza_dados_lista( self, @@ -1419,33 +1574,35 @@ class VE(Register): IDENTIFIER = "VE " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - FloatField(5, 9, 2), - FloatField(5, 14, 2), - FloatField(5, 19, 2), - FloatField(5, 24, 2), - FloatField(5, 29, 2), - FloatField(5, 34, 2), - FloatField(5, 39, 2), - FloatField(5, 44, 2), - FloatField(5, 49, 2), - FloatField(5, 54, 2), - FloatField(5, 59, 2), - FloatField(5, 64, 2), - FloatField(5, 69, 2), - FloatField(5, 74, 2), - FloatField(5, 79, 2), - FloatField(5, 84, 2), - FloatField(5, 89, 2), - FloatField(5, 94, 2), - FloatField(5, 99, 2), - FloatField(5, 104, 2), - FloatField(5, 109, 2), - FloatField(5, 114, 2), - FloatField(5, 119, 2), - FloatField(5, 124, 2), - ]) + LINE = Line( + [ + IntegerField(3, 4), + FloatField(5, 9, 2), + FloatField(5, 14, 2), + FloatField(5, 19, 2), + FloatField(5, 24, 2), + FloatField(5, 29, 2), + FloatField(5, 34, 2), + FloatField(5, 39, 2), + FloatField(5, 44, 2), + FloatField(5, 49, 2), + FloatField(5, 54, 2), + FloatField(5, 59, 2), + FloatField(5, 64, 2), + FloatField(5, 69, 2), + FloatField(5, 74, 2), + FloatField(5, 79, 2), + FloatField(5, 84, 2), + FloatField(5, 89, 2), + FloatField(5, 94, 2), + FloatField(5, 99, 2), + FloatField(5, 104, 2), + FloatField(5, 109, 2), + FloatField(5, 114, 2), + FloatField(5, 119, 2), + FloatField(5, 124, 2), + ] + ) def __atualiza_dados_lista( self, @@ -1500,11 +1657,13 @@ class RE(Register): IDENTIFIER = "RE " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(2, 9), - IntegerField(2, 14), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(2, 9), + IntegerField(2, 14), + ] + ) @property def codigo_restricao(self) -> Optional[int]: @@ -1559,20 +1718,22 @@ class LU(Register): IDENTIFIER = "LU " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(2, 9), - FloatField(10, 14, 1), - FloatField(10, 24, 1), - FloatField(10, 34, 1), - FloatField(10, 44, 1), - FloatField(10, 54, 1), - FloatField(10, 64, 1), - FloatField(10, 74, 1), - FloatField(10, 84, 1), - FloatField(10, 94, 1), - FloatField(10, 104, 1), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(2, 9), + FloatField(10, 14, 1), + FloatField(10, 24, 1), + FloatField(10, 34, 1), + FloatField(10, 44, 1), + FloatField(10, 54, 1), + FloatField(10, 64, 1), + FloatField(10, 74, 1), + FloatField(10, 84, 1), + FloatField(10, 94, 1), + FloatField(10, 104, 1), + ] + ) def __atualiza_dados_lista( self, @@ -1657,13 +1818,15 @@ class FU(Register): IDENTIFIER = "FU " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(2, 9), - IntegerField(3, 14), - FloatField(10, 19, 7), - IntegerField(2, 30), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(2, 9), + IntegerField(3, 14), + FloatField(10, 19, 7), + IntegerField(2, 30), + ] + ) @property def codigo_restricao(self) -> Optional[int]: @@ -1742,13 +1905,15 @@ class FT(Register): IDENTIFIER = "FT " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(2, 9), - IntegerField(3, 14), - IntegerField(2, 19), - FloatField(10, 24, 7), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(2, 9), + IntegerField(3, 14), + IntegerField(2, 19), + FloatField(10, 24, 7), + ] + ) @property def codigo_restricao(self) -> Optional[int]: @@ -1826,13 +1991,15 @@ class FI(Register): IDENTIFIER = "FI " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(2, 9), - LiteralField(2, 14), - LiteralField(2, 19), - FloatField(10, 24, 7), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(2, 9), + LiteralField(2, 14), + LiteralField(2, 19), + FloatField(10, 24, 7), + ] + ) @property def codigo_restricao(self) -> Optional[int]: @@ -1909,19 +2076,21 @@ class VI(Register): IDENTIFIER = "VI " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(3, 9), - FloatField(5, 14, 0), - FloatField(5, 19, 0), - FloatField(5, 24, 0), - FloatField(5, 29, 0), - FloatField(5, 34, 0), - FloatField(5, 39, 0), - FloatField(5, 44, 0), - FloatField(5, 49, 0), - FloatField(5, 54, 0), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(3, 9), + FloatField(5, 14, 0), + FloatField(5, 19, 0), + FloatField(5, 24, 0), + FloatField(5, 29, 0), + FloatField(5, 34, 0), + FloatField(5, 39, 0), + FloatField(5, 44, 0), + FloatField(5, 49, 0), + FloatField(5, 54, 0), + ] + ) def __atualiza_dados_lista( self, @@ -1995,12 +2164,14 @@ class IR(Register): IDENTIFIER = "IR " IDENTIFIER_DIGITS = 4 - LINE = Line([ - LiteralField(7, 4), - IntegerField(2, 14), - IntegerField(2, 19), - IntegerField(5, 24), - ]) + LINE = Line( + [ + LiteralField(7, 4), + IntegerField(2, 14), + IntegerField(2, 19), + IntegerField(5, 24), + ] + ) @property def tipo(self) -> Optional[str]: @@ -2027,22 +2198,24 @@ class CI(Register): IDENTIFIER = "CI " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(2, 8), - LiteralField(10, 11), - IntegerField(2, 24), - FloatField(5, 29, 0), - FloatField(5, 34, 0), - FloatField(10, 39, 2), - FloatField(5, 49, 0), - FloatField(5, 54, 0), - FloatField(10, 59, 2), - FloatField(5, 69, 0), - FloatField(5, 74, 0), - FloatField(10, 79, 2), - FloatField(5, 89, 3), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(2, 8), + LiteralField(10, 11), + IntegerField(2, 24), + FloatField(5, 29, 0), + FloatField(5, 34, 0), + FloatField(10, 39, 2), + FloatField(5, 49, 0), + FloatField(5, 54, 0), + FloatField(10, 59, 2), + FloatField(5, 69, 0), + FloatField(5, 74, 0), + FloatField(10, 79, 2), + FloatField(5, 89, 3), + ] + ) class CE(Register): @@ -2054,22 +2227,24 @@ class CE(Register): IDENTIFIER = "CE " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(2, 8), - LiteralField(10, 11), - IntegerField(2, 24), - FloatField(5, 29, 0), - FloatField(5, 34, 0), - FloatField(10, 39, 2), - FloatField(5, 49, 0), - FloatField(5, 54, 0), - FloatField(10, 59, 2), - FloatField(5, 69, 0), - FloatField(5, 74, 0), - FloatField(10, 79, 2), - FloatField(5, 89, 3), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(2, 8), + LiteralField(10, 11), + IntegerField(2, 24), + FloatField(5, 29, 0), + FloatField(5, 34, 0), + FloatField(10, 39, 2), + FloatField(5, 49, 0), + FloatField(5, 54, 0), + FloatField(10, 59, 2), + FloatField(5, 69, 0), + FloatField(5, 74, 0), + FloatField(10, 79, 2), + FloatField(5, 89, 3), + ] + ) class FC(Register): @@ -2082,10 +2257,12 @@ class FC(Register): IDENTIFIER = "FC " IDENTIFIER_DIGITS = 4 - LINE = Line([ - LiteralField(6, 4), - LiteralField(200, 14), - ]) + LINE = Line( + [ + LiteralField(6, 4), + LiteralField(200, 14), + ] + ) @property def tipo(self) -> Optional[str]: @@ -2123,20 +2300,22 @@ class EA(Register): IDENTIFIER = "EA " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(2, 4), - FloatField(10, 11, 2), - FloatField(10, 21, 2), - FloatField(10, 31, 2), - FloatField(10, 41, 2), - FloatField(10, 51, 2), - FloatField(10, 61, 2), - FloatField(10, 71, 2), - FloatField(10, 81, 2), - FloatField(10, 91, 2), - FloatField(10, 101, 2), - FloatField(10, 111, 2), - ]) + LINE = Line( + [ + IntegerField(2, 4), + FloatField(10, 11, 2), + FloatField(10, 21, 2), + FloatField(10, 31, 2), + FloatField(10, 41, 2), + FloatField(10, 51, 2), + FloatField(10, 61, 2), + FloatField(10, 71, 2), + FloatField(10, 81, 2), + FloatField(10, 91, 2), + FloatField(10, 101, 2), + FloatField(10, 111, 2), + ] + ) def __atualiza_dados_lista( self, @@ -2192,15 +2371,17 @@ class ES(Register): IDENTIFIER = "ES " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(2, 4), - IntegerField(1, 9), - FloatField(10, 14, 2), - FloatField(10, 24, 2), - FloatField(10, 34, 2), - FloatField(10, 44, 2), - FloatField(10, 54, 2), - ]) + LINE = Line( + [ + IntegerField(2, 4), + IntegerField(1, 9), + FloatField(10, 14, 2), + FloatField(10, 24, 2), + FloatField(10, 34, 2), + FloatField(10, 44, 2), + FloatField(10, 54, 2), + ] + ) def __atualiza_dados_lista( self, @@ -2270,14 +2451,16 @@ class QI(Register): IDENTIFIER = "QI " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - FloatField(5, 9, 1), - FloatField(5, 14, 1), - FloatField(5, 19, 1), - FloatField(5, 24, 1), - FloatField(5, 29, 1), - ]) + LINE = Line( + [ + IntegerField(3, 4), + FloatField(5, 9, 1), + FloatField(5, 14, 1), + FloatField(5, 19, 1), + FloatField(5, 24, 1), + FloatField(5, 29, 1), + ] + ) def __atualiza_dados_lista( self, @@ -2297,7 +2480,7 @@ def __atualiza_dados_lista( @property def codigo_usina(self) -> Optional[int]: """ - O índice da UHE + O código da UHE. :return: O índice. :rtype: int | None @@ -2334,9 +2517,11 @@ class RT(Register): IDENTIFIER = "RT " IDENTIFIER_DIGITS = 4 - LINE = Line([ - LiteralField(6, 4), - ]) + LINE = Line( + [ + LiteralField(6, 4), + ] + ) @property def restricao(self) -> Optional[str]: @@ -2360,33 +2545,35 @@ class TI(Register): IDENTIFIER = "TI " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - FloatField(5, 9, 2), - FloatField(5, 14, 2), - FloatField(5, 19, 2), - FloatField(5, 24, 2), - FloatField(5, 29, 2), - FloatField(5, 34, 2), - FloatField(5, 39, 2), - FloatField(5, 44, 2), - FloatField(5, 49, 2), - FloatField(5, 54, 2), - FloatField(5, 59, 2), - FloatField(5, 64, 2), - FloatField(5, 69, 2), - FloatField(5, 74, 2), - FloatField(5, 79, 2), - FloatField(5, 84, 2), - FloatField(5, 89, 2), - FloatField(5, 94, 2), - FloatField(5, 99, 2), - FloatField(5, 104, 2), - FloatField(5, 109, 2), - FloatField(5, 114, 2), - FloatField(5, 119, 2), - FloatField(5, 124, 2), - ]) + LINE = Line( + [ + IntegerField(3, 4), + FloatField(5, 9, 2), + FloatField(5, 14, 2), + FloatField(5, 19, 2), + FloatField(5, 24, 2), + FloatField(5, 29, 2), + FloatField(5, 34, 2), + FloatField(5, 39, 2), + FloatField(5, 44, 2), + FloatField(5, 49, 2), + FloatField(5, 54, 2), + FloatField(5, 59, 2), + FloatField(5, 64, 2), + FloatField(5, 69, 2), + FloatField(5, 74, 2), + FloatField(5, 79, 2), + FloatField(5, 84, 2), + FloatField(5, 89, 2), + FloatField(5, 94, 2), + FloatField(5, 99, 2), + FloatField(5, 104, 2), + FloatField(5, 109, 2), + FloatField(5, 114, 2), + FloatField(5, 119, 2), + FloatField(5, 124, 2), + ] + ) def __atualiza_dados_lista( self, @@ -2443,14 +2630,16 @@ class DA(Register): IDENTIFIER = "DA " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(3, 9), - IntegerField(2, 13), - FloatField(6, 16, 2), - FloatField(4, 24, 1), - FloatField(10, 34, 2), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(3, 9), + IntegerField(2, 13), + FloatField(6, 16, 2), + FloatField(4, 24, 1), + FloatField(10, 34, 2), + ] + ) @property def codigo_usina_retirada(self) -> Optional[int]: @@ -2547,21 +2736,23 @@ class FP(Register): IDENTIFIER = "FP " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(3, 9), - IntegerField(1, 14), - IntegerField(4, 16), - FloatField(5, 21, 0), - FloatField(5, 27, 0), - IntegerField(1, 34), - IntegerField(4, 36), - FloatField(5, 41, 0), - FloatField(5, 47, 0), - FloatField(5, 54, 0), - FloatField(5, 60, 0), - FloatField(5, 66, 0), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(3, 9), + IntegerField(1, 14), + IntegerField(4, 16), + FloatField(5, 21, 0), + FloatField(5, 27, 0), + IntegerField(1, 34), + IntegerField(4, 36), + FloatField(5, 41, 0), + FloatField(5, 47, 0), + FloatField(5, 54, 0), + FloatField(5, 60, 0), + FloatField(5, 66, 0), + ] + ) @property def codigo_usina(self) -> Optional[int]: @@ -2722,17 +2913,19 @@ class RQ(Register): IDENTIFIER = "RQ " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(2, 4), - FloatField(5, 9, 2), - FloatField(5, 14, 2), - FloatField(5, 19, 2), - FloatField(5, 24, 2), - FloatField(5, 29, 2), - FloatField(5, 34, 2), - FloatField(5, 39, 2), - FloatField(5, 44, 2), - ]) + LINE = Line( + [ + IntegerField(2, 4), + FloatField(5, 9, 2), + FloatField(5, 14, 2), + FloatField(5, 19, 2), + FloatField(5, 24, 2), + FloatField(5, 29, 2), + FloatField(5, 34, 2), + FloatField(5, 39, 2), + FloatField(5, 44, 2), + ] + ) def __atualiza_dados_lista( self, @@ -2790,10 +2983,12 @@ class EZ(Register): IDENTIFIER = "EZ " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - FloatField(5, 9, 2), - ]) + LINE = Line( + [ + IntegerField(3, 4), + FloatField(5, 9, 2), + ] + ) @property def codigo_usina(self) -> Optional[int]: @@ -2833,11 +3028,13 @@ class HV(Register): IDENTIFIER = "HV " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(2, 9), - IntegerField(2, 14), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(2, 9), + IntegerField(2, 14), + ] + ) @property def codigo_restricao(self) -> Optional[int]: @@ -2892,12 +3089,14 @@ class LV(Register): IDENTIFIER = "LV " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(2, 9), - FloatField(10, 14, 2), - FloatField(10, 24, 2), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(2, 9), + FloatField(10, 14, 2), + FloatField(10, 24, 2), + ] + ) @property def codigo_restricao(self) -> Optional[int]: @@ -2966,13 +3165,15 @@ class CV(Register): IDENTIFIER = "CV " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(2, 9), - IntegerField(3, 14), - FloatField(10, 19, 7), - LiteralField(4, 34), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(2, 9), + IntegerField(3, 14), + FloatField(10, 19, 7), + LiteralField(4, 34), + ] + ) @property def codigo_restricao(self) -> Optional[int]: @@ -3049,11 +3250,13 @@ class HQ(Register): IDENTIFIER = "HQ " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(2, 9), - IntegerField(2, 14), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(2, 9), + IntegerField(2, 14), + ] + ) @property def codigo_restricao(self) -> Optional[int]: @@ -3108,20 +3311,22 @@ class LQ(Register): IDENTIFIER = "LQ " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(2, 9), - FloatField(10, 14, 2), - FloatField(10, 24, 2), - FloatField(10, 34, 2), - FloatField(10, 44, 2), - FloatField(10, 54, 2), - FloatField(10, 64, 2), - FloatField(10, 74, 1), - FloatField(10, 84, 1), - FloatField(10, 94, 1), - FloatField(10, 104, 1), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(2, 9), + FloatField(10, 14, 2), + FloatField(10, 24, 2), + FloatField(10, 34, 2), + FloatField(10, 44, 2), + FloatField(10, 54, 2), + FloatField(10, 64, 2), + FloatField(10, 74, 1), + FloatField(10, 84, 1), + FloatField(10, 94, 1), + FloatField(10, 104, 1), + ] + ) def __atualiza_dados_lista( self, @@ -3205,13 +3410,15 @@ class CQ(Register): IDENTIFIER = "CQ " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(2, 9), - IntegerField(3, 14), - FloatField(10, 19, 7), - LiteralField(4, 34), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(2, 9), + IntegerField(3, 14), + FloatField(10, 19, 7), + LiteralField(4, 34), + ] + ) @property def codigo_restricao(self) -> Optional[int]: @@ -3288,11 +3495,13 @@ class AR(Register): IDENTIFIER = "AR " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 5), - FloatField(5, 11, 0), - FloatField(5, 17, 0), - ]) + LINE = Line( + [ + IntegerField(3, 5), + FloatField(5, 11, 0), + FloatField(5, 17, 0), + ] + ) @property def estagio(self) -> Optional[int]: @@ -3347,10 +3556,12 @@ class EV(Register): IDENTIFIER = "EV " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(1, 4), - LiteralField(3, 9), - ]) + LINE = Line( + [ + IntegerField(1, 4), + LiteralField(3, 9), + ] + ) @property def modelo(self) -> Optional[int]: @@ -3390,9 +3601,11 @@ class FJ(Register): IDENTIFIER = "FJ " IDENTIFIER_DIGITS = 4 - LINE = Line([ - LiteralField(12, 4), - ]) + LINE = Line( + [ + LiteralField(12, 4), + ] + ) @property def arquivo(self) -> str: @@ -3419,17 +3632,19 @@ class HE(Register): IDENTIFIER = "HE " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(3, 4), - IntegerField(1, 9), - FloatField(10, 14, 2), - IntegerField(2, 25), - FloatField(10, 28, 2), - IntegerField(1, 39), - IntegerField(1, 41), - IntegerField(1, 43), - LiteralField(12, 45), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(1, 9), + FloatField(10, 14, 2), + IntegerField(2, 25), + FloatField(10, 28, 2), + IntegerField(1, 39), + IntegerField(1, 41), + IntegerField(1, 43), + LiteralField(12, 45), + ] + ) @property def codigo_restricao(self) -> Optional[int]: @@ -3628,9 +3843,11 @@ class PD(Register): IDENTIFIER = "PD " IDENTIFIER_DIGITS = 4 - LINE = Line([ - LiteralField(6, 4), - ]) + LINE = Line( + [ + LiteralField(6, 4), + ] + ) @property def algoritmo(self) -> Optional[str]: @@ -3657,9 +3874,11 @@ class PU(Register): IDENTIFIER = "PU " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(1, 4), - ]) + LINE = Line( + [ + IntegerField(1, 4), + ] + ) @property def pl(self) -> Optional[int]: @@ -3685,9 +3904,11 @@ class RC(Register): IDENTIFIER = "RC " IDENTIFIER_DIGITS = 4 - LINE = Line([ - LiteralField(6, 4), - ]) + LINE = Line( + [ + LiteralField(6, 4), + ] + ) @property def mnemonico(self) -> Optional[str]: @@ -3714,11 +3935,13 @@ class PE(Register): IDENTIFIER = "PE " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(2, 4), - IntegerField(1, 7), - FloatField(10, 9, 6), - ]) + LINE = Line( + [ + IntegerField(2, 4), + IntegerField(1, 7), + FloatField(10, 9, 6), + ] + ) @property def codigo_submercado(self) -> Optional[int]: @@ -3772,12 +3995,14 @@ class TS(Register): IDENTIFIER = "TS " IDENTIFIER_DIGITS = 4 - LINE = Line([ - FloatField(17, 4, 15), - FloatField(17, 22, 15), - IntegerField(1, 42), - FloatField(17, 22, 15), - ]) + LINE = Line( + [ + FloatField(17, 4, 15), + FloatField(17, 22, 15), + IntegerField(1, 42), + FloatField(17, 22, 15), + ] + ) @property def tolerancia_primaria(self) -> Optional[float]: @@ -3848,14 +4073,16 @@ class PV(Register): IDENTIFIER = "PV " IDENTIFIER_DIGITS = 4 - LINE = Line([ - FloatField(20, 5, 5), - FloatField(20, 28, 5), - IntegerField(3, 51), - FloatField(3, 57, 1), - FloatField(20, 63, 5), - FloatField(20, 86, 5), - ]) + LINE = Line( + [ + FloatField(20, 5, 5), + FloatField(20, 28, 5), + IntegerField(3, 51), + FloatField(3, 57, 1), + FloatField(20, 63, 5), + FloatField(20, 86, 5), + ] + ) @property def penalidade_variaveis_folga(self) -> Optional[float]: @@ -3953,10 +4180,12 @@ class CX(Register): IDENTIFIER = "CX " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(4, 4), - IntegerField(4, 9), - ]) + LINE = Line( + [ + IntegerField(4, 4), + IntegerField(4, 9), + ] + ) @property def codigo_newave(self) -> Optional[int]: @@ -3996,9 +4225,11 @@ class FA(Register): IDENTIFIER = "FA " IDENTIFIER_DIGITS = 4 - LINE = Line([ - LiteralField(50, 4), - ]) + LINE = Line( + [ + LiteralField(50, 4), + ] + ) @property def arquivo(self) -> Optional[str]: @@ -4024,9 +4255,11 @@ class VT(Register): IDENTIFIER = "VT " IDENTIFIER_DIGITS = 4 - LINE = Line([ - LiteralField(50, 4), - ]) + LINE = Line( + [ + LiteralField(50, 4), + ] + ) @property def arquivo(self) -> Optional[str]: @@ -4052,9 +4285,11 @@ class CS(Register): IDENTIFIER = "CS " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(1, 4), - ]) + LINE = Line( + [ + IntegerField(1, 4), + ] + ) @property def consistencia(self) -> Optional[int]: @@ -4080,13 +4315,15 @@ class ACNUMPOS(Register): IDENTIFIER = r"AC ([\d ]{1,3}) NUMPOS" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - IntegerField(5, 19), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(5, 19), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -4150,13 +4387,15 @@ class ACNUMJUS(Register): IDENTIFIER = r"AC ([\d ]{1,3}) NUMJUS" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - IntegerField(5, 19), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(5, 19), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -4246,14 +4485,16 @@ class ACDESVIO(Register): IDENTIFIER = r"AC ([\d ]{1,3}) DESVIO" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - IntegerField(5, 19), - FloatField(10, 24, 2), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(5, 19), + FloatField(10, 24, 2), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -4325,13 +4566,15 @@ class ACVOLMIN(Register): IDENTIFIER = r"AC ([\d ]{1,3}) VOLMIN" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - FloatField(10, 19, 2), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + FloatField(10, 19, 2), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -4395,13 +4638,15 @@ class ACVOLMAX(Register): IDENTIFIER = r"AC ([\d ]{1,3}) VOLMAX" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - FloatField(10, 19, 2), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + FloatField(10, 19, 2), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -4466,14 +4711,16 @@ class ACCOTVOL(Register): IDENTIFIER = r"AC ([\d ]{1,3}) COTVOL" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - IntegerField(5, 19), - FloatField(15, 24, 3), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(5, 19), + FloatField(15, 24, 3), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -4546,14 +4793,16 @@ class ACCOTARE(Register): IDENTIFIER = r"AC ([\d ]{1,3}) COTARE" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - IntegerField(5, 19), - FloatField(15, 24, 3), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(5, 19), + FloatField(15, 24, 3), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -4626,13 +4875,15 @@ class ACPROESP(Register): IDENTIFIER = r"AC ([\d ]{1,3}) PROESP" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - FloatField(10, 19, 3), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + FloatField(10, 19, 3), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -4697,13 +4948,15 @@ class ACPERHID(Register): IDENTIFIER = r"AC ([\d ]{1,3}) PERHID" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - FloatField(10, 19, 3), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + FloatField(10, 19, 3), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -4768,14 +5021,16 @@ class ACNCHAVE(Register): IDENTIFIER = r"AC ([\d ]{1,3}) NCHAVE" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - IntegerField(5, 19), - FloatField(10, 24, 3), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(5, 19), + FloatField(10, 24, 3), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -4848,15 +5103,17 @@ class ACCOTVAZ(Register): IDENTIFIER = r"AC ([\d ]{1,3}) COTVAZ" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - IntegerField(5, 19), - IntegerField(5, 24), - FloatField(15, 29, 3), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(5, 19), + IntegerField(5, 24), + FloatField(15, 29, 3), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -4937,14 +5194,16 @@ class ACCOFEVA(Register): IDENTIFIER = r"AC ([\d ]{1,3}) COFEVA" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - IntegerField(5, 19), - IntegerField(5, 24), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(5, 19), + IntegerField(5, 24), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -5017,13 +5276,15 @@ class ACNUMCON(Register): IDENTIFIER = r"AC ([\d ]{1,3}) NUMCON" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - IntegerField(5, 19), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(5, 19), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -5088,14 +5349,16 @@ class ACNUMMAQ(Register): IDENTIFIER = r"AC ([\d ]{1,3}) NUMMAQ" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - IntegerField(5, 19), - IntegerField(5, 24), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(5, 19), + IntegerField(5, 24), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -5168,14 +5431,16 @@ class ACPOTEFE(Register): IDENTIFIER = r"AC ([\d ]{1,3}) POTEFE" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - IntegerField(5, 19), - FloatField(11, 24, 3), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(5, 19), + FloatField(11, 24, 3), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -5248,14 +5513,16 @@ class ACALTEFE(Register): IDENTIFIER = r"AC ([\d ]{1,3}) ALTEFE" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - IntegerField(5, 19), - FloatField(10, 24, 2), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(5, 19), + FloatField(10, 24, 2), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -5312,14 +5579,16 @@ class ACVAZEFE(Register): IDENTIFIER = r"AC ([\d ]{1,3}) VAZEFE" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - IntegerField(5, 19), - IntegerField(5, 24), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(5, 19), + IntegerField(5, 24), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -5392,13 +5661,15 @@ class ACJUSMED(Register): IDENTIFIER = r"AC ([\d ]{1,3}) JUSMED" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - FloatField(10, 19, 2), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + FloatField(10, 19, 2), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -5463,13 +5734,15 @@ class ACVERTJU(Register): IDENTIFIER = r"AC ([\d ]{1,3}) VERTJU" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - IntegerField(5, 19), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(5, 19), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -5533,13 +5806,15 @@ class ACVAZMIN(Register): IDENTIFIER = r"AC ([\d ]{1,3}) VAZMIN" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - IntegerField(5, 19), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(5, 19), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -5603,13 +5878,15 @@ class ACTIPERH(Register): IDENTIFIER = r"AC ([\d ]{1,3}) TIPERH" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - IntegerField(5, 19), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(5, 19), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -5675,13 +5952,15 @@ class ACJUSENA(Register): IDENTIFIER = r"AC ([\d ]{1,3}) JUSENA" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - IntegerField(5, 19), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(5, 19), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -5746,13 +6025,15 @@ class ACVSVERT(Register): IDENTIFIER = r"AC ([\d ]{1,3}) VSVERT" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - FloatField(10, 19, 2), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + FloatField(10, 19, 2), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -5817,13 +6098,15 @@ class ACVMDESV(Register): IDENTIFIER = r"AC ([\d ]{1,3}) VMDESV" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - FloatField(10, 19, 2), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + FloatField(10, 19, 2), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -5888,13 +6171,15 @@ class ACNPOSNW(Register): IDENTIFIER = r"AC ([\d ]{1,3}) NPOSNW" IDENTIFIER_DIGITS = 15 - LINE = Line([ - IntegerField(3, 4), - IntegerField(5, 19), - LiteralField(3, 69), - IntegerField(2, 73), - IntegerField(4, 76), - ]) + LINE = Line( + [ + IntegerField(3, 4), + IntegerField(5, 19), + LiteralField(3, 69), + IntegerField(2, 73), + IntegerField(4, 76), + ] + ) # Override def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool: @@ -5959,15 +6244,27 @@ class VL(Register): IDENTIFIER = "VL " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(4, 4), - FloatField(15, 10, 2), - FloatField(size=15, starting_position=26, decimal_digits=9, format="E"), - FloatField(size=15, starting_position=42, decimal_digits=9, format="E"), - FloatField(size=15, starting_position=58, decimal_digits=9, format="E"), - FloatField(size=15, starting_position=74, decimal_digits=9, format="E"), - FloatField(size=15, starting_position=90, decimal_digits=9, format="E"), - ]) + LINE = Line( + [ + IntegerField(4, 4), + FloatField(15, 10, 2), + FloatField( + size=15, starting_position=26, decimal_digits=9, format="E" + ), + FloatField( + size=15, starting_position=42, decimal_digits=9, format="E" + ), + FloatField( + size=15, starting_position=58, decimal_digits=9, format="E" + ), + FloatField( + size=15, starting_position=74, decimal_digits=9, format="E" + ), + FloatField( + size=15, starting_position=90, decimal_digits=9, format="E" + ), + ] + ) @property def codigo_usina_influenciada(self) -> Optional[int]: @@ -6078,11 +6375,13 @@ class VU(Register): IDENTIFIER = "VU " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(4, 4), - IntegerField(4, 10), - FloatField(15, 16, 2), - ]) + LINE = Line( + [ + IntegerField(4, 4), + IntegerField(4, 10), + FloatField(15, 16, 2), + ] + ) @property def codigo_usina_influenciada(self) -> Optional[int]: @@ -6138,11 +6437,13 @@ class VA(Register): IDENTIFIER = "VA " IDENTIFIER_DIGITS = 4 - LINE = Line([ - IntegerField(4, 4), - IntegerField(4, 10), - FloatField(15, 16, 2), - ]) + LINE = Line( + [ + IntegerField(4, 4), + IntegerField(4, 10), + FloatField(15, 16, 2), + ] + ) @property def codigo_usina_influenciada(self) -> Optional[int]: diff --git a/tests/decomp/test_dadger.py b/tests/decomp/test_dadger.py index 5b00522..476000b 100644 --- a/tests/decomp/test_dadger.py +++ b/tests/decomp/test_dadger.py @@ -439,6 +439,30 @@ def test_registro_ri_dadger(): None, None, ] + assert r.codigo_usina == 66 + r.codigo_usina = 0 + assert r.codigo_usina == 0 + assert r.estagio == 1 + r.estagio = 0 + assert r.estagio == 0 + assert r.codigo_submercado == 1 + r.codigo_submercado = 0 + assert r.codigo_submercado == 0 + assert r.geracao_minima_60_hz == [1680, 1680, 1680, None, None] + r.geracao_minima_60_hz = [None, None, None, None, None] + assert r.geracao_minima_60_hz == [None, None, None, None, None] + assert r.geracao_maxima_60_hz == [7000, 7000, 7000, None, None] + r.geracao_maxima_60_hz = [None, None, None, None, None] + assert r.geracao_maxima_60_hz == [None, None, None, None, None] + assert r.geracao_minima_50_hz == [5079, 4418, 3474, None, None] + r.geracao_minima_50_hz = [None, None, None, None, None] + assert r.geracao_minima_50_hz == [None, None, None, None, None] + assert r.geracao_maxima_50_hz == [7000, 7000, 7000, None, None] + r.geracao_maxima_50_hz = [None, None, None, None, None] + assert r.geracao_maxima_50_hz == [None, None, None, None, None] + assert r.carga_ande == [3179, 2518, 1574, None, None] + r.carga_ande = [None, None, None, None, None] + assert r.carga_ande == [None, None, None, None, None] def test_registro_ia_dadger(): @@ -2049,6 +2073,7 @@ def test_campos_nao_encontrados_dadger(): assert d.vu() is None assert d.da() is None assert d.ia() is None + assert d.ri() is None def test_campos_encontrados_dadger(): @@ -2086,6 +2111,7 @@ def test_campos_encontrados_dadger(): assert d.cm(1) is not None assert len(d.lq(df=True).columns) == 12 assert d.ia(1) is not None + assert d.ri(66) is not None def test_cria_lu_dadger():