idecomp 1.2.0__tar.gz → 1.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {idecomp-1.2.0 → idecomp-1.4.0}/PKG-INFO +2 -2
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/__init__.py +1 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/config.py +2 -1
- idecomp-1.4.0/idecomp/decomp/avl_cortesfpha_dec.py +35 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/dadger.py +31 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/dec_avl_evap.py +1 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/dec_cortes_evap.py +1 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/dec_desvfpha.py +1 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/dec_eco_discr.py +1 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/dec_oper_gnl.py +1 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/dec_oper_interc.py +1 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/dec_oper_ree.py +1 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/dec_oper_sist.py +1 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/dec_oper_usie.py +1 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/dec_oper_usih.py +1 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/dec_oper_usit.py +1 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/arquivos.py +2 -0
- idecomp-1.4.0/idecomp/decomp/modelos/avl_cortesfpha_dec.py +46 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/blocos/tabelacsv.py +4 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/blocos/versaomodelo.py +4 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/caso.py +2 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/custos.py +9 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/dadger.py +279 -5
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/dadgnl.py +8 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/dec_avl_evap.py +3 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/dec_cortes_evap.py +3 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/dec_desvfpha.py +3 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/dec_eco_cotajus.py +2 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/dec_eco_discr.py +3 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/dec_fcf_cortes.py +2 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/dec_oper_gnl.py +6 -2
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/dec_oper_interc.py +6 -2
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/dec_oper_ree.py +6 -2
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/dec_oper_sist.py +6 -2
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/dec_oper_usie.py +6 -2
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/dec_oper_usih.py +6 -2
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/dec_oper_usit.py +6 -2
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/decomptim.py +2 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/fcfnw.py +2 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/hidr.py +2 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/inviabunic.py +4 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/oper_desvio_fpha.py +3 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/postos.py +2 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/relato.py +57 -5
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/relgnl.py +9 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/vazoes.py +2 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/oper_desvio_fpha.py +1 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/relgnl.py +1 -1
- idecomp-1.4.0/idecomp/libs/modelos/restricoes.py +1945 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/libs/modelos/usinas_hidreletricas.py +10 -0
- idecomp-1.4.0/idecomp/libs/restricoes.py +1057 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp.egg-info/PKG-INFO +2 -2
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp.egg-info/SOURCES.txt +8 -0
- idecomp-1.4.0/idecomp.egg-info/requires.txt +3 -0
- idecomp-1.4.0/tests/decomp/test_avl_cortesfpha_dec.py +51 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_dadger.py +34 -3
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_dec_avl_evap.py +1 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_dec_cortes_evap.py +1 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_dec_desvfpha.py +1 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_dec_eco_discr.py +1 -1
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_dec_oper_gnl.py +2 -2
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_dec_oper_interc.py +2 -2
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_dec_oper_ree.py +2 -2
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_dec_oper_sist.py +2 -2
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_dec_oper_usie.py +2 -2
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_dec_oper_usih.py +2 -2
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_dec_oper_usit.py +2 -2
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_oper_desvio_fpha.py +1 -1
- idecomp-1.4.0/tests/libs/test_restricoes.py +708 -0
- idecomp-1.4.0/tests/mocks/arquivos/avl_cortesfpha_dec.py +64 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/dadger.py +1 -1
- idecomp-1.4.0/tests/mocks/arquivos/restricoes_libs.py +156 -0
- idecomp-1.2.0/idecomp.egg-info/requires.txt +0 -3
- {idecomp-1.2.0 → idecomp-1.4.0}/LICENSE.md +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/README.md +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/__init__.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/arquivos.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/caso.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/custos.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/dadgnl.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/dec_eco_cotajus.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/dec_fcf_cortes.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/decomptim.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/fcfnw.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/hidr.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/inviabunic.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/__init__.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/arquivoscsv/__init__.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/arquivoscsv/arquivocsv.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/modelos/blocos/__init__.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/postos.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/relato.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/decomp/vazoes.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/libs/__init__.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/libs/modelos/__init__.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/libs/usinas_hidreletricas.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp/py.typed +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp.egg-info/dependency_links.txt +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/idecomp.egg-info/top_level.txt +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/setup.cfg +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/setup.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/__init__.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/__init__.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_arquivos.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_caso.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_custos.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_dadgnl.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_dec_eco_cotajus.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_dec_fcf_cortes.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_decomptim.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_fcfnw.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_hidr.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_inviabunic.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_postos.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_relato.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_relgnl.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_sumario.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/decomp/test_vazoes.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/libs/__init__.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/libs/test_usinas_hidreletricas.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/__init__.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/__init__.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/arquivos.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/caso.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/custos.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/dadgnl.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/dec_avl_evap.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/dec_cortes_evap.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/dec_desvfpha.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/dec_eco_cotajus.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/dec_eco_discr.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/dec_fcf_cortes.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/dec_oper_gnl.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/dec_oper_interc.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/dec_oper_ree.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/dec_oper_sist.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/dec_oper_usie.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/dec_oper_usih.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/dec_oper_usit.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/decomptim.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/fcfnwi.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/fcfnwn.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/inviab_unic.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/oper_desvio_fpha.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/polinjus.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/relato.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/relgnl.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/arquivos/sumario.py +0 -0
- {idecomp-1.2.0 → idecomp-1.4.0}/tests/mocks/mock_open.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: idecomp
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.4.0
|
|
4
4
|
Summary: Interface para arquivos do DECOMP
|
|
5
5
|
Home-page: https://github.com/rjmalves/idecomp
|
|
6
6
|
Author: Rogerio Alves
|
|
@@ -14,7 +14,7 @@ Description-Content-Type: text/markdown
|
|
|
14
14
|
License-File: LICENSE.md
|
|
15
15
|
Requires-Dist: numpy
|
|
16
16
|
Requires-Dist: pandas
|
|
17
|
-
Requires-Dist: cfinterface>=1.
|
|
17
|
+
Requires-Dist: cfinterface>=1.7.0
|
|
18
18
|
|
|
19
19
|
# idecomp
|
|
20
20
|
|
|
@@ -5,7 +5,7 @@ MAX_SUBSISTEMAS = 10
|
|
|
5
5
|
MAX_UTES = 300
|
|
6
6
|
MAX_UHES = 300
|
|
7
7
|
MAX_REES = 20
|
|
8
|
-
MAX_CENARIOS =
|
|
8
|
+
MAX_CENARIOS = 9999
|
|
9
9
|
MESES = [
|
|
10
10
|
"JANEIRO",
|
|
11
11
|
"FEVEREIRO",
|
|
@@ -48,3 +48,4 @@ MESES_ABREV = [
|
|
|
48
48
|
"NOV",
|
|
49
49
|
"DEZ",
|
|
50
50
|
]
|
|
51
|
+
FORMATO_CAMPOS_DATA_LIBS = ["%Y/%m/%d %H:%M", "%Y/%m/%d", "%Y/%m"]
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
from idecomp.decomp.modelos.blocos.versaomodelo import VersaoModelo
|
|
2
|
+
from idecomp.decomp.modelos.avl_cortesfpha_dec import TabelaCortesFpha
|
|
3
|
+
|
|
4
|
+
from idecomp.decomp.modelos.arquivoscsv.arquivocsv import ArquivoCSV
|
|
5
|
+
from typing import Optional
|
|
6
|
+
import pandas as pd # type: ignore
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class AvlCortesFpha(ArquivoCSV):
|
|
10
|
+
"""
|
|
11
|
+
Arquivo com os cortes da função de produção hidráulica aproximada do DECOMP.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
BLOCKS = [VersaoModelo, TabelaCortesFpha]
|
|
15
|
+
|
|
16
|
+
@property
|
|
17
|
+
def tabela(self) -> Optional[pd.DataFrame]:
|
|
18
|
+
"""
|
|
19
|
+
A tabela de dados que está contida no arquivo.
|
|
20
|
+
|
|
21
|
+
- codigo_usina (`int`)
|
|
22
|
+
- estagio (`int`)
|
|
23
|
+
- nome_usina (`str`)
|
|
24
|
+
- segmento_fpha (`int`)
|
|
25
|
+
- fator_correcao (`float`)
|
|
26
|
+
- rhs (`float`)
|
|
27
|
+
- coeficiente_volume_util (`float`)
|
|
28
|
+
- coeficiente_vazao_turbinada (`float`)
|
|
29
|
+
- coeficiente_vazao_vertida (`float`)
|
|
30
|
+
- coeficiente_vazao_lateral (`float`)
|
|
31
|
+
|
|
32
|
+
:return: A tabela como um dataframe
|
|
33
|
+
:rtype: pd.DataFrame | None
|
|
34
|
+
"""
|
|
35
|
+
return self._tabela()
|
|
@@ -84,6 +84,7 @@ from idecomp.decomp.modelos.dadger import (
|
|
|
84
84
|
VL,
|
|
85
85
|
VA,
|
|
86
86
|
VU,
|
|
87
|
+
DA,
|
|
87
88
|
)
|
|
88
89
|
|
|
89
90
|
import pandas # type: ignore
|
|
@@ -211,6 +212,7 @@ class Dadger(RegisterFile):
|
|
|
211
212
|
VL,
|
|
212
213
|
VA,
|
|
213
214
|
VU,
|
|
215
|
+
DA,
|
|
214
216
|
]
|
|
215
217
|
|
|
216
218
|
def __init__(self, data=...) -> None:
|
|
@@ -1000,6 +1002,35 @@ class Dadger(RegisterFile):
|
|
|
1000
1002
|
"""
|
|
1001
1003
|
return self.__registros_ou_df(TI, codigo_usina=codigo_usina, df=df)
|
|
1002
1004
|
|
|
1005
|
+
def da(
|
|
1006
|
+
self,
|
|
1007
|
+
codigo_usina_retirada: Optional[int] = None,
|
|
1008
|
+
codigo_usina_retorno: Optional[int] = None,
|
|
1009
|
+
df: bool = False,
|
|
1010
|
+
) -> Optional[Union[DA, List[DA], pandas.DataFrame]]:
|
|
1011
|
+
"""
|
|
1012
|
+
Obtém um registro que especifica as retiradas de água para
|
|
1013
|
+
outros usos (desvios de água) por usina (UHE) existente no
|
|
1014
|
+
estudo especificado no :class:`Dadger`
|
|
1015
|
+
|
|
1016
|
+
:param codigo_usina_retirada: Código da UHE a montante da qual será feita a retirada
|
|
1017
|
+
:type codigo_usina_retirada: int | None
|
|
1018
|
+
:param codigo_usina_retorno: Código da UHE a montante da qual se derá o retorno.
|
|
1019
|
+
:type codigo_usina_retorno: int | None
|
|
1020
|
+
:param df: ignorar os filtros e retornar
|
|
1021
|
+
todos os dados de registros como um DataFrame
|
|
1022
|
+
:type df: bool
|
|
1023
|
+
|
|
1024
|
+
:return: Um ou mais registros, se existirem.
|
|
1025
|
+
:rtype: :class:`DA` | list[:class:`DA`] | :class:`pandas.DataFrame` | None
|
|
1026
|
+
"""
|
|
1027
|
+
return self.__registros_ou_df(
|
|
1028
|
+
DA,
|
|
1029
|
+
codigo_usina_retirada=codigo_usina_retirada,
|
|
1030
|
+
codigo_usina_retorno=codigo_usina_retorno,
|
|
1031
|
+
df=df,
|
|
1032
|
+
)
|
|
1033
|
+
|
|
1003
1034
|
def mp(
|
|
1004
1035
|
self,
|
|
1005
1036
|
codigo_usina: Optional[int] = None,
|
|
@@ -11,6 +11,8 @@ class BlocoNomesArquivos(Section):
|
|
|
11
11
|
arquivos de entrada do DECOMP.
|
|
12
12
|
"""
|
|
13
13
|
|
|
14
|
+
__slots__ = ["__linha"]
|
|
15
|
+
|
|
14
16
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
15
17
|
super().__init__(previous, next, data)
|
|
16
18
|
self.__linha = Line([LiteralField(80, 0)])
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Imports de módulos externos
|
|
2
|
+
from cfinterface.components.line import Line
|
|
3
|
+
from cfinterface.components.integerfield import IntegerField
|
|
4
|
+
from cfinterface.components.literalfield import LiteralField
|
|
5
|
+
from cfinterface.components.floatfield import FloatField
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
from idecomp.decomp.modelos.blocos.tabelacsv import TabelaCSV
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class TabelaCortesFpha(TabelaCSV):
|
|
12
|
+
"""
|
|
13
|
+
Bloco com as informações dos cortes da função de produção hidráulica.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
__slots__ = []
|
|
17
|
+
|
|
18
|
+
BEGIN_PATTERN = "-----;-----;--------------;"
|
|
19
|
+
LINE_MODEL = Line(
|
|
20
|
+
[
|
|
21
|
+
IntegerField(size=5),
|
|
22
|
+
IntegerField(size=5),
|
|
23
|
+
LiteralField(size=14),
|
|
24
|
+
IntegerField(size=7),
|
|
25
|
+
FloatField(size=10, decimal_digits=6),
|
|
26
|
+
FloatField(size=16, decimal_digits=8),
|
|
27
|
+
FloatField(size=16, decimal_digits=8),
|
|
28
|
+
FloatField(size=16, decimal_digits=8),
|
|
29
|
+
FloatField(size=16, decimal_digits=8),
|
|
30
|
+
FloatField(size=16, decimal_digits=8),
|
|
31
|
+
],
|
|
32
|
+
delimiter=";",
|
|
33
|
+
)
|
|
34
|
+
COLUMN_NAMES = [
|
|
35
|
+
"codigo_usina",
|
|
36
|
+
"estagio",
|
|
37
|
+
"nome_usina",
|
|
38
|
+
"segmento_fpha",
|
|
39
|
+
"fator_correcao",
|
|
40
|
+
"rhs",
|
|
41
|
+
"coeficiente_volume_util",
|
|
42
|
+
"coeficiente_vazao_turbinada",
|
|
43
|
+
"coeficiente_vazao_vertida",
|
|
44
|
+
"coeficiente_vazao_lateral",
|
|
45
|
+
]
|
|
46
|
+
END_PATTERN = ""
|
|
@@ -11,6 +11,8 @@ class TabelaCSV(Block):
|
|
|
11
11
|
a partir de um modelo de linha, para arquivos de saída do DECOMP.
|
|
12
12
|
"""
|
|
13
13
|
|
|
14
|
+
__slots__ = []
|
|
15
|
+
|
|
14
16
|
BEGIN_PATTERN = "-----;------;"
|
|
15
17
|
LINE_MODEL = Line([])
|
|
16
18
|
COLUMN_NAMES: List[str] = []
|
|
@@ -66,6 +68,8 @@ class TabelaCSVLibs(Block):
|
|
|
66
68
|
a partir de um modelo de linha, para arquivos de saída do DECOMP.
|
|
67
69
|
"""
|
|
68
70
|
|
|
71
|
+
__slots__ = []
|
|
72
|
+
|
|
69
73
|
BEGIN_PATTERN = "&IIIIIII;IIIIIII;"
|
|
70
74
|
LINE_MODEL = Line([])
|
|
71
75
|
COLUMN_NAMES: List[str] = []
|
|
@@ -11,6 +11,8 @@ class VersaoModelo(Block):
|
|
|
11
11
|
título do arquivo.
|
|
12
12
|
"""
|
|
13
13
|
|
|
14
|
+
__slots__ = []
|
|
15
|
+
|
|
14
16
|
BEGIN_PATTERN = r"CEPEL: DECOMP"
|
|
15
17
|
END_PATTERN = ""
|
|
16
18
|
|
|
@@ -34,6 +36,8 @@ class VersaoModeloLibs(Block):
|
|
|
34
36
|
título do arquivo.
|
|
35
37
|
"""
|
|
36
38
|
|
|
39
|
+
__slots__ = []
|
|
40
|
+
|
|
37
41
|
BEGIN_PATTERN = r"Nome do Modelo: DECOMP Versão:"
|
|
38
42
|
END_PATTERN = ""
|
|
39
43
|
|
|
@@ -13,12 +13,20 @@ from typing import IO, List
|
|
|
13
13
|
class BlocoRelatorioCustos(Block):
|
|
14
14
|
""" """
|
|
15
15
|
|
|
16
|
+
__slots__ = [
|
|
17
|
+
"__scenario_line",
|
|
18
|
+
"__dual_variables_line",
|
|
19
|
+
"__fcf_line",
|
|
20
|
+
"dados_cenario",
|
|
21
|
+
"data",
|
|
22
|
+
]
|
|
23
|
+
|
|
16
24
|
BEGIN_PATTERN = r" RELATORIO DAS VARIAVEIS DUAIS NO ESTAGIO"
|
|
17
25
|
END_PATTERN = "X----X-"
|
|
18
26
|
|
|
19
27
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
20
28
|
super().__init__(previous, next, data)
|
|
21
|
-
self.__scenario_line = Line([IntegerField(2, 44), IntegerField(
|
|
29
|
+
self.__scenario_line = Line([IntegerField(2, 44), IntegerField(4, 54)])
|
|
22
30
|
self.__dual_variables_line = Line(
|
|
23
31
|
[
|
|
24
32
|
LiteralField(14, 4),
|