inewave 1.7.3__py3-none-any.whl → 1.7.5__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.
Files changed (229) hide show
  1. inewave/__init__.py +1 -1
  2. inewave/newave/modelos/adterm.py +7 -0
  3. inewave/newave/modelos/agrint.py +2 -0
  4. inewave/newave/modelos/arquivos.py +2 -0
  5. inewave/newave/modelos/avl_cortesfpha_nwv.py +4 -0
  6. inewave/newave/modelos/avl_desvfpha_s.py +2 -0
  7. inewave/newave/modelos/avl_desvfpha_v_q.py +2 -0
  8. inewave/newave/modelos/blocos/tabelacsv.py +2 -0
  9. inewave/newave/modelos/blocos/versaomodelo.py +4 -0
  10. inewave/newave/modelos/cadic.py +2 -0
  11. inewave/newave/modelos/caso.py +4 -0
  12. inewave/newave/modelos/clast.py +2 -0
  13. inewave/newave/modelos/confhd.py +2 -0
  14. inewave/newave/modelos/conft.py +2 -0
  15. inewave/newave/modelos/cortes.py +14 -0
  16. inewave/newave/modelos/cortesh.py +20 -0
  17. inewave/newave/modelos/curva.py +2 -0
  18. inewave/newave/modelos/cvar.py +2 -0
  19. inewave/newave/modelos/dger.py +208 -0
  20. inewave/newave/modelos/dsvagua.py +2 -0
  21. inewave/newave/modelos/eafpast.py +2 -0
  22. inewave/newave/modelos/enavazb.py +2 -0
  23. inewave/newave/modelos/enavazf.py +2 -0
  24. inewave/newave/modelos/energiab.py +2 -0
  25. inewave/newave/modelos/energiaf.py +2 -0
  26. inewave/newave/modelos/energias.py +48 -10
  27. inewave/newave/modelos/engnat.py +2 -0
  28. inewave/newave/modelos/exph.py +2 -0
  29. inewave/newave/modelos/expt.py +2 -0
  30. inewave/newave/modelos/forward.py +27 -0
  31. inewave/newave/modelos/forwarh.py +2 -0
  32. inewave/newave/modelos/ghmin.py +2 -0
  33. inewave/newave/modelos/hidr.py +2 -0
  34. inewave/newave/modelos/manutt.py +2 -0
  35. inewave/newave/modelos/modif.py +32 -0
  36. inewave/newave/modelos/newavetim.py +2 -0
  37. inewave/newave/modelos/nwv_avl_evap.py +2 -0
  38. inewave/newave/modelos/nwv_cortes_evap.py +2 -0
  39. inewave/newave/modelos/nwv_eco_evap.py +2 -0
  40. inewave/newave/modelos/parp.py +45 -0
  41. inewave/newave/modelos/parpeol.py +23 -0
  42. inewave/newave/modelos/parpvaz.py +37 -0
  43. inewave/newave/modelos/patamar.py +28 -0
  44. inewave/newave/modelos/penalid.py +2 -0
  45. inewave/newave/modelos/pmo.py +69 -2
  46. inewave/newave/modelos/re.py +2 -0
  47. inewave/newave/modelos/ree.py +2 -0
  48. inewave/newave/modelos/selcor.py +5 -3
  49. inewave/newave/modelos/shist.py +10 -6
  50. inewave/newave/modelos/sistema.py +10 -0
  51. inewave/newave/modelos/term.py +2 -0
  52. inewave/newave/modelos/vazaob.py +2 -0
  53. inewave/newave/modelos/vazaof.py +2 -0
  54. inewave/newave/modelos/vazaos.py +2 -0
  55. inewave/newave/modelos/vazinat.py +2 -0
  56. inewave/newave/modelos/vazoes.py +2 -0
  57. inewave/newave/modelos/vazpast.py +2 -0
  58. inewave/newave/modelos/volref_saz.py +2 -0
  59. inewave/newave/modif.py +2 -0
  60. inewave/newave/vazoes.py +2 -0
  61. inewave/nwlistcf/modelos/arquivos.py +2 -0
  62. inewave/nwlistcf/modelos/caso.py +2 -0
  63. inewave/nwlistcf/modelos/estados.py +10 -0
  64. inewave/nwlistcf/modelos/nwlistcfdat.py +2 -0
  65. inewave/nwlistcf/modelos/nwlistcfrel.py +2 -0
  66. inewave/nwlistop/modelos/arquivos/arquivoclassetermicasubmercadopatamar.py +2 -0
  67. inewave/nwlistop/modelos/arquivos/arquivoestacaobombeamentopatamar.py +2 -0
  68. inewave/nwlistop/modelos/arquivos/arquivoparsubmercadopatamar.py +2 -0
  69. inewave/nwlistop/modelos/arquivos/arquivoree.py +2 -0
  70. inewave/nwlistop/modelos/arquivos/arquivoreepatamar.py +2 -0
  71. inewave/nwlistop/modelos/arquivos/arquivorestricao.py +2 -0
  72. inewave/nwlistop/modelos/arquivos/arquivorestricaopatamar.py +2 -0
  73. inewave/nwlistop/modelos/arquivos/arquivosin.py +2 -0
  74. inewave/nwlistop/modelos/arquivos/arquivosinpatamar.py +2 -0
  75. inewave/nwlistop/modelos/arquivos/arquivosubmercado.py +2 -0
  76. inewave/nwlistop/modelos/arquivos/arquivosubmercadopatamar.py +2 -0
  77. inewave/nwlistop/modelos/arquivos/arquivousina.py +2 -0
  78. inewave/nwlistop/modelos/arquivos/arquivousinapatamar.py +2 -0
  79. inewave/nwlistop/modelos/blocos/estacaobombeamento.py +2 -0
  80. inewave/nwlistop/modelos/blocos/parsubmercados.py +2 -0
  81. inewave/nwlistop/modelos/blocos/ree.py +2 -0
  82. inewave/nwlistop/modelos/blocos/restricao.py +2 -0
  83. inewave/nwlistop/modelos/blocos/submercado.py +2 -0
  84. inewave/nwlistop/modelos/blocos/usina.py +2 -0
  85. inewave/nwlistop/modelos/blocos/valoresclassetermicaseriepatamar.py +8 -0
  86. inewave/nwlistop/modelos/blocos/valoresserie.py +2 -0
  87. inewave/nwlistop/modelos/blocos/valoresseriepatamar.py +2 -0
  88. inewave/nwlistop/modelos/c_v_rhq.py +2 -0
  89. inewave/nwlistop/modelos/c_v_rhq_s.py +2 -0
  90. inewave/nwlistop/modelos/c_v_rhv.py +2 -0
  91. inewave/nwlistop/modelos/c_v_rhv_s.py +2 -0
  92. inewave/nwlistop/modelos/cbomb.py +2 -0
  93. inewave/nwlistop/modelos/cbombsin.py +2 -0
  94. inewave/nwlistop/modelos/cdef.py +2 -0
  95. inewave/nwlistop/modelos/cdefsin.py +2 -0
  96. inewave/nwlistop/modelos/celetricas.py +2 -0
  97. inewave/nwlistop/modelos/cmarg.py +2 -0
  98. inewave/nwlistop/modelos/cmargmed.py +2 -0
  99. inewave/nwlistop/modelos/coper.py +2 -0
  100. inewave/nwlistop/modelos/corteolm.py +2 -0
  101. inewave/nwlistop/modelos/cterm.py +2 -0
  102. inewave/nwlistop/modelos/ctermsin.py +2 -0
  103. inewave/nwlistop/modelos/def.py +2 -0
  104. inewave/nwlistop/modelos/defsin.py +2 -0
  105. inewave/nwlistop/modelos/deletricas.py +2 -0
  106. inewave/nwlistop/modelos/depminuh.py +2 -0
  107. inewave/nwlistop/modelos/desvuh.py +2 -0
  108. inewave/nwlistop/modelos/dflppdfmaxm.py +2 -0
  109. inewave/nwlistop/modelos/dflpptbmaxm.py +2 -0
  110. inewave/nwlistop/modelos/dfphauh.py +2 -0
  111. inewave/nwlistop/modelos/dlppdfmax.py +2 -0
  112. inewave/nwlistop/modelos/dlppdfmaxs.py +2 -0
  113. inewave/nwlistop/modelos/dlpptbmax.py +2 -0
  114. inewave/nwlistop/modelos/dlpptbmaxs.py +2 -0
  115. inewave/nwlistop/modelos/dnegevap.py +2 -0
  116. inewave/nwlistop/modelos/dposevap.py +2 -0
  117. inewave/nwlistop/modelos/dtbmax.py +2 -0
  118. inewave/nwlistop/modelos/dtbmin.py +2 -0
  119. inewave/nwlistop/modelos/dvazmax.py +2 -0
  120. inewave/nwlistop/modelos/eaf.py +2 -0
  121. inewave/nwlistop/modelos/eafb.py +2 -0
  122. inewave/nwlistop/modelos/eafbm.py +2 -0
  123. inewave/nwlistop/modelos/eafbsin.py +2 -0
  124. inewave/nwlistop/modelos/eafm.py +2 -0
  125. inewave/nwlistop/modelos/earmf.py +2 -0
  126. inewave/nwlistop/modelos/earmfm.py +2 -0
  127. inewave/nwlistop/modelos/earmfp.py +2 -0
  128. inewave/nwlistop/modelos/earmfpm.py +2 -0
  129. inewave/nwlistop/modelos/earmfpsin.py +2 -0
  130. inewave/nwlistop/modelos/earmfsin.py +2 -0
  131. inewave/nwlistop/modelos/edesvc.py +2 -0
  132. inewave/nwlistop/modelos/edesvcm.py +2 -0
  133. inewave/nwlistop/modelos/edesvcsin.py +2 -0
  134. inewave/nwlistop/modelos/evapo.py +2 -0
  135. inewave/nwlistop/modelos/evapom.py +2 -0
  136. inewave/nwlistop/modelos/evaporsin.py +2 -0
  137. inewave/nwlistop/modelos/evert.py +2 -0
  138. inewave/nwlistop/modelos/evertm.py +2 -0
  139. inewave/nwlistop/modelos/evertsin.py +2 -0
  140. inewave/nwlistop/modelos/exces.py +2 -0
  141. inewave/nwlistop/modelos/excessin.py +2 -0
  142. inewave/nwlistop/modelos/form_rhq.py +2 -0
  143. inewave/nwlistop/modelos/form_rhv.py +2 -0
  144. inewave/nwlistop/modelos/fteolm.py +2 -0
  145. inewave/nwlistop/modelos/fteolsin.py +2 -0
  146. inewave/nwlistop/modelos/geol.py +2 -0
  147. inewave/nwlistop/modelos/geolm.py +2 -0
  148. inewave/nwlistop/modelos/geolsin.py +2 -0
  149. inewave/nwlistop/modelos/gh_fphexat.py +2 -0
  150. inewave/nwlistop/modelos/ghidr.py +2 -0
  151. inewave/nwlistop/modelos/ghidrm.py +2 -0
  152. inewave/nwlistop/modelos/ghidrsin.py +2 -0
  153. inewave/nwlistop/modelos/ghiduh.py +2 -0
  154. inewave/nwlistop/modelos/ghmax.py +2 -0
  155. inewave/nwlistop/modelos/ghmax_fpha.py +2 -0
  156. inewave/nwlistop/modelos/ghmax_fphc.py +2 -0
  157. inewave/nwlistop/modelos/ghmaxm.py +2 -0
  158. inewave/nwlistop/modelos/ghmaxmr.py +2 -0
  159. inewave/nwlistop/modelos/ghmaxr.py +2 -0
  160. inewave/nwlistop/modelos/ghmaxrsin.py +2 -0
  161. inewave/nwlistop/modelos/ghmaxsin.py +2 -0
  162. inewave/nwlistop/modelos/ghtot.py +2 -0
  163. inewave/nwlistop/modelos/ghtotm.py +2 -0
  164. inewave/nwlistop/modelos/ghtotsin.py +2 -0
  165. inewave/nwlistop/modelos/gtert.py +2 -0
  166. inewave/nwlistop/modelos/gttot.py +2 -0
  167. inewave/nwlistop/modelos/gttotsin.py +2 -0
  168. inewave/nwlistop/modelos/hjus.py +2 -0
  169. inewave/nwlistop/modelos/hliq.py +2 -0
  170. inewave/nwlistop/modelos/hmont.py +2 -0
  171. inewave/nwlistop/modelos/intercambio.py +2 -0
  172. inewave/nwlistop/modelos/invade.py +2 -0
  173. inewave/nwlistop/modelos/invadem.py +2 -0
  174. inewave/nwlistop/modelos/mediasmerc.py +2 -0
  175. inewave/nwlistop/modelos/mediasree.py +2 -0
  176. inewave/nwlistop/modelos/mediasrep.py +2 -0
  177. inewave/nwlistop/modelos/mediasrhq.py +2 -0
  178. inewave/nwlistop/modelos/mediasrhv.py +2 -0
  179. inewave/nwlistop/modelos/mediassin.py +2 -0
  180. inewave/nwlistop/modelos/mediasusie.py +2 -0
  181. inewave/nwlistop/modelos/mediasusih.py +2 -0
  182. inewave/nwlistop/modelos/mediasusit.py +2 -0
  183. inewave/nwlistop/modelos/mercl.py +2 -0
  184. inewave/nwlistop/modelos/merclsin.py +2 -0
  185. inewave/nwlistop/modelos/mevmin.py +2 -0
  186. inewave/nwlistop/modelos/mevminm.py +2 -0
  187. inewave/nwlistop/modelos/mevminsin.py +2 -0
  188. inewave/nwlistop/modelos/nwlistopdat.py +11 -0
  189. inewave/nwlistop/modelos/perdf.py +2 -0
  190. inewave/nwlistop/modelos/perdfm.py +2 -0
  191. inewave/nwlistop/modelos/perdfsin.py +2 -0
  192. inewave/nwlistop/modelos/pivarm.py +2 -0
  193. inewave/nwlistop/modelos/pivarmincr.py +2 -0
  194. inewave/nwlistop/modelos/qafluh.py +2 -0
  195. inewave/nwlistop/modelos/qincruh.py +2 -0
  196. inewave/nwlistop/modelos/rhslppdf.py +2 -0
  197. inewave/nwlistop/modelos/rhslpptb.py +2 -0
  198. inewave/nwlistop/modelos/vagua.py +2 -0
  199. inewave/nwlistop/modelos/varmpuh.py +2 -0
  200. inewave/nwlistop/modelos/varmuh.py +2 -0
  201. inewave/nwlistop/modelos/vbomb.py +2 -0
  202. inewave/nwlistop/modelos/vdesviouh.py +2 -0
  203. inewave/nwlistop/modelos/vento.py +2 -0
  204. inewave/nwlistop/modelos/vertuh.py +2 -0
  205. inewave/nwlistop/modelos/verturb.py +2 -0
  206. inewave/nwlistop/modelos/verturbm.py +2 -0
  207. inewave/nwlistop/modelos/verturbsin.py +2 -0
  208. inewave/nwlistop/modelos/vevapuh.py +2 -0
  209. inewave/nwlistop/modelos/vevmin.py +2 -0
  210. inewave/nwlistop/modelos/vevminm.py +2 -0
  211. inewave/nwlistop/modelos/vevminsin.py +2 -0
  212. inewave/nwlistop/modelos/vghmin.py +2 -0
  213. inewave/nwlistop/modelos/vghminm.py +2 -0
  214. inewave/nwlistop/modelos/vghminsin.py +2 -0
  215. inewave/nwlistop/modelos/vghminuh.py +2 -0
  216. inewave/nwlistop/modelos/viol_rhq.py +2 -0
  217. inewave/nwlistop/modelos/viol_rhv.py +2 -0
  218. inewave/nwlistop/modelos/vmort.py +2 -0
  219. inewave/nwlistop/modelos/vmortm.py +2 -0
  220. inewave/nwlistop/modelos/vmortsin.py +2 -0
  221. inewave/nwlistop/modelos/vturuh.py +2 -0
  222. {inewave-1.7.3.dist-info → inewave-1.7.5.dist-info}/METADATA +2 -2
  223. {inewave-1.7.3.dist-info → inewave-1.7.5.dist-info}/RECORD +229 -229
  224. {inewave-1.7.3.dist-info → inewave-1.7.5.dist-info}/WHEEL +1 -1
  225. tests/mocks/arquivos/pmo.py +16 -0
  226. tests/newave/test_dger.py +0 -2
  227. tests/newave/test_energias.py +4 -4
  228. {inewave-1.7.3.dist-info → inewave-1.7.5.dist-info}/LICENSE.md +0 -0
  229. {inewave-1.7.3.dist-info → inewave-1.7.5.dist-info}/top_level.txt +0 -0
