inewave 1.11.1__py3-none-any.whl → 1.12.0__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 CHANGED
@@ -6,7 +6,7 @@ inewave é um módulo em Python para manipulação dos arquivos de entrada
6
6
  e saída do NEWAVE.
7
7
  """
8
8
 
9
- __version__ = "1.11.1"
9
+ __version__ = "1.12.0"
10
10
 
11
11
  from . import newave # noqa
12
12
  from . import nwlistcf # noqa
inewave/newave/dger.py CHANGED
@@ -10,6 +10,7 @@ from inewave.newave.modelos.dger import (
10
10
  BlocoAnoInicioEstudo,
11
11
  BlocoAproveitamentoBasePLsBackward,
12
12
  BlocoBid,
13
+ BlocoCalculaProdtMediaSin,
13
14
  BlocoCalculaVolInicial,
14
15
  BlocoCanalDesvio,
15
16
  BlocoConsideracaoDefluenciaMaxima,
@@ -28,6 +29,7 @@ from inewave.newave.modelos.dger import (
28
29
  BlocoDespachoAntecipadoGNL,
29
30
  BlocoDuracaoPeriodo,
30
31
  BlocoDuracaoPorPatamar,
32
+ BlocoEliminacaoCortes,
31
33
  BlocoElNino,
32
34
  BlocoEnso,
33
35
  BlocoEqualizacaoPenalInt,
@@ -95,8 +97,6 @@ from inewave.newave.modelos.dger import (
95
97
  BlocoSazonalizarVminP,
96
98
  BlocoSazonalizarVminT,
97
99
  BlocoSelecaoCortes,
98
- BlocoSementeBackward,
99
- BlocoSementeForward,
100
100
  BlocoSimFinalComData,
101
101
  BlocoTaxaDesconto,
102
102
  BlocoTendenciaHidrologica,
@@ -209,8 +209,8 @@ class Dger(SectionFile):
209
209
  BlocoConsideracaoDefluenciaMaxima,
210
210
  BlocoAproveitamentoBasePLsBackward,
211
211
  BlocoImpressaoEstadosGeracaoCortes,
212
- BlocoSementeForward,
213
- BlocoSementeBackward,
212
+ # BlocoSementeForward,
213
+ # BlocoSementeBackward,
214
214
  BlocoRestricaoLPPTurbinamentoMaximoREE,
215
215
  BlocoRestricaoLPPDefluenciaMaximaREE,
216
216
  BlocoRestricaoLPPTurbinamentoMaximoUHE,
@@ -223,6 +223,8 @@ class Dger(SectionFile):
223
223
  BlocoRHQ,
224
224
  BlocoRHV,
225
225
  BlocoTratamentoCortes,
226
+ BlocoEliminacaoCortes,
227
+ BlocoCalculaProdtMediaSin,
226
228
  ]
227
229
 
228
230
  @property
@@ -2210,48 +2212,48 @@ class Dger(SectionFile):
2210
2212
  if isinstance(b, BlocoImpressaoEstadosGeracaoCortes):
2211
2213
  b.valor = dado
2212
2214
 
2213
- @property
2214
- def semente_forward(self) -> Optional[int]:
2215
- """
2216
- Configuração da linha número 91 do arquivo `dger.dat`.
2215
+ # @property
2216
+ # def semente_forward(self) -> Optional[int]:
2217
+ # """
2218
+ # Configuração da linha número 91 do arquivo `dger.dat`.
2217
2219
 
2218
- :return: O valor do campo
2219
- :rtype: int | None
2220
- """
2221
- b = self.data.get_sections_of_type(BlocoSementeForward)
2222
- if isinstance(b, BlocoSementeForward):
2223
- return b.valor
2224
- return None
2220
+ # :return: O valor do campo
2221
+ # :rtype: int | None
2222
+ # """
2223
+ # b = self.data.get_sections_of_type(BlocoSementeForward)
2224
+ # if isinstance(b, BlocoSementeForward):
2225
+ # return b.valor
2226
+ # return None
2225
2227
 
