inewave 1.6.0__py3-none-any.whl → 1.7.1__py3-none-any.whl
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.
- inewave/__init__.py +1 -1
- inewave/newave/__init__.py +10 -0
- inewave/newave/modelos/pmo.py +243 -3
- inewave/newave/modelos/vazinat.py +92 -0
- inewave/newave/pmo.py +82 -1
- inewave/newave/sistema.py +2 -2
- inewave/newave/vazinat.py +43 -0
- inewave/nwlistop/__init__.py +8 -1
- inewave/nwlistop/mediasmerc.py +20 -21
- inewave/nwlistop/mediasree.py +37 -0
- inewave/nwlistop/mediasrep.py +38 -0
- inewave/nwlistop/mediasrhq.py +38 -0
- inewave/nwlistop/mediasrhv.py +38 -0
- inewave/nwlistop/mediassin.py +19 -21
- inewave/nwlistop/mediasusie.py +38 -0
- inewave/nwlistop/mediasusih.py +37 -0
- inewave/nwlistop/mediasusit.py +37 -0
- inewave/nwlistop/modelos/mediasmerc.py +46 -34
- inewave/nwlistop/modelos/mediasree.py +52 -0
- inewave/nwlistop/modelos/mediasrep.py +52 -0
- inewave/nwlistop/modelos/mediasrhq.py +52 -0
- inewave/nwlistop/modelos/mediasrhv.py +52 -0
- inewave/nwlistop/modelos/mediassin.py +45 -29
- inewave/nwlistop/modelos/mediasusie.py +52 -0
- inewave/nwlistop/modelos/mediasusih.py +54 -0
- inewave/nwlistop/modelos/mediasusit.py +52 -0
- {inewave-1.6.0.dist-info → inewave-1.7.1.dist-info}/METADATA +1 -1
- {inewave-1.6.0.dist-info → inewave-1.7.1.dist-info}/RECORD +43 -20
- tests/mocks/arquivos/pmo.py +1741 -149
- tests/newave/test_pmo.py +59 -0
- tests/newave/test_vazinat.py +66 -0
- tests/nwlistop/test_mediasmerc.py +4 -8
- tests/nwlistop/test_mediasree.py +12 -0
- tests/nwlistop/test_mediasrep.py +12 -0
- tests/nwlistop/test_mediasrhq.py +12 -0
- tests/nwlistop/test_mediasrhv.py +11 -0
- tests/nwlistop/test_mediassin.py +4 -9
- tests/nwlistop/test_mediasusie.py +12 -0
- tests/nwlistop/test_mediasusih.py +11 -0
- tests/nwlistop/test_mediasusit.py +12 -0
- inewave/_utils/leituracsv.py +0 -57
- {inewave-1.6.0.dist-info → inewave-1.7.1.dist-info}/LICENSE.md +0 -0
- {inewave-1.6.0.dist-info → inewave-1.7.1.dist-info}/WHEEL +0 -0
- {inewave-1.6.0.dist-info → inewave-1.7.1.dist-info}/top_level.txt +0 -0
tests/newave/test_pmo.py
CHANGED
|
@@ -8,6 +8,7 @@ from inewave.newave.modelos.pmo import (
|
|
|
8
8
|
BlocoCustoOperacaoPMO,
|
|
9
9
|
BlocoCustoOperacaoTotalPMO,
|
|
10
10
|
BlocoProdutibilidadesConfiguracaoPMO,
|
|
11
|
+
BlocoEnergiaArmazenadaMaximaPMO,
|
|
11
12
|
BlocoEnergiaArmazenadaInicialPMO,
|
|
12
13
|
BlocoVolumeArmazenadoInicialPMO,
|
|
13
14
|
BlocoPenalidadeViolacaoOutrosUsosPMO,
|
|
@@ -17,6 +18,8 @@ from inewave.newave.modelos.pmo import (
|
|
|
17
18
|
BlocoPenalidadeViolacaoEvaporacaoPMO,
|
|
18
19
|
BlocoPenalidadeViolacaoTurbinamentoMaximoPMO,
|
|
19
20
|
BlocoPenalidadeViolacaoTurbinamentoMinimoPMO,
|
|
21
|
+
BlocoGeracaoMinimaUsinasTermicasPMO,
|
|
22
|
+
BlocoGeracaoMaximaUsinasTermicasPMO,
|
|
20
23
|
)
|
|
21
24
|
|
|
22
25
|
from inewave.newave import Pmo
|
|
@@ -37,6 +40,7 @@ from tests.mocks.arquivos.pmo import MockBlocoMARSPMOFinal
|
|
|
37
40
|
from tests.mocks.arquivos.pmo import MockBlocoRiscoDeficitENSPMO
|
|
38
41
|
from tests.mocks.arquivos.pmo import MockBlocoCustoOperacaoPMO
|
|
39
42
|
from tests.mocks.arquivos.pmo import MockBlocoCustoOperacaoTotalPMO
|
|
43
|
+
from tests.mocks.arquivos.pmo import MockBlocoEnergiaArmazenadaMaximaPMO
|
|
40
44
|
from tests.mocks.arquivos.pmo import MockBlocoEnergiaArmazenadaInicialPMO
|
|
41
45
|
from tests.mocks.arquivos.pmo import MockBlocoVolumeArmazenadoInicialPMO
|
|
42
46
|
from tests.mocks.arquivos.pmo import MockPenalidadeViolacaoOutrosUsosPMO
|
|
@@ -50,6 +54,10 @@ from tests.mocks.arquivos.pmo import (
|
|
|
50
54
|
from tests.mocks.arquivos.pmo import (
|
|
51
55
|
MockPenalidadeViolacaoTurbinamentoMaximoPMO,
|
|
52
56
|
)
|
|
57
|
+
from tests.mocks.arquivos.pmo import (
|
|
58
|
+
MockBlocoGeracaoMinimaUsinasTermicasPMO,
|
|
59
|
+
MockBlocoGeracaoMaximaUsinasTermicasPMO,
|
|
60
|
+
)
|
|
53
61
|
from tests.mocks.arquivos.pmo import MockPMO
|
|
54
62
|
|
|
55
63
|
ARQ_TESTE = "./tests/mocks/arquivos/__init__.py"
|
|
@@ -85,6 +93,23 @@ def test_eafpast_cfuga_medio():
|
|
|
85
93
|
assert b.data.iloc[-1, -1] == 409.13
|
|
86
94
|
|
|
87
95
|
|
|
96
|
+
def test_energia_armazenada_maxima():
|
|
97
|
+
m: MagicMock = mock_open(
|
|
98
|
+
read_data="".join(MockBlocoEnergiaArmazenadaMaximaPMO)
|
|
99
|
+
)
|
|
100
|
+
b = BlocoEnergiaArmazenadaMaximaPMO()
|
|
101
|
+
with patch("builtins.open", m):
|
|
102
|
+
with open("", "") as fp:
|
|
103
|
+
b.read(fp)
|
|
104
|
+
|
|
105
|
+
assert b.data.shape[0] == 720
|
|
106
|
+
assert b.data.shape[1] == 3
|
|
107
|
+
assert b.data.iloc[0, 0] == "SUDESTE"
|
|
108
|
+
assert b.data.iloc[0, 1] == 1
|
|
109
|
+
assert b.data.iloc[0, 2] == 50969.1
|
|
110
|
+
assert b.data.iloc[-1, -1] == 786.0
|
|
111
|
+
|
|
112
|
+
|
|
88
113
|
def test_energia_armazenada_inicial():
|
|
89
114
|
m: MagicMock = mock_open(
|
|
90
115
|
read_data="".join(MockBlocoEnergiaArmazenadaInicialPMO)
|
|
@@ -319,6 +344,34 @@ def test_leitura_penalidades_violacao_turbinamento_maximo():
|
|
|
319
344
|
assert b.data.iloc[-1, -1] == 842.25
|
|
320
345
|
|
|
321
346
|
|
|
347
|
+
def test_leitura_geracao_termica_minima_usina():
|
|
348
|
+
m: MagicMock = mock_open(
|
|
349
|
+
read_data="".join(MockBlocoGeracaoMinimaUsinasTermicasPMO)
|
|
350
|
+
)
|
|
351
|
+
b = BlocoGeracaoMinimaUsinasTermicasPMO()
|
|
352
|
+
with patch("builtins.open", m):
|
|
353
|
+
with open("", "") as fp:
|
|
354
|
+
b.read(fp)
|
|
355
|
+
|
|
356
|
+
assert b.data.shape == (420, 4)
|
|
357
|
+
assert b.data.iloc[-1, -2] == 0.00
|
|
358
|
+
assert b.data.iloc[-1, -1] == datetime(2027, 12, 1)
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
def test_leitura_geracao_termica_maxima_usina():
|
|
362
|
+
m: MagicMock = mock_open(
|
|
363
|
+
read_data="".join(MockBlocoGeracaoMaximaUsinasTermicasPMO)
|
|
364
|
+
)
|
|
365
|
+
b = BlocoGeracaoMaximaUsinasTermicasPMO()
|
|
366
|
+
with patch("builtins.open", m):
|
|
367
|
+
with open("", "") as fp:
|
|
368
|
+
b.read(fp)
|
|
369
|
+
|
|
370
|
+
assert b.data.shape == (60, 4)
|
|
371
|
+
assert b.data.iloc[-1, -2] == 558.02
|
|
372
|
+
assert b.data.iloc[-1, -1] == datetime(2027, 12, 1)
|
|
373
|
+
|
|
374
|
+
|
|
322
375
|
def test_atributos_encontrados_pmo():
|
|
323
376
|
m: MagicMock = mock_open(read_data="".join(MockPMO))
|
|
324
377
|
with patch("builtins.open", m):
|
|
@@ -338,6 +391,7 @@ def test_atributos_encontrados_pmo():
|
|
|
338
391
|
assert pmo.custo_operacao_total is not None
|
|
339
392
|
assert pmo.desvio_custo_operacao_total is not None
|
|
340
393
|
assert pmo.produtibilidades_equivalentes is not None
|
|
394
|
+
assert pmo.energia_armazenada_maxima is not None
|
|
341
395
|
assert pmo.energia_armazenada_inicial is not None
|
|
342
396
|
assert pmo.volume_armazenado_inicial is not None
|
|
343
397
|
assert pmo.penalidade_violacao_outros_usos is not None
|
|
@@ -347,6 +401,8 @@ def test_atributos_encontrados_pmo():
|
|
|
347
401
|
assert pmo.penalidade_violacao_evaporacao is not None
|
|
348
402
|
assert pmo.penalidade_violacao_turbinamento_maximo is not None
|
|
349
403
|
assert pmo.penalidade_violacao_turbinamento_minimo is not None
|
|
404
|
+
assert pmo.geracao_minima_usinas_termicas is not None
|
|
405
|
+
assert pmo.geracao_maxima_usinas_termicas is not None
|
|
350
406
|
|
|
351
407
|
|
|
352
408
|
def test_atributos_nao_encontrados_pmo():
|
|
@@ -358,6 +414,7 @@ def test_atributos_nao_encontrados_pmo():
|
|
|
358
414
|
assert pmo.custo_operacao_total is None
|
|
359
415
|
assert pmo.desvio_custo_operacao_total is None
|
|
360
416
|
assert pmo.produtibilidades_equivalentes is None
|
|
417
|
+
assert pmo.energia_armazenada_maxima is None
|
|
361
418
|
assert pmo.energia_armazenada_inicial is None
|
|
362
419
|
assert pmo.volume_armazenado_inicial is None
|
|
363
420
|
assert pmo.penalidade_violacao_outros_usos is None
|
|
@@ -367,6 +424,8 @@ def test_atributos_nao_encontrados_pmo():
|
|
|
367
424
|
assert pmo.penalidade_violacao_evaporacao is None
|
|
368
425
|
assert pmo.penalidade_violacao_turbinamento_maximo is None
|
|
369
426
|
assert pmo.penalidade_violacao_turbinamento_minimo is None
|
|
427
|
+
assert pmo.geracao_minima_usinas_termicas is None
|
|
428
|
+
assert pmo.geracao_maxima_usinas_termicas is None
|
|
370
429
|
|
|
371
430
|
|
|
372
431
|
def test_eq_pmo():
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
from inewave.newave.modelos.vazinat import SecaoDadosVazinat
|
|
2
|
+
from inewave.newave.vazinat import Vazinat
|
|
3
|
+
from inewave.config import MAX_ANOS_HISTORICO
|
|
4
|
+
|
|
5
|
+
from tests.mocks.mock_open import mock_open
|
|
6
|
+
from unittest.mock import MagicMock, patch
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
ARQ_TESTE = "./tests/mocks/arquivos/vazinat.dat"
|
|
10
|
+
|
|
11
|
+
NUM_CONFIGURACOES = 1
|
|
12
|
+
NUM_UHES = 164
|
|
13
|
+
ANO_INICIO_HISTORICO = 1931
|
|
14
|
+
NUM_ENTRADAS = NUM_CONFIGURACOES * NUM_UHES * 12 * MAX_ANOS_HISTORICO
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def test_secao_vazinat():
|
|
18
|
+
r = SecaoDadosVazinat()
|
|
19
|
+
with open(ARQ_TESTE, "rb") as fp:
|
|
20
|
+
r.read(
|
|
21
|
+
fp,
|
|
22
|
+
numero_uhes=NUM_UHES,
|
|
23
|
+
ano_inicio_historico=ANO_INICIO_HISTORICO,
|
|
24
|
+
numero_configuracoes=NUM_CONFIGURACOES,
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
assert len(r.data) == NUM_ENTRADAS
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def test_atributos_encontrados_vazinat():
|
|
31
|
+
h = Vazinat.read(
|
|
32
|
+
ARQ_TESTE,
|
|
33
|
+
numero_uhes=NUM_UHES,
|
|
34
|
+
ano_inicio_historico=ANO_INICIO_HISTORICO,
|
|
35
|
+
numero_configuracoes=NUM_CONFIGURACOES,
|
|
36
|
+
)
|
|
37
|
+
assert h.series is not None
|
|
38
|
+
assert h.series.isna().sum().sum() == 0
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def test_atributos_nao_encontrados_vazinat():
|
|
42
|
+
m: MagicMock = mock_open(read_data="")
|
|
43
|
+
with patch("builtins.open", m):
|
|
44
|
+
h = Vazinat.read(
|
|
45
|
+
ARQ_TESTE,
|
|
46
|
+
numero_uhes=NUM_UHES,
|
|
47
|
+
ano_inicio_historico=ANO_INICIO_HISTORICO,
|
|
48
|
+
numero_configuracoes=NUM_CONFIGURACOES,
|
|
49
|
+
)
|
|
50
|
+
assert h.series.isna().sum().sum() == NUM_ENTRADAS
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def test_eq_vazinat():
|
|
54
|
+
h1 = Vazinat.read(
|
|
55
|
+
ARQ_TESTE,
|
|
56
|
+
numero_uhes=NUM_UHES,
|
|
57
|
+
ano_inicio_historico=ANO_INICIO_HISTORICO,
|
|
58
|
+
numero_configuracoes=NUM_CONFIGURACOES,
|
|
59
|
+
)
|
|
60
|
+
h2 = Vazinat.read(
|
|
61
|
+
ARQ_TESTE,
|
|
62
|
+
numero_uhes=NUM_UHES,
|
|
63
|
+
ano_inicio_historico=ANO_INICIO_HISTORICO,
|
|
64
|
+
numero_configuracoes=NUM_CONFIGURACOES,
|
|
65
|
+
)
|
|
66
|
+
assert h1 == h2
|
|
@@ -3,15 +3,11 @@ from inewave.nwlistop.mediasmerc import Mediasmerc
|
|
|
3
3
|
import pandas as pd # type: ignore
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
ARQ_TESTE = "tests/_arquivos/MEDIAS-MERC.CSV"
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
def test_eq_mediasmerc():
|
|
10
|
-
|
|
10
|
+
leitor = Mediasmerc.read(ARQ_TESTE)
|
|
11
|
+
leitor2 = Mediasmerc.read(ARQ_TESTE)
|
|
11
12
|
assert leitor == leitor2
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
def test_neq_mediasmerc():
|
|
15
|
-
leitor2 = Mediasmerc.le_arquivo("tests/_arquivos")
|
|
16
|
-
leitor2.medias = pd.DataFrame()
|
|
17
|
-
assert leitor != leitor2
|
|
13
|
+
assert leitor.valores.shape == (228, 54)
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Rotinas de testes associadas ao arquivo MEDIAS-REE.CSV do NWLISTOP
|
|
2
|
+
from inewave.nwlistop.mediasree import Mediasree
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
ARQ_TESTE = "tests/_arquivos/MEDIAS-REE.CSV"
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def test_eq_mediasree():
|
|
9
|
+
leitor = Mediasree.read(ARQ_TESTE)
|
|
10
|
+
leitor2 = Mediasree.read(ARQ_TESTE)
|
|
11
|
+
assert leitor == leitor2
|
|
12
|
+
assert leitor.valores.shape == (720, 49)
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Rotinas de testes associadas ao arquivo MEDIAS-REP.CSV do NWLISTOP
|
|
2
|
+
from inewave.nwlistop.mediasrep import Mediasrep
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
ARQ_TESTE = "tests/_arquivos/MEDIAS-REP.CSV"
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def test_eq_mediasrep():
|
|
9
|
+
leitor = Mediasrep.read(ARQ_TESTE)
|
|
10
|
+
leitor2 = Mediasrep.read(ARQ_TESTE)
|
|
11
|
+
assert leitor == leitor2
|
|
12
|
+
assert leitor.valores.shape == (0, 2)
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Rotinas de testes associadas ao arquivo MEDIAS-RHQ.CSV do NWLISTOP
|
|
2
|
+
from inewave.nwlistop.mediasrhq import Mediasrhq
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
ARQ_TESTE = "tests/_arquivos/MEDIAS-RHQ.CSV"
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def test_eq_mediasrhq():
|
|
9
|
+
leitor = Mediasrhq.read(ARQ_TESTE)
|
|
10
|
+
leitor2 = Mediasrhq.read(ARQ_TESTE)
|
|
11
|
+
assert leitor == leitor2
|
|
12
|
+
assert leitor.valores.shape == (0, 2)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Rotinas de testes associadas ao arquivo MEDIAS-RHV.CSV do NWLISTOP
|
|
2
|
+
from inewave.nwlistop.mediasrhv import Mediasrhv
|
|
3
|
+
|
|
4
|
+
ARQ_TESTE = "tests/_arquivos/MEDIAS-RHV.CSV"
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def test_eq_mediasrhv():
|
|
8
|
+
leitor = Mediasrhv.read(ARQ_TESTE)
|
|
9
|
+
leitor2 = Mediasrhv.read(ARQ_TESTE)
|
|
10
|
+
assert leitor == leitor2
|
|
11
|
+
assert leitor.valores.shape == (0, 2)
|
tests/nwlistop/test_mediassin.py
CHANGED
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
# Rotinas de testes associadas ao arquivo MEDIAS-SIN.CSV do NWLISTOP
|
|
2
2
|
from inewave.nwlistop.mediassin import Mediassin
|
|
3
|
-
import pandas as pd # type: ignore
|
|
4
3
|
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
ARQ_TESTE = "tests/_arquivos/MEDIAS-SIN.CSV"
|
|
7
6
|
|
|
8
7
|
|
|
9
8
|
def test_eq_mediassin():
|
|
10
|
-
|
|
9
|
+
leitor = Mediassin.read(ARQ_TESTE)
|
|
10
|
+
leitor2 = Mediassin.read(ARQ_TESTE)
|
|
11
11
|
assert leitor == leitor2
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
def test_neq_mediassin():
|
|
15
|
-
leitor2 = Mediassin.le_arquivo("tests/_arquivos")
|
|
16
|
-
leitor2.medias = pd.DataFrame()
|
|
17
|
-
assert leitor != leitor2
|
|
12
|
+
assert leitor.valores.shape == (57, 55)
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Rotinas de testes associadas ao arquivo MEDIAS-USIE.CSV do NWLISTOP
|
|
2
|
+
from inewave.nwlistop.mediasusie import Mediasusie
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
ARQ_TESTE = "tests/_arquivos/MEDIAS-USIE.CSV"
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def test_eq_mediasusie():
|
|
9
|
+
leitor = Mediasusie.read(ARQ_TESTE)
|
|
10
|
+
leitor2 = Mediasusie.read(ARQ_TESTE)
|
|
11
|
+
assert leitor == leitor2
|
|
12
|
+
assert leitor.valores.shape == (0, 2)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Rotinas de testes associadas ao arquivo MEDIAS-UISH.CSV do NWLISTOP
|
|
2
|
+
from inewave.nwlistop.mediasusih import Mediasusih
|
|
3
|
+
|
|
4
|
+
ARQ_TESTE = "tests/_arquivos/MEDIAS-USIH.CSV"
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def test_eq_mediasusih():
|
|
8
|
+
leitor = Mediasusih.read(ARQ_TESTE)
|
|
9
|
+
leitor2 = Mediasusih.read(ARQ_TESTE)
|
|
10
|
+
assert leitor == leitor2
|
|
11
|
+
assert leitor.valores.shape == (9840, 30)
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Rotinas de testes associadas ao arquivo MEDIAS-USIT.CSV do NWLISTOP
|
|
2
|
+
from inewave.nwlistop.mediasusit import Mediasusit
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
ARQ_TESTE = "tests/_arquivos/MEDIAS-USIT.CSV"
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def test_eq_mediasusit():
|
|
9
|
+
leitor = Mediasusit.read(ARQ_TESTE)
|
|
10
|
+
leitor2 = Mediasusit.read(ARQ_TESTE)
|
|
11
|
+
assert leitor == leitor2
|
|
12
|
+
assert leitor.valores.shape == (7680, 5)
|
inewave/_utils/leituracsv.py
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import os
|
|
2
|
-
from abc import abstractmethod
|
|
3
|
-
from traceback import print_exc
|
|
4
|
-
import pandas as pd # type: ignore
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class LeituraCSV:
|
|
8
|
-
"""
|
|
9
|
-
Classe com utilidades gerais para leitura de arquivos
|
|
10
|
-
.csv do NEWAVE.
|
|
11
|
-
"""
|
|
12
|
-
|
|
13
|
-
def __init__(self, diretorio: str):
|
|
14
|
-
self._diretorio = diretorio
|
|
15
|
-
self._dados = pd.DataFrame()
|
|
16
|
-
|
|
17
|
-
def _le_tabela_arquivo(self, caminho: str):
|
|
18
|
-
"""
|
|
19
|
-
Faz a leitura dos blocos de dados do arquivo.
|
|
20
|
-
"""
|
|
21
|
-
self._dados = pd.read_csv(
|
|
22
|
-
caminho, sep=",", encoding="utf-8", index_col=1
|
|
23
|
-
)
|
|
24
|
-
|
|
25
|
-
def _le_arquivo_em_diretorio(
|
|
26
|
-
self, diretorio: str, nome_arquivo: str
|
|
27
|
-
) -> None:
|
|
28
|
-
"""
|
|
29
|
-
Faz a leitura do arquivo em um diretorio.
|
|
30
|
-
"""
|
|
31
|
-
try:
|
|
32
|
-
caminho = os.path.join(diretorio, nome_arquivo)
|
|
33
|
-
self._le_tabela_arquivo(caminho)
|
|
34
|
-
self.processa_dados_lidos()
|
|
35
|
-
except Exception:
|
|
36
|
-
print_exc()
|
|
37
|
-
|
|
38
|
-
def le_arquivo(self, nome_arquivo: str) -> pd.DataFrame:
|
|
39
|
-
"""
|
|
40
|
-
Método para ler um arquivo e retornar o objeto
|
|
41
|
-
devido da classe em particular.
|
|
42
|
-
"""
|
|
43
|
-
self._le_arquivo_em_diretorio(self._diretorio, nome_arquivo)
|
|
44
|
-
return self._dados
|
|
45
|
-
|
|
46
|
-
@abstractmethod
|
|
47
|
-
def processa_dados_lidos(self):
|
|
48
|
-
""" """
|
|
49
|
-
pass
|
|
50
|
-
|
|
51
|
-
@property
|
|
52
|
-
def dados(self) -> pd.DataFrame:
|
|
53
|
-
"""
|
|
54
|
-
Dados de leitura obtidos pelo blocos, organizados
|
|
55
|
-
para realizar a criação do objeto associado.
|
|
56
|
-
"""
|
|
57
|
-
return self._dados
|
|
File without changes
|
|
File without changes
|
|
File without changes
|