@@ -20,6 +20,8 @@ class BlocoDsvUHE(Section):
20
20
  usina no arquivo do NEWAVE `dsvagua.dat`.
21
21
  """
22
22
 
23
+ __slots__ = ["__linha_uhe", "__cabecalhos"]
24
+
23
25
  FIM_BLOCO = "9999"
24
26
 
25
27
  def __init__(self, previous=None, next=None, data=None) -> None:
@@ -19,6 +19,8 @@ class BlocoEafPast(Section):
19
19
  do NEWAVE.
20
20
  """
21
21
 
22
+ __slots__ = ["__linha", "__cabecalhos"]
23
+
22
24
  def __init__(self, previous=None, next=None, data=None) -> None:
23
25
  super().__init__(previous, next, data)
24
26
  self.__linha = Line(
@@ -13,6 +13,8 @@ class SecaoDadosEnavazb(Section):
13
13
  vazões incrementais das UHEs.
14
14
  """
15
15
 
16
+ __slots__ = ["__linha"]
17
+
16
18
  def __init__(self, previous=None, next=None, data=None) -> None:
17
19
  super().__init__(previous, next, data)
18
20
 
@@ -13,6 +13,8 @@ class SecaoDadosEnavazf(Section):
13
13
  vazões incrementais das UHEs.
14
14
  """
15
15
 
16
+ __slots__ = ["__linha"]
17
+
16
18
  def __init__(self, previous=None, next=None, data=None) -> None:
17
19
  super().__init__(previous, next, data)
18
20
 
@@ -12,6 +12,8 @@ class SecaoDadosEnergiab(Section):
12
12
  nos arquivos energiabXXX.dat.
13
13
  """
14
14
 
15
+ __slots__ = ["__linha"]
16
+
15
17
  def __init__(self, previous=None, next=None, data=None) -> None:
16
18
  super().__init__(previous, next, data)
17
19
 
@@ -12,6 +12,8 @@ class SecaoDadosEnergiaf(Section):
12
12
  nos arquivos energiafXXX.dat.
13
13
  """
14
14
 
15
+ __slots__ = ["__linha"]
16
+
15
17
  def __init__(self, previous=None, next=None, data=None) -> None:
16
18
  super().__init__(previous, next, data)
17
19
 
@@ -12,6 +12,17 @@ class SecaoDadosEnergias(Section):
12
12
  no arquivo energias.dat.
13
13
  """
14
14
 
15
+ __slots__ = [
16
+ "__linha",
17
+ "numero_series",
18
+ "numero_rees",
19
+ "numero_estagios",
20
+ "numero_estagios_th",
21
+ "__linha_saldo",
22
+ ]
23
+
24
+ TAMANHO_REGISTRO = 4000
25
+
15
26
  def __init__(self, previous=None, next=None, data=None) -> None:
16
27
  super().__init__(previous, next, data)
17
28
 
@@ -39,19 +50,28 @@ class SecaoDadosEnergias(Section):
39
50
  *args,
40
51
  **kwargs,
41
52
  ):
42
- numero_registros = (
43
- (numero_estagios + numero_estagios_th)
44
- * numero_rees
45
- * numero_series
46
- )
53
+ self.numero_series = numero_series
54
+ self.numero_rees = numero_rees
55
+ self.numero_estagios = numero_estagios
56
+ self.numero_estagios_th = numero_estagios_th
57
+
58
+ numero_entradas_estagio = numero_series * numero_rees
59
+ saldo_final_registro = (
60
+ self.TAMANHO_REGISTRO - numero_entradas_estagio
61
+ ) % self.TAMANHO_REGISTRO
47
62
  self.__linha = Line(
48
63
  [
49
64
  FloatField(size=8, starting_position=8 * i)
50
- for i in range(numero_registros)
65
+ for i in range(numero_entradas_estagio)
51
66
  ],
52
67
  storage="BINARY",
53
68
  )
54
- dados = self.__linha.read(file.read(self.__linha.size))
69
+ dados = []
70
+ for i in range(numero_estagios + numero_estagios_th):
71
+ dados_estagio = self.__linha.read(file.read(self.__linha.size))
72
+ dados += dados_estagio
73
+ if saldo_final_registro > 0:
74
+ file.read(saldo_final_registro * 8)
55
75
  indices_estagios = np.arange(
56
76
  1 - numero_estagios_th, numero_estagios + 1
57
77
  )
@@ -76,11 +96,29 @@ class SecaoDadosEnergias(Section):
76
96
 
77
97
  def write(self, file: IO, *args, **kwargs):
78
98
  dados = self.data["valor"].to_numpy()
79
- linha = Line(
99
+ numero_entradas_estagio = self.numero_series * self.numero_rees
100
+ saldo_final_registro = (
101
+ self.TAMANHO_REGISTRO - numero_entradas_estagio
102
+ ) % self.TAMANHO_REGISTRO
103
+ self.__linha = Line(
104
+ [
105
+ FloatField(size=8, starting_position=8 * i)
106
+ for i in range(numero_entradas_estagio)
107
+ ],
108
+ storage="BINARY",
109
+ )
110
+ self.__linha_saldo = Line(
80
111
  [
81
112
  FloatField(size=8, starting_position=8 * i)
82
- for i in range(len(dados))
113
+ for i in range(saldo_final_registro)
83
114
  ],
84
115
  storage="BINARY",
85
116
  )
86
- file.write(linha.write(dados))
117
+ for i in range(self.numero_estagios + self.numero_estagios_th):
118
+ idx_i = i * numero_entradas_estagio
119
+ idx_f = idx_i + numero_entradas_estagio
120
+ file.write(self.__linha.write(dados[idx_i:idx_f]))
121
+ if saldo_final_registro > 0:
122
+ file.write(
123
+ self.__linha_saldo.write([0.0] * saldo_final_registro)
124
+ )
@@ -14,6 +14,8 @@ class SecaoDadosEngnat(Section):
14
14
  configuração existentes no arquivo engnat.dat.
15
15
  """
16
16
 
17
+ __slots__ = ["__linha"]
18
+
17
19
  def __init__(self, previous=None, next=None, data=None) -> None:
18
20
  super().__init__(previous, next, data)
19
21
 
@@ -14,6 +14,8 @@ class BlocoUHEExph(Section):
14
14
  Bloco com as expensões das UHEs por máquina.
15
15
  """
16
16
 
17
+ __slots__ = ["__linha_uhe", "__cabecalhos"]
18
+
17
19
  FIM_BLOCO = "9999"
18
20
 
19
21
  def __init__(self, previous=None, next=None, data=None) -> None:
@@ -14,6 +14,8 @@ class BlocoUTEExpt(Section):
14
14
  Bloco com as expensões das UTEs.
15
15
  """
16
16
 
17
+ __slots__ = ["__linha_uhe", "__cabecalhos"]
18
+
17
19
  FIM_BLOCO = ""
18
20
 
19
21
  def __init__(self, previous=None, next=None, data=None) -> None:
@@ -97,6 +97,33 @@ class SecaoDadosForward(Section):
97
97
  Registro com os resultados da operação do modelo NEWAVE.
98
98
  """
99
99
 
100
+ ___slots__ = [
101
+ "data",
102
+ "__estagios_df",
103
+ "__cenarios_df",
104
+ "__num_simulacoes",
105
+ "numero_rees",
106
+ "numero_submercados",
107
+ "numero_total_submercados",
108
+ "numero_patamares_carga",
109
+ "numero_patamares_deficit",
110
+ "numero_agrupamentos_intercambio",
111
+ "numero_classes_termicas_submercados",
112
+ "total_classes_termicas",
113
+ "numero_usinas_hidreletricas",
114
+ "lag_maximo_usinas_gnl",
115
+ "numero_parques_eolicos_equivalentes",
116
+ "numero_restricoes_eletricas_especiais",
117
+ "numero_estacoes_bombeamento",
118
+ "nomes_submercados",
119
+ "nomes_submercados_totais",
120
+ "nomes_rees",
121
+ "nomes_classes_termicas",
122
+ "nomes_usinas_hidreletricas",
123
+ "nomes_parques_eolicos_equivalentes",
124
+ "nomes_estacoes_bombeamento",
125
+ ]
126
+
100
127
  VARIAVEIS: List[VariavelOperacao] = [
101
128
  VariavelOperacao.MERCADO,
102
129
  VariavelOperacao.ENERGIA_ARMAZENADA_ABSOLUTA_INICIAL,
@@ -10,6 +10,8 @@ class SecaoDadosForwarh(Section):
10
10
  arquivo forwarh.dat
11
11
  """
12
12
 
13
+ __slots__ = []
14
+
13
15
  ZVAZ = 100
14
16
 
15
17
  def __eq__(self, o: object) -> bool:
@@ -13,6 +13,8 @@ class BlocoUHEGhmin(Section):
13
13
  Bloco com os valores de geração hidráulica mínima.
14
14
  """
15
15
 
16
+ __slots__ = ["__linha_uhe", "__cabecalhos"]
17
+
16
18
  FIM_BLOCO = "999"
17
19
 
18
20
  def __init__(self, previous=None, next=None, data=None) -> None:
@@ -12,6 +12,8 @@ class RegistroUHEHidr(Register):
12
12
  arquivo HIDR.
13
13
  """
14
14
 
15
+ __slots__ = []
16
+
15
17
  LINE = Line(
16
18
  [
17
19
  LiteralField(size=12, starting_position=0), # Nome
@@ -15,6 +15,8 @@ class BlocoManutencaoUTE(Section):
15
15
  no arquivo do NEWAVE `manutt.dat`.
16
16
  """
17
17
 
18
+ __slots__ = ["__linha_uhe", "__cabecalhos"]
19
+
18
20
  def __init__(self, previous=None, next=None, data=None) -> None:
19
21
  super().__init__(previous, next, data)
20
22
  self.__linha_uhe = Line(
@@ -24,6 +24,8 @@ class ModifRegister(Register):
24
24
  OBS: Atualmente só utilizados para registros VOLMIN e VOLMAX.
25
25
  """
26
26
 
27
+ __slots__ = ["__identifier_field", "__previous", "__next", "__data"]
28
+
27
29
  def __init__(
28
30
  self,
29
31
  previous=None,
@@ -71,6 +73,8 @@ class USINA(Register):
71
73
  Registro que contém a usina modificada.
72
74
  """
73
75
 
76
+ __slots__ = []
77
+
74
78
  IDENTIFIER = " USINA"
75
79
  IDENTIFIER_DIGITS = 8
76
80
  LINE = Line([IntegerField(4, 9), LiteralField(20, 44)])
@@ -110,6 +114,8 @@ class VOLMIN(ModifRegister):
110
114
  operativo para uma usina.
111
115
  """
112
116
 
117
+ __slots__ = []
118
+
113
119
  IDENTIFIER = " VOLMIN"
114
120
  IDENTIFIER_DIGITS = 8
115
121
  LINE = Line([FloatField(8, 10, 2), LiteralField(3, 19)])
@@ -149,6 +155,8 @@ class VOLMAX(ModifRegister):
149
155
  operativo para uma usina.
150
156
  """
151
157
 
158
+ __slots__ = []
159
+
152
160
  IDENTIFIER = " VOLMAX"
153
161
  IDENTIFIER_DIGITS = 8
154
162
  LINE = Line([FloatField(6, 10, 3), LiteralField(3, 17)])
@@ -188,6 +196,8 @@ class NUMCNJ(ModifRegister):
188
196
  de máquinas.
189
197
  """
190
198
 
199
+ __slots__ = []
200
+
191
201
  IDENTIFIER = " NUMCNJ"
192
202
  IDENTIFIER_DIGITS = 8
193
203
  LINE = Line([IntegerField(2, 11)])
@@ -213,6 +223,8 @@ class NUMMAQ(ModifRegister):
213
223
  conjunto de máquinas.
214
224
  """
215
225
 
226
+ __slots__ = []
227
+
216
228
  IDENTIFIER = " NUMMAQ"
217
229
  IDENTIFIER_DIGITS = 8
218
230
  LINE = Line([IntegerField(3, 11), IntegerField(3, 14)])
@@ -251,6 +263,8 @@ class VAZMIN(ModifRegister):
251
263
  Registro que contém uma modificação de vazão mínima (m3/s).
252
264
  """
253
265
 
266
+ __slots__ = []
267
+
254
268
  IDENTIFIER = " VAZMIN "
255
269
  IDENTIFIER_DIGITS = 8
256
270
  LINE = Line([IntegerField(8, 10)])
@@ -275,6 +289,8 @@ class CFUGA(ModifRegister):
275
289
  Registro que contém uma modificação do nível do canal de fuga.
276
290
  """
277
291
 
292
+ __slots__ = []
293
+
278
294
  IDENTIFIER = " CFUGA"
279
295
  IDENTIFIER_DIGITS = 8
280
296
  LINE = Line(
@@ -316,6 +332,8 @@ class CMONT(ModifRegister):
316
332
  Registro que contém uma modificação do nível do canal de montante.
317
333
  """
318
334
 
335
+ __slots__ = []
336
+
319
337
  IDENTIFIER = " CMONT"
320
338
  IDENTIFIER_DIGITS = 8
321
339
  LINE = Line(
@@ -358,6 +376,8 @@ class VMAXT(Register):
358
376
  com data.
359
377
  """
360
378
 
379
+ __slots__ = []
380
+
361
381
  IDENTIFIER = " VMAXT"
362
382
  IDENTIFIER_DIGITS = 8
363
383
  LINE = Line(
@@ -419,6 +439,8 @@ class VMINT(Register):
419
439
  com data.
420
440
  """
421
441
 
442
+ __slots__ = []
443
+
422
444
  IDENTIFIER = " VMINT"
423
445
  IDENTIFIER_DIGITS = 8
424
446
  LINE = Line(
@@ -480,6 +502,8 @@ class VMINP(Register):
480
502
  com data para adoção de penalidade.
481
503
  """
482
504
 
505
+ __slots__ = []
506
+
483
507
  IDENTIFIER = " VMINP"
484
508
  IDENTIFIER_DIGITS = 8
485
509
  LINE = Line(
@@ -541,6 +565,8 @@ class VAZMINT(Register):
541
565
  com data.
542
566
  """
543
567
 
568
+ __slots__ = []
569
+
544
570
  IDENTIFIER = " VAZMINT"
545
571
  IDENTIFIER_DIGITS = 8
546
572
  LINE = Line(
@@ -587,6 +613,8 @@ class VAZMAXT(Register):
587
613
  com data.
588
614
  """
589
615
 
616
+ __slots__ = []
617
+
590
618
  IDENTIFIER = " VAZMAXT"
591
619
  IDENTIFIER_DIGITS = 8
592
620
  LINE = Line(
@@ -633,6 +661,8 @@ class TURBMAXT(Register):
633
661
  com data.
634
662
  """
635
663
 
664
+ __slots__ = []
665
+
636
666
  IDENTIFIER = " TURBMAXT"
637
667
  IDENTIFIER_DIGITS = 9
638
668
  LINE = Line(
@@ -679,6 +709,8 @@ class TURBMINT(Register):
679
709
  com data.
680
710
  """
681
711
 
712
+ __slots__ = []
713
+
682
714
  IDENTIFIER = " TURBMINT"
683
715
  IDENTIFIER_DIGITS = 9
684
716
  LINE = Line(
@@ -14,6 +14,8 @@ class BlocoTemposEtapasTim(Block):
14
14
  do NEWAVE obtidas no arquivo `newave.tim`.
15
15
  """
16
16
 
17
+ __slots__ = ["__line"]
18
+
17
19
  BEGIN_PATTERN = "Leitura de Dados:"
18
20
  END_PATTERN = ""
19
21
 
@@ -14,6 +14,8 @@ class TabelaAvlEvap(TabelaCSV):
14
14
  para a evaporação.
15
15
  """
16
16
 
17
+ __slots__ = []
18
+
17
19
  BEGIN_PATTERN = "-----;-----;"
18
20
  LINE_MODEL = Line(
19
21
  [
@@ -13,6 +13,8 @@ class TabelaCortesEvap(TabelaCSV):
13
13
  Bloco com as informações dos cortes da evaporação linear.
14
14
  """
15
15
 
16
+ __slots__ = []
17
+
16
18
  BEGIN_PATTERN = "-----;-----;--------------;"
17
19
  LINE_MODEL = Line(
18
20
  [
@@ -14,6 +14,8 @@ class TabelaEcoEvap(TabelaCSV):
14
14
  da evaporação.
15
15
  """
16
16
 
17
+ __slots__ = []
18
+
17
19
  BEGIN_PATTERN = "-----;-----;"
18
20
  LINE_MODEL = Line(
19
21
  [
@@ -32,6 +32,12 @@ class BlocoSerieEnergiaREE(Block):
32
32
  relativo às séries de energia por REE.
33
33
  """
34
34
 
35
+ __slots__ = [
36
+ "__campo_ree",
37
+ "__campo_cfg",
38
+ "__linha",
39
+ ]
40
+
35
41
  BEGIN_PATTERN = "SERIE DE ENERGIAS DO REE"
36
42
  END_PATTERN = ""
37
43
 
@@ -106,6 +112,10 @@ class BlocoCorrelEnergiasREE(Block):
106
112
  das energias por REE.
107
113
  """
108
114
 
115
+ __slots__ = [
116
+ "__linha",
117
+ ]
118
+
109
119
  BEGIN_PATTERN = "CORRELOGRAMO DA SERIE DE ENERGIAS"
110
120
  END_PATTERN = ""
111
121
 
@@ -207,6 +217,10 @@ class BlocoCorrelParcialEnergiasREE(Block):
207
217
  das energias por REE.
208
218
  """
209
219
 
220
+ __slots__ = [
221
+ "__linha",
222
+ ]
223
+
210
224
  BEGIN_PATTERN = "CORRELOGRAMO PARCIAL DA SERIE DE ENERGIAS"
211
225
  END_PATTERN = ""
212
226
 
@@ -308,6 +322,11 @@ class BlocoOrdemModeloREE(Block):
308
322
  seus coeficientes por REE.
309
323
  """
310
324
 
325
+ __slots__ = [
326
+ "__linha",
327
+ "__tipo",
328
+ ]
329
+
311
330
  BEGIN_PATTERN = "DO MODELO AUTORREGRESSIVO PARA CADA PERIODO"
312
331
  END_PATTERN = ""
313
332
 
@@ -397,6 +416,10 @@ class BlocoCoeficientesModeloREE(Block):
397
416
  Lista de coeficientes dos modelos PAR ou PAR-A por REE.
398
417
  """
399
418
 
419
+ __slots__ = [
420
+ "__linha",
421
+ ]
422
+
400
423
  BEGIN_PATTERN = " COEFICIENTES DA EQUACAO DE REGRESSAO DE UM PROCESSO"
401
424
  END_PATTERN = ""
402
425
 
@@ -459,6 +482,11 @@ class BlocoSerieRuidosREE(Block):
459
482
  relativo às séries de ruídos por REE.
460
483
  """
461
484
 
485
+ __slots__ = [
486
+ "__campo_ano",
487
+ "__linha",
488
+ ]
489
+
462
490
  BEGIN_PATTERN = "SERIE DE RUIDOS - ANO:"
463
491
  END_PATTERN = ""
464
492
 
@@ -530,6 +558,10 @@ class BlocoCorrelRuidosREE(Block):
530
558
  dos ruídos por REE.
531
559
  """
532
560
 
561
+ __slots__ = [
562
+ "__linha",
563
+ ]
564
+
533
565
  BEGIN_PATTERN = "CORRELOGRAMO DA SERIE DE RUIDOS"
534
566
  END_PATTERN = ""
535
567
 
@@ -630,6 +662,11 @@ class BlocoSerieMediasREE(Block):
630
662
  relativo às séries de médias de 12 meses por REE.
631
663
  """
632
664
 
665
+ __slots__ = [
666
+ "__campo_ano",
667
+ "__linha",
668
+ ]
669
+
633
670
  BEGIN_PATTERN = "SERIE MEDIA 12 MESES - ANO:"
634
671
  END_PATTERN = ""
635
672
 
@@ -701,6 +738,10 @@ class BlocoCorrelCruzadaMediaREE(Block):
701
738
  anual com as energias por REE.
702
739
  """
703
740
 
741
+ __slots__ = [
742
+ "__linha",
743
+ ]
744
+
704
745
  BEGIN_PATTERN = "CORRELACAO CRUZADA VARIAVEL ANUAL ENERGIAS"
705
746
  END_PATTERN = ""
706
747
 
@@ -804,6 +845,8 @@ class BlocoCorrelEspacialAnualConfig(Block):
804
845
  anual por configuração.
805
846
  """
806
847
 
848
+ __slots__ = ["__campo_cfg", "__linha"]
849
+
807
850
  BEGIN_PATTERN = "CORRELACAO ESPACIAL HISTORICA ANUAL"
808
851
  END_PATTERN = ""
809
852
 
@@ -868,6 +911,8 @@ class BlocoCorrelEspacialMensalConfig(Block):
868
911
  mensal por configuração.
869
912
  """
870
913
 
914
+ __slots__ = ["__campo_cfg", "__linha"]
915
+
871
916
  BEGIN_PATTERN = "CORRELACAO ESPACIAL HISTORICA MENSAL"
872
917
  END_PATTERN = ""
873
918
 
@@ -32,6 +32,12 @@ class BlocoSerieVentosUEE(Block):
32
32
  relativo às séries de ventos por usina.
33
33
  """
34
34
 
35
+ __slots__ = [
36
+ "__campo_uee",
37
+ "__campo_cfg",
38
+ "__linha",
39
+ ]
40
+
35
41
  BEGIN_PATTERN = "SERIE DE VENTOS DA USINA"
36
42
  END_PATTERN = ""
37
43
 
@@ -106,6 +112,10 @@ class BlocoCorrelVentosUEE(Block):
106
112
  dos ventos por usina.
107
113
  """
108
114
 
115
+ __slots__ = [
116
+ "__linha",
117
+ ]
118
+
109
119
  BEGIN_PATTERN = "CORRELOGRAMO DA SERIE DE VENTOS"
110
120
  END_PATTERN = ""
111
121
 
@@ -206,6 +216,11 @@ class BlocoSerieRuidosUEE(Block):
206
216
  relativo às séries de ruídos por usina.
207
217
  """
208
218
 
219
+ __slots__ = [
220
+ "__campo_ano",
221
+ "__linha",
222
+ ]
223
+
209
224
  BEGIN_PATTERN = "SERIE DE RUIDOS - ANO:"
210
225
  END_PATTERN = ""
211
226
 
@@ -277,6 +292,10 @@ class BlocoCorrelRuidosUEE(Block):
277
292
  dos ruídos por usina.
278
293
  """
279
294
 
295
+ __slots__ = [
296
+ "__linha",
297
+ ]
298
+
280
299
  BEGIN_PATTERN = "CORRELOGRAMO DA SERIE DE RUIDOS"
281
300
  END_PATTERN = ""
282
301
 
@@ -378,6 +397,8 @@ class BlocoCorrelEspacialAnualConfig(Block):
378
397
  anual por configuração.
379
398
  """
380
399
 
400
+ __slots__ = ["__campo_cfg", "__linha"]
401
+
381
402
  BEGIN_PATTERN = "CORRELACAO ESPACIAL HISTORICA ANUAL"
382
403
  END_PATTERN = ""
383
404
 
@@ -446,6 +467,8 @@ class BlocoCorrelEspacialMensalConfig(Block):
446
467
  mensal por configuração.
447
468
  """
448
469
 
470
+ __slots__ = ["__campo_cfg", "__linha"]
471
+
449
472
  BEGIN_PATTERN = "CORRELACAO ESPACIAL HISTORICA MENSAL"
450
473
  END_PATTERN = ""
451
474