2226
- @semente_forward.setter
2227
- def semente_forward(self, dado: int):
2228
- b = self.data.get_sections_of_type(BlocoSementeForward)
2229
- if isinstance(b, BlocoSementeForward):
2230
- b.valor = dado
2228
+ # @semente_forward.setter
2229
+ # def semente_forward(self, dado: int):
2230
+ # b = self.data.get_sections_of_type(BlocoSementeForward)
2231
+ # if isinstance(b, BlocoSementeForward):
2232
+ # b.valor = dado
2231
2233
 
2232
- @property
2233
- def semente_backward(self) -> Optional[int]:
2234
- """
2235
- Configuração da linha número 92 do arquivo `dger.dat`.
2234
+ # @property
2235
+ # def semente_backward(self) -> Optional[int]:
2236
+ # """
2237
+ # Configuração da linha número 92 do arquivo `dger.dat`.
2236
2238
 
2237
- :return: O valor do campo
2238
- :rtype: int | None
2239
- """
2240
- b = self.data.get_sections_of_type(BlocoSementeBackward)
2241
- if isinstance(b, BlocoSementeBackward):
2242
- return b.valor
2243
- return None
2239
+ # :return: O valor do campo
2240
+ # :rtype: int | None
2241
+ # """
2242
+ # b = self.data.get_sections_of_type(BlocoSementeBackward)
2243
+ # if isinstance(b, BlocoSementeBackward):
2244
+ # return b.valor
2245
+ # return None
2244
2246
 
2245
- @semente_backward.setter
2246
- def semente_backward(self, dado: int):
2247
- b = self.data.get_sections_of_type(BlocoSementeBackward)
2248
- if isinstance(b, BlocoSementeBackward):
2249
- b.valor = dado
2247
+ # @semente_backward.setter
2248
+ # def semente_backward(self, dado: int):
2249
+ # b = self.data.get_sections_of_type(BlocoSementeBackward)
2250
+ # if isinstance(b, BlocoSementeBackward):
2251
+ # b.valor = dado
2250
2252
 
2251
2253
  @property
2252
2254
  def restricao_lpp_turbinamento_maximo_ree(self) -> Optional[int]:
2253
2255
  """
2254
- Configuração da linha número 93 do arquivo `dger.dat`.
2256
+ Configuração da linha número 91 do arquivo `dger.dat`.
2255
2257
 
2256
2258
  :return: O valor do campo
2257
2259
  :rtype: int | None
@@ -2274,7 +2276,7 @@ class Dger(SectionFile):
2274
2276
  @property
2275
2277
  def restricao_lpp_defluencia_maxima_ree(self) -> Optional[int]:
2276
2278
  """
2277
- Configuração da linha número 94 do arquivo `dger.dat`.
2279
+ Configuração da linha número 92 do arquivo `dger.dat`.
2278
2280
 
2279
2281
  :return: O valor do campo
2280
2282
  :rtype: int | None
@@ -2293,7 +2295,7 @@ class Dger(SectionFile):
2293
2295
  @property
2294
2296
  def restricao_lpp_turbinamento_maximo_uhe(self) -> Optional[int]:
2295
2297
  """
2296
- Configuração da linha número 95 do arquivo `dger.dat`.
2298
+ Configuração da linha número 93 do arquivo `dger.dat`.
2297
2299
 
2298
2300
  :return: O valor do campo
2299
2301
  :rtype: int | None
@@ -2316,7 +2318,7 @@ class Dger(SectionFile):
2316
2318
  @property
2317
2319
  def restricao_lpp_defluencia_maxima_uhe(self) -> Optional[int]:
2318
2320
  """
2319
- Configuração da linha número 96 do arquivo `dger.dat`.
2321
+ Configuração da linha número 94 do arquivo `dger.dat`.
2320
2322
 
2321
2323
  :return: O valor do campo
2322
2324
  :rtype: int | None
@@ -2335,7 +2337,7 @@ class Dger(SectionFile):
2335
2337
  @property
2336
2338
  def restricoes_eletricas_especiais(self) -> Optional[int]:
2337
2339
  """
2338
- Configuração da linha número 97 do arquivo `dger.dat`.
2340
+ Configuração da linha número 95 do arquivo `dger.dat`.
2339
2341
 
2340
2342
  :return: O valor do campo
2341
2343
  :rtype: int | None
@@ -2354,7 +2356,7 @@ class Dger(SectionFile):
2354
2356
  @property
2355
2357
  def funcao_producao_uhe(self) -> Optional[int]:
2356
2358
  """
2357
- Configuração da linha número 98 do arquivo `dger.dat`.
2359
+ Configuração da linha número 96 do arquivo `dger.dat`.
2358
2360
 
2359
2361
  :return: O valor do campo
2360
2362
  :rtype: int | None
@@ -2373,7 +2375,7 @@ class Dger(SectionFile):
2373
2375
  @property
2374
2376
  def fcf_pos_estudo(self) -> Optional[int]:
2375
2377
  """
2376
- Configuração da linha número 99 do arquivo `dger.dat`.
2378
+ Configuração da linha número 97 do arquivo `dger.dat`.
2377
2379
 
2378
2380
  :return: O valor do campo
2379
2381
  :rtype: int | None
@@ -2392,7 +2394,7 @@ class Dger(SectionFile):
2392
2394
  @property
2393
2395
  def estacoes_bombeamento(self) -> Optional[int]:
2394
2396
  """
2395
- Configuração da linha número 100 do arquivo `dger.dat`.
2397
+ Configuração da linha número 98 do arquivo `dger.dat`.
2396
2398
 
2397
2399
  :return: O valor do campo
2398
2400
  :rtype: int | None
@@ -2411,7 +2413,7 @@ class Dger(SectionFile):
2411
2413
  @property
2412
2414
  def canal_desvio(self) -> Optional[int]:
2413
2415
  """
2414
- Configuração da linha número 101 do arquivo `dger.dat`.
2416
+ Configuração da linha número 99 do arquivo `dger.dat`.
2415
2417
 
2416
2418
  :return: O valor do campo
2417
2419
  :rtype: int | None
@@ -2430,7 +2432,7 @@ class Dger(SectionFile):
2430
2432
  @property
2431
2433
  def restricoes_rhq(self) -> Optional[int]:
2432
2434
  """
2433
- Configuração da linha número 102 do arquivo `dger.dat`.
2435
+ Configuração da linha número 100 do arquivo `dger.dat`.
2434
2436
 
2435
2437
  :return: O valor do campo
2436
2438
  :rtype: int | None
@@ -2449,7 +2451,7 @@ class Dger(SectionFile):
2449
2451
  @property
2450
2452
  def restricoes_rhv(self) -> Optional[int]:
2451
2453
  """
2452
- Configuração da linha número 103 do arquivo `dger.dat`.
2454
+ Configuração da linha número 101 do arquivo `dger.dat`.
2453
2455
 
2454
2456
  :return: O valor do campo
2455
2457
  :rtype: int | None
@@ -2468,7 +2470,7 @@ class Dger(SectionFile):
2468
2470
  @property
2469
2471
  def gera_arquivo_cortes_unico(self) -> Optional[int]:
2470
2472
  """
2471
- Configuração da linha número 104 do arquivo `dger.dat`.
2473
+ Configuração da linha número 102 do arquivo `dger.dat`.
2472
2474
 
2473
2475
  :return: O valor do campo
2474
2476
  :rtype: int | None
@@ -2487,7 +2489,7 @@ class Dger(SectionFile):
2487
2489
  @property
2488
2490
  def mantem_arquivos_cortes_por_periodo(self) -> Optional[int]:
2489
2491
  """
2490
- Configuração da linha número 104 do arquivo `dger.dat`.
2492
+ Configuração da linha número 102 do arquivo `dger.dat`.
2491
2493
 
2492
2494
  :return: O valor do campo
2493
2495
  :rtype: int | None
@@ -2506,7 +2508,7 @@ class Dger(SectionFile):
2506
2508
  @property
2507
2509
  def periodos_manutencao_cortes(self) -> List[Optional[int]]:
2508
2510
  """
2509
- Configuração da linha número 104 do arquivo `dger.dat`.
2511
+ Configuração da linha número 102 do arquivo `dger.dat`.
2510
2512
 
2511
2513
  :return: O valor do campo
2512
2514
  :rtype: list[int | None]
@@ -2521,3 +2523,41 @@ class Dger(SectionFile):
2521
2523
  b = self.data.get_sections_of_type(BlocoTratamentoCortes)
2522
2524
  if isinstance(b, BlocoTratamentoCortes):
2523
2525
  b.periodos_cortes = dado
2526
+
2527
+ @property
2528
+ def eliminacao_cortes(self) -> Optional[int]:
2529
+ """
2530
+ Configuração da linha número 103 do arquivo `dger.dat`.
2531
+
2532
+ :return: O valor do campo
2533
+ :rtype: int | None
2534
+ """
2535
+ b = self.data.get_sections_of_type(BlocoEliminacaoCortes)
2536
+ if isinstance(b, BlocoEliminacaoCortes):
2537
+ return b.valor
2538
+ return None
2539
+
2540
+ @eliminacao_cortes.setter
2541
+ def eliminacao_cortes(self, dado: int):
2542
+ b = self.data.get_sections_of_type(BlocoEliminacaoCortes)
2543
+ if isinstance(b, BlocoEliminacaoCortes):
2544
+ b.valor = dado
2545
+
2546
+ @property
2547
+ def calcula_prodt_media_sin(self) -> Optional[int]:
2548
+ """
2549
+ Configuração da linha número 104 do arquivo `dger.dat`.
2550
+
2551
+ :return: O valor do campo
2552
+ :rtype: int | None
2553
+ """
2554
+ b = self.data.get_sections_of_type(BlocoCalculaProdtMediaSin)
2555
+ if isinstance(b, BlocoCalculaProdtMediaSin):
2556
+ return b.valor
2557
+ return None
2558
+
2559
+ @calcula_prodt_media_sin.setter
2560
+ def calcula_prodt_media_sin(self, dado: int):
2561
+ b = self.data.get_sections_of_type(BlocoCalculaProdtMediaSin)
2562
+ if isinstance(b, BlocoCalculaProdtMediaSin):
2563
+ b.valor = dado
@@ -5261,3 +5261,100 @@ class BlocoTratamentoCortes(Section):
5261
5261
  elif len(v) < 3:
5262
5262
  v = v + [None] * (3 - len(v))
5263
5263
  self.data = self.data[0:3] + v + [self.data[-1]]
5264
+
5265
+
5266
+ class BlocoEliminacaoCortes(Section):
5267
+ """
5268
+ Bloco com a escolha de habilitar ou não eliminação de cortes
5269
+ """
5270
+
5271
+ __slots__ = ["__linha"]
5272
+
5273
+ def __init__(self, previous=None, next=None, data=None) -> None:
5274
+ super().__init__(previous, next, data)
5275
+ self.__linha = Line([
5276
+ LiteralField(24, 0),
5277
+ IntegerField(1, 24),
5278
+ LiteralField(148, 28),
5279
+ ])
5280
+
5281
+ def __eq__(self, o: object) -> bool:
5282
+ if not isinstance(o, BlocoEliminacaoCortes):
5283
+ return False
5284
+ bloco: BlocoEliminacaoCortes = o
5285
+ if not all([
5286
+ isinstance(self.data, list),
5287
+ isinstance(o.data, list),
5288
+ ]):
5289
+ return False
5290
+ else:
5291
+ return self.data == bloco.data
5292
+
5293
+ def read(self, file: IO, *args, **kwargs):
5294
+ self.data = self.__linha.read(file.readline())
5295
+
5296
+ def write(self, file: IO, *args, **kwargs):
5297
+ file.write(self.__linha.write(self.data))
5298
+
5299
+ @property
5300
+ def valor(self) -> Optional[int]:
5301
+ """
5302
+ O valor da opção configurada
5303
+
5304
+ :return: A consideração ou não de RHV
5305
+ :rtype: int | None
5306
+ """
5307
+ return self.data[1]
5308
+
5309
+ @valor.setter
5310
+ def valor(self, v: int):
5311
+ self.data[1] = v
5312
+
5313
+
5314
+ class BlocoCalculaProdtMediaSin(Section):
5315
+ """
5316
+ Bloco com a escolha de calcular ou não a produtibilidade
5317
+ média do SIN
5318
+ """
5319
+
5320
+ __slots__ = ["__linha"]
5321
+
5322
+ def __init__(self, previous=None, next=None, data=None) -> None:
5323
+ super().__init__(previous, next, data)
5324
+ self.__linha = Line([
5325
+ LiteralField(24, 0),
5326
+ IntegerField(1, 24),
5327
+ LiteralField(148, 28),
5328
+ ])
5329
+
5330
+ def __eq__(self, o: object) -> bool:
5331
+ if not isinstance(o, BlocoCalculaProdtMediaSin):
5332
+ return False
5333
+ bloco: BlocoCalculaProdtMediaSin = o
5334
+ if not all([
5335
+ isinstance(self.data, list),
5336
+ isinstance(o.data, list),
5337
+ ]):
5338
+ return False
5339
+ else:
5340
+ return self.data == bloco.data
5341
+
5342
+ def read(self, file: IO, *args, **kwargs):
5343
+ self.data = self.__linha.read(file.readline())
5344
+
5345
+ def write(self, file: IO, *args, **kwargs):
5346
+ file.write(self.__linha.write(self.data))
5347
+
5348
+ @property
5349
+ def valor(self) -> Optional[int]:
5350
+ """
5351
+ O valor da opção configurada
5352
+
5353
+ :return: A consideração ou não de RHV
5354
+ :rtype: int | None
5355
+ """
5356
+ return self.data[1]
5357
+
5358
+ @valor.setter
5359
+ def valor(self, v: int):
5360
+ self.data[1] = v
@@ -126,12 +126,12 @@ class BlocoPenalidades(Section):
126
126
  .iterrows()
127
127
  ):
128
128
  df_penalid = df.loc[df["variavel"] == linha_penalidade["variavel"]]
129
- if linha_penalidade["codigo_ree_submercado"] is not None:
129
+ if pd.notna(linha_penalidade["codigo_ree_submercado"]):
130
130
  df_penalid = df_penalid.loc[
131
131
  df_penalid["codigo_ree_submercado"]
132
132
  == linha_penalidade["codigo_ree_submercado"]
133
133
  ]
134
- if linha_penalidade["patamar_carga"] is not None:
134
+ if pd.notna(linha_penalidade["patamar_carga"]):
135
135
  df_penalid = df_penalid.loc[
136
136
  df_penalid["patamar_carga"]
137
137
  == linha_penalidade["patamar_carga"]
inewave/newave/parp.py CHANGED
@@ -214,12 +214,14 @@ class Parp(BlockFile):
214
214
  ano0 = df["ano"].unique().tolist()[0]
215
215
  filtro = (df["ano"] == ano0) & (df["ree"] == ree0)
216
216
  n_series = df.loc[filtro].shape[0]
217
+ novo_vetor_anos: List[int] = []
217
218
  for i, ree in enumerate(rees):
218
219
  i_i = i * int(linhas_por_ree)
219
220
  i_f = i_i + int(linhas_por_ree) - 1
220
- df.loc[i_i:i_f, "ano"] = converte_vetor_anos(
221
+ novo_vetor_anos += converte_vetor_anos(
221
222
  df.loc[i_i:i_f, "ano"].tolist(), n_series
222
223
  )
224
+ df["ano"] = novo_vetor_anos
223
225
  return df[["ree"] + cols]
224
226
 
225
227
  def __converte_ano_mes_data(
inewave/newave/parpeol.py CHANGED
@@ -197,12 +197,14 @@ class Parpeol(BlockFile):
197
197
  ano0 = df["ano"].unique().tolist()[0]
198
198
  filtro = (df["ano"] == ano0) & (df["uee"] == uee0)
199
199
  n_series = df.loc[filtro].shape[0]
200
+ novo_vetor_anos: List[int] = []
200
201
  for i, uee in enumerate(uees):
201
202
  i_i = i * int(linhas_por_uee)
202
203
  i_f = i_i + int(linhas_por_uee) - 1
203
- df.loc[i_i:i_f, "ano"] = converte_vetor_anos(
204
+ novo_vetor_anos += converte_vetor_anos(
204
205
  df.loc[i_i:i_f, "ano"].tolist(), n_series
205
206
  )
207
+ df["ano"] = novo_vetor_anos
206
208
  return df[["uee"] + cols]
207
209
 
208
210
  def __converte_ano_mes_data(
inewave/newave/parpvaz.py CHANGED
@@ -210,12 +210,14 @@ class Parpvaz(BlockFile):
210
210
  ano0 = df["ano"].unique().tolist()[0]
211
211
  filtro = (df["ano"] == ano0) & (df["uhe"] == uhe0)
212
212
  n_series = df.loc[filtro].shape[0]
213
+ novo_vetor_anos: List[int] = []
213
214
  for i, uhe in enumerate(uhes):
214
215
  i_i = i * int(linhas_por_uhe)
215
216
  i_f = i_i + int(linhas_por_uhe) - 1
216
- df.loc[i_i:i_f, "ano"] = converte_vetor_anos(
217
+ novo_vetor_anos += converte_vetor_anos(
217
218
  df.loc[i_i:i_f, "ano"].tolist(), n_series
218
219
  )
220
+ df["ano"] = novo_vetor_anos
219
221
  return df[["uhe"] + cols]
220
222
 
221
223
  def __converte_ano_mes_data(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: inewave
3
- Version: 1.11.1
3
+ Version: 1.12.0
4
4
  Summary: inewave
5
5
  Project-URL: Documentation, https://rjmalves.github.io/inewave/
6
6
  Project-URL: Repository, https://github.com/rjmalves/inewave/
@@ -1,4 +1,4 @@
1
- inewave/__init__.py,sha256=2IHp2QxtuVc-ienGQzsUaQ9pk72FXBIjOlMrwP6e1lc,236
1
+ inewave/__init__.py,sha256=Yf-HfaGKOfBaSkv6oMJsgzHs85ebfL3bdW-UVkP8heA,236
2
2
  inewave/config.py,sha256=fMgG2sqE_PNz30QCNxkgfPf78SEOAVfV07kGtO1bREE,1106
3
3
  inewave/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  inewave/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -30,7 +30,7 @@ inewave/newave/cortes.py,sha256=X7pi4vZppetafCCq0XU91WtkimK2mvGRZZIW0bR-P-Y,3059
30
30
  inewave/newave/cortesh.py,sha256=gL6z-WvPKKBscFq8KsvQO-ZAQNlVSAFkXx-owT2iKf4,12982
31
31
  inewave/newave/curva.py,sha256=vJYRIuBfn4UeACSxW2zphutmJCyjWNAlE2I_iWWxifQ,6744
32
32
  inewave/newave/cvar.py,sha256=2EHHWBEPin-0T_ArIZYVQJ2U32SkaPow6SP_LWIM4ko,2723
33
- inewave/newave/dger.py,sha256=y-IrKACUMj4cQJLBMAuk6a4ce479_vv2PWiGdzmxtYQ,80926
33
+ inewave/newave/dger.py,sha256=a65IiVqh_ryzFD7SY-U-w7ZswBK9kyVzf2a2QSiR3bw,82293
34
34
  inewave/newave/dsvagua.py,sha256=e4Kczvaj4kHkxBvBTiKFI69aCHY7MMrO2bCSTjtBJwI,1294
35
35
  inewave/newave/eafpast.py,sha256=uSKf6mWAERHED--eRGYcJTuEcYg-SGzolo5hCFlzLVg,1203
36
36
  inewave/newave/eco_fpha.py,sha256=-HCqfX-zLIBPPPGftLNffyDWBL91sEhA2vJjp5jhuWM,1491
@@ -65,9 +65,9 @@ inewave/newave/newavetim.py,sha256=_YCHr3e3xIBjRpR0ZYWVb0htnf5d52ZMmfZNJb-WJp4,1
65
65
  inewave/newave/nwv_avl_evap.py,sha256=9N4qE7dz2DyvZ86XI_OUDn96XLfXc9M6JS2qIQG6zLA,1261
66
66
  inewave/newave/nwv_cortes_evap.py,sha256=mKNZMTwqlrMuna3Nx1NE0LM-kutbba-pxkv4-rijvfc,1299
67
67
  inewave/newave/nwv_eco_evap.py,sha256=S-sek-rysBTH1v1o7X75-w-Y2h99kw3HX5YDjQpMRgY,1299
68
- inewave/newave/parp.py,sha256=L3a04zMhtGpyBV8myuEuzPolexKPQy-cmryuMd8vE7Y,18425
69
- inewave/newave/parpeol.py,sha256=ffJBcq2MPSXDHuX6G29MmssuaGhKIaHmb2Ar8e2kOqk,12841
70
- inewave/newave/parpvaz.py,sha256=uV-3GlUxLc50nJH8X1WjvUhzcCCTWmzYwcOYCzopceY,15859
68
+ inewave/newave/parp.py,sha256=Iaf4WEQKrBrTdD3-NsX90t3U-MbgI0cJvQs3KqD1vjw,18495
69
+ inewave/newave/parpeol.py,sha256=hrr2OmLtSHNLkVJuz6Yk4Cv98J7ED72eu7CH_9SH2Ig,12913
70
+ inewave/newave/parpvaz.py,sha256=vhEXtUSPf52fZfOoW6YQe1WGoYX4NWq_XLjlgunsXxc,15929
71
71
  inewave/newave/patamar.py,sha256=yvJmHMFuc8eB7w8sdnMyYU8ZUxUjGoPxqb3CjYP_Aj0,4371
72
72
  inewave/newave/penalid.py,sha256=BzpJADw24jsxV0UtemD8zUZOcduukV02qtVeIJeVmVQ,1234
73
73
  inewave/newave/perda.py,sha256=RBfGVQLTr1wJmUdO95md0XYaX_JE7VNmhsndT9ixpb0,364
@@ -106,7 +106,7 @@ inewave/newave/modelos/cortes.py,sha256=csy2I9o_TkQx8t4E3ugPndwRJJFIZIwusQiBswa3
106
106
  inewave/newave/modelos/cortesh.py,sha256=ayA-zWiBQ3o77J_wqehgODhl9wjeold84bYsKmKs-6g,31154
107
107
  inewave/newave/modelos/curva.py,sha256=bkxFD8_zhnMe-cBw61C9T4unWLnVfspNnjHTnUG7NVo,13680
108
108
  inewave/newave/modelos/cvar.py,sha256=Wu_qilEvzjT9MCoelMmiDztu9-yTI0eAC2fQMMN2E2M,7489
109
- inewave/newave/modelos/dger.py,sha256=p-4MO-S8YZ7SvVLWrROYzbwEKkMu64QHxAapwFd8ye8,142075
109
+ inewave/newave/modelos/dger.py,sha256=09qsnS3Skr6m403ftGZLjPJJmI8B3FosscW-5p277CY,144625
110
110
  inewave/newave/modelos/dsvagua.py,sha256=G_4PKZcQCF_vZMrBqQcnpH54edXhSEyDlHNy4aZoiIk,5592
111
111
  inewave/newave/modelos/eafpast.py,sha256=HFKpsMyoLGwQly95uHhsK2wnrBwL7v8auzaa-UbgP5k,3322
112
112
  inewave/newave/modelos/eco_fpha.py,sha256=q-b-ShvAW-RDpr7xlmhBvM9ixWF9DxqFvhxApA7oGdo,1646
@@ -138,7 +138,7 @@ inewave/newave/modelos/parp.py,sha256=3vtDfa9rJRo382U_L_UezMa8hk_QF-LftJm-OM-bbI
138
138
  inewave/newave/modelos/parpeol.py,sha256=Ym8_2gIdfvtXXMUS3oqtfWqcoQ6n9EUlCYwKS7atbqk,17501
139
139
  inewave/newave/modelos/parpvaz.py,sha256=SBB31Loq7ln_S5_iAls_ptGyPp6yWvG4kROEw7My9xY,24621
140
140
  inewave/newave/modelos/patamar.py,sha256=aHypOLc_rMEzSdPvlbm8HpthQS1-yq3VXmPg-0X5_nE,21311
141
- inewave/newave/modelos/penalid.py,sha256=h8SOCDZhFZGMxROWct3mWRAi2J10z6gcAlSVwSWPywc,5656
141
+ inewave/newave/modelos/penalid.py,sha256=rr07vSrePIGoKKXn_rbywKTkXrtDPnF7U1-lAfFKz8k,5652
142
142
  inewave/newave/modelos/perda.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
143
143
  inewave/newave/modelos/pmo.py,sha256=AN7sl0LcOHL0gutscC3Vgt418GTi_oUeLy9e0gAP_Zs,56493
144
144
  inewave/newave/modelos/re.py,sha256=NaEKlkNN1U-UphehyJcHsAsMnJXn1kQ_eMUHCvtFGdY,6438
@@ -541,7 +541,7 @@ inewave/nwlistop/modelos/blocos/usina.py,sha256=cQvLVtG1NC8y4lP_to6-YjAKQRGRlaxO
541
541
  inewave/nwlistop/modelos/blocos/valoresclassetermicaseriepatamar.py,sha256=0LV0JMFoiuNEQ3n-XVfG2T0sIq_33bnCt6gmwPOTql8,3283
542
542
  inewave/nwlistop/modelos/blocos/valoresserie.py,sha256=Q88QBoI3zyU7y0AvHBeSqDBEVAkb3rAa3XpxA51NbF8,2143
543
543
  inewave/nwlistop/modelos/blocos/valoresseriepatamar.py,sha256=xnRdor-_2VyR5EbWNSzU_hbABJFtfgKGlznbcRaslGg,2589
544
- inewave-1.11.1.dist-info/METADATA,sha256=uRk5q7CGAz0JAO7vSybVhMbY3k9FDfO7yr8itjWDXzc,3743
545
- inewave-1.11.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
546
- inewave-1.11.1.dist-info/licenses/LICENSE.md,sha256=0jOBL78mjzscN0-XI-6YtK1IqnODUbG85DaKAMH4XJ8,1070
547
- inewave-1.11.1.dist-info/RECORD,,
544
+ inewave-1.12.0.dist-info/METADATA,sha256=LNQKrDlKz03vE1GU2zZZj4F7xzLZocfpUtxJJ2eIFqA,3743
545
+ inewave-1.12.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
546
+ inewave-1.12.0.dist-info/licenses/LICENSE.md,sha256=0jOBL78mjzscN0-XI-6YtK1IqnODUbG85DaKAMH4XJ8,1070
547
+ inewave-1.12.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.27.0
2
+ Generator: hatchling 1.28.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any