inewave 1.7.4__py3-none-any.whl → 1.8.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.
Files changed (373) hide show
  1. inewave/__init__.py +1 -1
  2. inewave/newave/__init__.py +16 -7
  3. inewave/newave/avl_cortesfpha_nwv.py +10 -0
  4. inewave/newave/avl_desvfpha_s.py +7 -0
  5. inewave/newave/avl_desvfpha_v_q.py +7 -0
  6. inewave/newave/eco_fpha.py +10 -0
  7. inewave/newave/evap_avl_desv.py +33 -0
  8. inewave/newave/evap_cortes.py +34 -0
  9. inewave/newave/evap_eco.py +34 -0
  10. inewave/newave/fpha_avl_desv_s.py +59 -0
  11. inewave/newave/fpha_avl_desv_v_q.py +58 -0
  12. inewave/newave/fpha_cortes.py +40 -0
  13. inewave/newave/fpha_eco.py +41 -0
  14. inewave/newave/modelos/adterm.py +7 -0
  15. inewave/newave/modelos/agrint.py +2 -0
  16. inewave/newave/modelos/arquivos.py +2 -0
  17. inewave/newave/modelos/avl_cortesfpha_nwv.py +4 -0
  18. inewave/newave/modelos/avl_desvfpha_s.py +2 -0
  19. inewave/newave/modelos/avl_desvfpha_v_q.py +2 -0
  20. inewave/newave/modelos/blocos/tabelacsv.py +2 -0
  21. inewave/newave/modelos/blocos/versaomodelo.py +4 -0
  22. inewave/newave/modelos/cadic.py +2 -0
  23. inewave/newave/modelos/caso.py +4 -0
  24. inewave/newave/modelos/clast.py +2 -0
  25. inewave/newave/modelos/confhd.py +2 -0
  26. inewave/newave/modelos/conft.py +2 -0
  27. inewave/newave/modelos/cortes.py +14 -0
  28. inewave/newave/modelos/cortesh.py +20 -0
  29. inewave/newave/modelos/curva.py +2 -0
  30. inewave/newave/modelos/cvar.py +2 -0
  31. inewave/newave/modelos/dger.py +208 -0
  32. inewave/newave/modelos/dsvagua.py +2 -0
  33. inewave/newave/modelos/eafpast.py +2 -0
  34. inewave/newave/modelos/enavazb.py +2 -0
  35. inewave/newave/modelos/enavazf.py +2 -0
  36. inewave/newave/modelos/energiab.py +2 -0
  37. inewave/newave/modelos/energiaf.py +2 -0
  38. inewave/newave/modelos/energias.py +9 -0
  39. inewave/newave/modelos/engnat.py +2 -0
  40. inewave/newave/modelos/exph.py +2 -0
  41. inewave/newave/modelos/expt.py +2 -0
  42. inewave/newave/modelos/forward.py +27 -0
  43. inewave/newave/modelos/forwarh.py +2 -0
  44. inewave/newave/modelos/ghmin.py +2 -0
  45. inewave/newave/modelos/hidr.py +2 -0
  46. inewave/newave/modelos/manutt.py +2 -0
  47. inewave/newave/modelos/modif.py +32 -0
  48. inewave/newave/modelos/newavetim.py +2 -0
  49. inewave/newave/modelos/nwv_avl_evap.py +2 -0
  50. inewave/newave/modelos/nwv_cortes_evap.py +2 -0
  51. inewave/newave/modelos/nwv_eco_evap.py +2 -0
  52. inewave/newave/modelos/parp.py +45 -0
  53. inewave/newave/modelos/parpeol.py +23 -0
  54. inewave/newave/modelos/parpvaz.py +37 -0
  55. inewave/newave/modelos/patamar.py +28 -0
  56. inewave/newave/modelos/penalid.py +2 -0
  57. inewave/newave/modelos/pmo.py +103 -0
  58. inewave/newave/modelos/re.py +2 -0
  59. inewave/newave/modelos/ree.py +2 -0
  60. inewave/newave/modelos/selcor.py +5 -3
  61. inewave/newave/modelos/shist.py +10 -6
  62. inewave/newave/modelos/sistema.py +10 -0
  63. inewave/newave/modelos/term.py +2 -0
  64. inewave/newave/modelos/vazaob.py +2 -0
  65. inewave/newave/modelos/vazaof.py +2 -0
  66. inewave/newave/modelos/vazaos.py +2 -0
  67. inewave/newave/modelos/vazinat.py +2 -0
  68. inewave/newave/modelos/vazoes.py +2 -0
  69. inewave/newave/modelos/vazpast.py +2 -0
  70. inewave/newave/modelos/volref_saz.py +2 -0
  71. inewave/newave/modif.py +2 -0
  72. inewave/newave/nwv_avl_evap.py +10 -0
  73. inewave/newave/nwv_cortes_evap.py +10 -0
  74. inewave/newave/nwv_eco_evap.py +10 -0
  75. inewave/newave/pmo.py +17 -0
  76. inewave/newave/vazoes.py +2 -0
  77. inewave/nwlistcf/modelos/arquivos.py +2 -0
  78. inewave/nwlistcf/modelos/caso.py +2 -0
  79. inewave/nwlistcf/modelos/estados.py +10 -0
  80. inewave/nwlistcf/modelos/nwlistcfdat.py +2 -0
  81. inewave/nwlistcf/modelos/nwlistcfrel.py +2 -0
  82. inewave/nwlistop/__init__.py +65 -30
  83. inewave/nwlistop/c_v_rhq.py +10 -0
  84. inewave/nwlistop/c_v_rhq_s.py +10 -0
  85. inewave/nwlistop/c_v_rhv_s.py +10 -0
  86. inewave/nwlistop/celetricas.py +10 -0
  87. inewave/nwlistop/cviol_eletricasin.py +19 -0
  88. inewave/nwlistop/cviol_rhq.py +21 -0
  89. inewave/nwlistop/cviol_rhq_sin.py +19 -0
  90. inewave/nwlistop/cviol_rhv.py +21 -0
  91. inewave/nwlistop/cviol_rhv_sin.py +19 -0
  92. inewave/nwlistop/deletricas.py +10 -0
  93. inewave/nwlistop/depminuh.py +10 -0
  94. inewave/nwlistop/desvuh.py +10 -0
  95. inewave/nwlistop/dtbmax.py +10 -0
  96. inewave/nwlistop/dtbmin.py +10 -0
  97. inewave/nwlistop/dvazmax.py +10 -0
  98. inewave/nwlistop/modelos/arquivos/arquivoclassetermicasubmercadopatamar.py +2 -0
  99. inewave/nwlistop/modelos/arquivos/arquivoestacaobombeamentopatamar.py +2 -0
  100. inewave/nwlistop/modelos/arquivos/arquivoparsubmercadopatamar.py +2 -0
  101. inewave/nwlistop/modelos/arquivos/arquivoree.py +2 -0
  102. inewave/nwlistop/modelos/arquivos/arquivoreepatamar.py +2 -0
  103. inewave/nwlistop/modelos/arquivos/arquivorestricao.py +2 -0
  104. inewave/nwlistop/modelos/arquivos/arquivorestricaopatamar.py +2 -0
  105. inewave/nwlistop/modelos/arquivos/arquivosin.py +2 -0
  106. inewave/nwlistop/modelos/arquivos/arquivosinpatamar.py +2 -0
  107. inewave/nwlistop/modelos/arquivos/arquivosubmercado.py +2 -0
  108. inewave/nwlistop/modelos/arquivos/arquivosubmercadopatamar.py +2 -0
  109. inewave/nwlistop/modelos/arquivos/arquivousina.py +2 -0
  110. inewave/nwlistop/modelos/arquivos/arquivousinapatamar.py +2 -0
  111. inewave/nwlistop/modelos/blocos/estacaobombeamento.py +2 -0
  112. inewave/nwlistop/modelos/blocos/parsubmercados.py +2 -0
  113. inewave/nwlistop/modelos/blocos/ree.py +2 -0
  114. inewave/nwlistop/modelos/blocos/restricao.py +2 -0
  115. inewave/nwlistop/modelos/blocos/submercado.py +2 -0
  116. inewave/nwlistop/modelos/blocos/usina.py +2 -0
  117. inewave/nwlistop/modelos/blocos/valoresclassetermicaseriepatamar.py +8 -0
  118. inewave/nwlistop/modelos/blocos/valoresserie.py +2 -0
  119. inewave/nwlistop/modelos/blocos/valoresseriepatamar.py +2 -0
  120. inewave/nwlistop/modelos/c_v_rhq.py +2 -0
  121. inewave/nwlistop/modelos/c_v_rhq_s.py +2 -0
  122. inewave/nwlistop/modelos/c_v_rhv.py +2 -0
  123. inewave/nwlistop/modelos/c_v_rhv_s.py +2 -0
  124. inewave/nwlistop/modelos/cbomb.py +2 -0
  125. inewave/nwlistop/modelos/cbombsin.py +2 -0
  126. inewave/nwlistop/modelos/cdef.py +2 -0
  127. inewave/nwlistop/modelos/cdefsin.py +2 -0
  128. inewave/nwlistop/modelos/celetricas.py +2 -0
  129. inewave/nwlistop/modelos/cmarg.py +2 -0
  130. inewave/nwlistop/modelos/cmargmed.py +2 -0
  131. inewave/nwlistop/modelos/coper.py +2 -0
  132. inewave/nwlistop/modelos/corteolm.py +2 -0
  133. inewave/nwlistop/modelos/cterm.py +2 -0
  134. inewave/nwlistop/modelos/ctermsin.py +2 -0
  135. inewave/nwlistop/modelos/cviol_eletricasin.py +28 -0
  136. inewave/nwlistop/modelos/cviol_rhq.py +28 -0
  137. inewave/nwlistop/modelos/cviol_rhq_sin.py +28 -0
  138. inewave/nwlistop/modelos/cviol_rhv.py +26 -0
  139. inewave/nwlistop/modelos/cviol_rhv_sin.py +26 -0
  140. inewave/nwlistop/modelos/def.py +2 -0
  141. inewave/nwlistop/modelos/defsin.py +2 -0
  142. inewave/nwlistop/modelos/deletricas.py +2 -0
  143. inewave/nwlistop/modelos/depminuh.py +2 -0
  144. inewave/nwlistop/modelos/desvuh.py +2 -0
  145. inewave/nwlistop/modelos/dflppdfmaxm.py +2 -0
  146. inewave/nwlistop/modelos/dflpptbmaxm.py +2 -0
  147. inewave/nwlistop/modelos/dfphauh.py +2 -0
  148. inewave/nwlistop/modelos/dlppdfmax.py +2 -0
  149. inewave/nwlistop/modelos/dlppdfmaxs.py +2 -0
  150. inewave/nwlistop/modelos/dlpptbmax.py +2 -0
  151. inewave/nwlistop/modelos/dlpptbmaxs.py +2 -0
  152. inewave/nwlistop/modelos/dnegevap.py +2 -0
  153. inewave/nwlistop/modelos/dposevap.py +2 -0
  154. inewave/nwlistop/modelos/dtbmax.py +2 -0
  155. inewave/nwlistop/modelos/dtbmin.py +2 -0
  156. inewave/nwlistop/modelos/dvazmax.py +2 -0
  157. inewave/nwlistop/modelos/eaf.py +2 -0
  158. inewave/nwlistop/modelos/eafb.py +2 -0
  159. inewave/nwlistop/modelos/eafbm.py +2 -0
  160. inewave/nwlistop/modelos/eafbsin.py +2 -0
  161. inewave/nwlistop/modelos/eafm.py +2 -0
  162. inewave/nwlistop/modelos/earmf.py +2 -0
  163. inewave/nwlistop/modelos/earmfm.py +2 -0
  164. inewave/nwlistop/modelos/earmfp.py +2 -0
  165. inewave/nwlistop/modelos/earmfpm.py +2 -0
  166. inewave/nwlistop/modelos/earmfpsin.py +2 -0
  167. inewave/nwlistop/modelos/earmfsin.py +2 -0
  168. inewave/nwlistop/modelos/edesvc.py +2 -0
  169. inewave/nwlistop/modelos/edesvcm.py +2 -0
  170. inewave/nwlistop/modelos/edesvcsin.py +2 -0
  171. inewave/nwlistop/modelos/evapo.py +2 -0
  172. inewave/nwlistop/modelos/evapom.py +2 -0
  173. inewave/nwlistop/modelos/evaporsin.py +2 -0
  174. inewave/nwlistop/modelos/evert.py +2 -0
  175. inewave/nwlistop/modelos/evertm.py +2 -0
  176. inewave/nwlistop/modelos/evertsin.py +2 -0
  177. inewave/nwlistop/modelos/exces.py +2 -0
  178. inewave/nwlistop/modelos/excessin.py +2 -0
  179. inewave/nwlistop/modelos/form_rhq.py +2 -0
  180. inewave/nwlistop/modelos/form_rhv.py +2 -0
  181. inewave/nwlistop/modelos/fteolm.py +2 -0
  182. inewave/nwlistop/modelos/fteolsin.py +2 -0
  183. inewave/nwlistop/modelos/geol.py +2 -0
  184. inewave/nwlistop/modelos/geolm.py +2 -0
  185. inewave/nwlistop/modelos/geolsin.py +2 -0
  186. inewave/nwlistop/modelos/gh_fphexat.py +2 -0
  187. inewave/nwlistop/modelos/ghidr.py +2 -0
  188. inewave/nwlistop/modelos/ghidrm.py +2 -0
  189. inewave/nwlistop/modelos/ghidrsin.py +2 -0
  190. inewave/nwlistop/modelos/ghiduh.py +2 -0
  191. inewave/nwlistop/modelos/ghmax.py +2 -0
  192. inewave/nwlistop/modelos/ghmax_fpha.py +2 -0
  193. inewave/nwlistop/modelos/ghmax_fphc.py +2 -0
  194. inewave/nwlistop/modelos/ghmaxm.py +2 -0
  195. inewave/nwlistop/modelos/ghmaxmr.py +2 -0
  196. inewave/nwlistop/modelos/ghmaxr.py +2 -0
  197. inewave/nwlistop/modelos/ghmaxrsin.py +2 -0
  198. inewave/nwlistop/modelos/ghmaxsin.py +2 -0
  199. inewave/nwlistop/modelos/ghtot.py +2 -0
  200. inewave/nwlistop/modelos/ghtotm.py +2 -0
  201. inewave/nwlistop/modelos/ghtotsin.py +2 -0
  202. inewave/nwlistop/modelos/gtert.py +2 -0
  203. inewave/nwlistop/modelos/gttot.py +2 -0
  204. inewave/nwlistop/modelos/gttotsin.py +2 -0
  205. inewave/nwlistop/modelos/hjus.py +2 -0
  206. inewave/nwlistop/modelos/hliq.py +2 -0
  207. inewave/nwlistop/modelos/hmont.py +2 -0
  208. inewave/nwlistop/modelos/intercambio.py +2 -0
  209. inewave/nwlistop/modelos/invade.py +2 -0
  210. inewave/nwlistop/modelos/invadem.py +2 -0
  211. inewave/nwlistop/modelos/mediasmerc.py +2 -0
  212. inewave/nwlistop/modelos/mediasree.py +2 -0
  213. inewave/nwlistop/modelos/mediasrep.py +2 -0
  214. inewave/nwlistop/modelos/mediasrhq.py +2 -0
  215. inewave/nwlistop/modelos/mediasrhv.py +2 -0
  216. inewave/nwlistop/modelos/mediassin.py +2 -0
  217. inewave/nwlistop/modelos/mediasusie.py +2 -0
  218. inewave/nwlistop/modelos/mediasusih.py +2 -0
  219. inewave/nwlistop/modelos/mediasusit.py +2 -0
  220. inewave/nwlistop/modelos/mercl.py +2 -0
  221. inewave/nwlistop/modelos/merclsin.py +2 -0
  222. inewave/nwlistop/modelos/mevmin.py +2 -0
  223. inewave/nwlistop/modelos/mevminm.py +2 -0
  224. inewave/nwlistop/modelos/mevminsin.py +2 -0
  225. inewave/nwlistop/modelos/nwlistopdat.py +11 -0
  226. inewave/nwlistop/modelos/perdf.py +2 -0
  227. inewave/nwlistop/modelos/perdfm.py +2 -0
  228. inewave/nwlistop/modelos/perdfsin.py +2 -0
  229. inewave/nwlistop/modelos/pivarm.py +22 -0
  230. inewave/nwlistop/modelos/pivarmincr.py +22 -0
  231. inewave/nwlistop/modelos/qafluh.py +2 -0
  232. inewave/nwlistop/modelos/qbomb.py +28 -0
  233. inewave/nwlistop/modelos/qdesviouh.py +28 -0
  234. inewave/nwlistop/modelos/qincruh.py +2 -0
  235. inewave/nwlistop/modelos/qturuh.py +28 -0
  236. inewave/nwlistop/modelos/qvertuh.py +28 -0
  237. inewave/nwlistop/modelos/rhslppdf.py +2 -0
  238. inewave/nwlistop/modelos/rhslpptb.py +2 -0
  239. inewave/nwlistop/modelos/vagua.py +2 -0
  240. inewave/nwlistop/modelos/valor_agua.py +24 -0
  241. inewave/nwlistop/modelos/varmpuh.py +2 -0
  242. inewave/nwlistop/modelos/varmuh.py +2 -0
  243. inewave/nwlistop/modelos/vbomb.py +2 -0
  244. inewave/nwlistop/modelos/vdesviouh.py +2 -0
  245. inewave/nwlistop/modelos/vento.py +2 -0
  246. inewave/nwlistop/modelos/vertuh.py +2 -0
  247. inewave/nwlistop/modelos/verturb.py +2 -0
  248. inewave/nwlistop/modelos/verturbm.py +2 -0
  249. inewave/nwlistop/modelos/verturbsin.py +2 -0
  250. inewave/nwlistop/modelos/vevapuh.py +2 -0
  251. inewave/nwlistop/modelos/vevmin.py +2 -0
  252. inewave/nwlistop/modelos/vevminm.py +2 -0
  253. inewave/nwlistop/modelos/vevminsin.py +2 -0
  254. inewave/nwlistop/modelos/vghmin.py +2 -0
  255. inewave/nwlistop/modelos/vghminm.py +2 -0
  256. inewave/nwlistop/modelos/vghminsin.py +2 -0
  257. inewave/nwlistop/modelos/vghminuh.py +2 -0
  258. inewave/nwlistop/modelos/viol_eletricasin.py +28 -0
  259. inewave/nwlistop/modelos/viol_evmin.py +23 -0
  260. inewave/nwlistop/modelos/viol_evminm.py +23 -0
  261. inewave/nwlistop/modelos/viol_evminsin.py +23 -0
  262. inewave/nwlistop/modelos/viol_fpha.py +31 -0
  263. inewave/nwlistop/modelos/viol_ghmin.py +29 -0
  264. inewave/nwlistop/modelos/viol_ghminm.py +29 -0
  265. inewave/nwlistop/modelos/viol_ghminsin.py +29 -0
  266. inewave/nwlistop/modelos/viol_ghminuh.py +28 -0
  267. inewave/nwlistop/modelos/viol_lpp_dfmax.py +29 -0
  268. inewave/nwlistop/modelos/viol_lpp_dfmaxm.py +29 -0
  269. inewave/nwlistop/modelos/viol_lpp_dfmaxsin.py +29 -0
  270. inewave/nwlistop/modelos/viol_lpp_tbmax.py +29 -0
  271. inewave/nwlistop/modelos/viol_lpp_tbmaxm.py +29 -0
  272. inewave/nwlistop/modelos/viol_lpp_tbmaxsin.py +29 -0
  273. inewave/nwlistop/modelos/viol_neg_evap.py +26 -0
  274. inewave/nwlistop/modelos/viol_pos_evap.py +26 -0
  275. inewave/nwlistop/modelos/viol_rhq.py +2 -0
  276. inewave/nwlistop/modelos/viol_rhv.py +2 -0
  277. inewave/nwlistop/modelos/viol_turbmax.py +28 -0
  278. inewave/nwlistop/modelos/viol_turbmin.py +28 -0
  279. inewave/nwlistop/modelos/viol_vazmax.py +28 -0
  280. inewave/nwlistop/modelos/viol_vazmin.py +28 -0
  281. inewave/nwlistop/modelos/vmort.py +2 -0
  282. inewave/nwlistop/modelos/vmortm.py +2 -0
  283. inewave/nwlistop/modelos/vmortsin.py +2 -0
  284. inewave/nwlistop/modelos/vretiradauh.py +26 -0
  285. inewave/nwlistop/modelos/vturuh.py +2 -0
  286. inewave/nwlistop/pivarm.py +13 -2
  287. inewave/nwlistop/pivarmincr.py +13 -2
  288. inewave/nwlistop/qbomb.py +23 -0
  289. inewave/nwlistop/qdesviouh.py +21 -0
  290. inewave/nwlistop/qturuh.py +21 -0
  291. inewave/nwlistop/qvertuh.py +21 -0
  292. inewave/nwlistop/vagua.py +10 -0
  293. inewave/nwlistop/valor_agua.py +21 -0
  294. inewave/nwlistop/vertuh.py +10 -0
  295. inewave/nwlistop/vevmin.py +10 -0
  296. inewave/nwlistop/vevminm.py +10 -0
  297. inewave/nwlistop/vevminsin.py +10 -0
  298. inewave/nwlistop/vghmin.py +10 -0
  299. inewave/nwlistop/vghminm.py +10 -0
  300. inewave/nwlistop/vghminsin.py +10 -0
  301. inewave/nwlistop/viol_eletricasin.py +19 -0
  302. inewave/nwlistop/viol_evmin.py +20 -0
  303. inewave/nwlistop/viol_evminm.py +22 -0
  304. inewave/nwlistop/viol_evminsin.py +19 -0
  305. inewave/nwlistop/viol_fpha.py +22 -0
  306. inewave/nwlistop/viol_ghmin.py +22 -0
  307. inewave/nwlistop/viol_ghminm.py +22 -0
  308. inewave/nwlistop/viol_ghminsin.py +19 -0
  309. inewave/nwlistop/viol_ghminuh.py +22 -0
  310. inewave/nwlistop/viol_lpp_dfmax.py +22 -0
  311. inewave/nwlistop/viol_lpp_dfmaxm.py +22 -0
  312. inewave/nwlistop/viol_lpp_dfmaxsin.py +18 -0
  313. inewave/nwlistop/viol_lpp_tbmax.py +22 -0
  314. inewave/nwlistop/viol_lpp_tbmaxm.py +22 -0
  315. inewave/nwlistop/viol_lpp_tbmaxsin.py +18 -0
  316. inewave/nwlistop/viol_neg_evap.py +22 -0
  317. inewave/nwlistop/viol_pos_evap.py +22 -0
  318. inewave/nwlistop/viol_turbmax.py +22 -0
  319. inewave/nwlistop/viol_turbmin.py +22 -0
  320. inewave/nwlistop/viol_vazmax.py +22 -0
  321. inewave/nwlistop/viol_vazmin.py +22 -0
  322. inewave/nwlistop/vretiradauh.py +21 -0
  323. inewave/nwlistop/vturuh.py +10 -0
  324. {inewave-1.7.4.dist-info → inewave-1.8.0.dist-info}/METADATA +2 -2
  325. {inewave-1.7.4.dist-info → inewave-1.8.0.dist-info}/RECORD +373 -264
  326. tests/libs/test_restricoes.py +0 -3
  327. tests/libs/test_usinas_hidreletricas.py +0 -2
  328. tests/mocks/arquivos/pivarm.py +22 -0
  329. tests/mocks/arquivos/pivarmincr.py +22 -0
  330. tests/mocks/arquivos/pmo.py +6 -1
  331. tests/mocks/arquivos/viol_fpha.py +29 -0
  332. tests/newave/test_dger.py +0 -2
  333. tests/newave/test_evap_avl_desv.py +40 -0
  334. tests/newave/test_evap_cortes.py +41 -0
  335. tests/newave/test_evap_eco.py +41 -0
  336. tests/newave/test_fpha_avl_desv_s.py +39 -0
  337. tests/newave/test_fpha_avl_desv_v_q.py +38 -0
  338. tests/newave/test_fpha_cortes.py +48 -0
  339. tests/newave/test_fpha_eco.py +47 -0
  340. tests/newave/test_pmo.py +14 -0
  341. tests/nwlistop/test_cviol_eletricasin.py +37 -0
  342. tests/nwlistop/test_cviol_rhq_sin.py +37 -0
  343. tests/nwlistop/test_cviol_rhv_sin.py +37 -0
  344. tests/nwlistop/test_qbomb.py +40 -0
  345. tests/nwlistop/test_qdesviouh.py +40 -0
  346. tests/nwlistop/test_qturuh.py +40 -0
  347. tests/nwlistop/test_qvertuh.py +40 -0
  348. tests/nwlistop/test_valor_agua.py +40 -0
  349. tests/nwlistop/test_viol_eletricasin.py +37 -0
  350. tests/nwlistop/test_viol_evmin.py +40 -0
  351. tests/nwlistop/test_viol_evminm.py +40 -0
  352. tests/nwlistop/test_viol_evminsin.py +37 -0
  353. tests/nwlistop/test_viol_fpha.py +40 -0
  354. tests/nwlistop/test_viol_ghmin.py +40 -0
  355. tests/nwlistop/test_viol_ghminm.py +40 -0
  356. tests/nwlistop/test_viol_ghminsin.py +37 -0
  357. tests/nwlistop/test_viol_ghminuh.py +40 -0
  358. tests/nwlistop/test_viol_lpp_dfmax.py +40 -0
  359. tests/nwlistop/test_viol_lpp_dfmaxm.py +40 -0
  360. tests/nwlistop/test_viol_lpp_dfmaxsin.py +37 -0
  361. tests/nwlistop/test_viol_lpp_tbmax.py +40 -0
  362. tests/nwlistop/test_viol_lpp_tbmaxm.py +40 -0
  363. tests/nwlistop/test_viol_lpp_tbmaxsin.py +37 -0
  364. tests/nwlistop/test_viol_neg_evap.py +41 -0
  365. tests/nwlistop/test_viol_pos_evap.py +40 -0
  366. tests/nwlistop/test_viol_turbmax.py +40 -0
  367. tests/nwlistop/test_viol_turbmin.py +40 -0
  368. tests/nwlistop/test_viol_vazmax.py +40 -0
  369. tests/nwlistop/test_viol_vazmin.py +40 -0
  370. tests/nwlistop/test_vretiradauh.py +40 -0
  371. {inewave-1.7.4.dist-info → inewave-1.8.0.dist-info}/LICENSE.md +0 -0
  372. {inewave-1.7.4.dist-info → inewave-1.8.0.dist-info}/WHEEL +0 -0
  373. {inewave-1.7.4.dist-info → inewave-1.8.0.dist-info}/top_level.txt +0 -0
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.7.4"
9
+ __version__ = "1.8.0"
10
10
 
11
11
  from . import newave # noqa
12
12
  from . import nwlistcf # noqa
@@ -1,5 +1,14 @@
1
1
  # Inclui os membros
2
2
 
3
+ # Deprecated
4
+ from .avl_cortesfpha_nwv import AvlCortesFpha # noqa
5
+ from .avl_desvfpha_s import AvlDesvFphaS # noqa
6
+ from .avl_desvfpha_v_q import AvlDesvFphaVQ # noqa
7
+ from .eco_fpha import EcoFpha # noqa
8
+ from .nwv_avl_evap import NwvAvlEvap # noqa
9
+ from .nwv_cortes_evap import NwvCortesEvap # noqa
10
+ from .nwv_eco_evap import NwvEcoEvap # noqa
11
+
3
12
  from .abertura import Abertura # noqa
4
13
  from .adterm import Adterm # noqa
5
14
  from .agrint import Agrint # noqa
@@ -46,13 +55,13 @@ from .term import Term # noqa
46
55
  from .vazoes import Vazoes # noqa
47
56
  from .vazpast import Vazpast # noqa
48
57
  from .volref_saz import VolrefSaz # noqa
49
- from .avl_cortesfpha_nwv import AvlCortesFpha # noqa
50
- from .avl_desvfpha_s import AvlDesvFphaS # noqa
51
- from .avl_desvfpha_v_q import AvlDesvFphaVQ # noqa
52
- from .eco_fpha import EcoFpha # noqa
53
- from .nwv_avl_evap import NwvAvlEvap # noqa
54
- from .nwv_cortes_evap import NwvCortesEvap # noqa
55
- from .nwv_eco_evap import NwvEcoEvap # noqa
58
+ from .fpha_cortes import FphaCortes # noqa
59
+ from .fpha_avl_desv_s import FphaAvlDesvS # noqa
60
+ from .fpha_avl_desv_v_q import FphaAvlDesvVQ # noqa
61
+ from .fpha_eco import FphaEco # noqa
62
+ from .evap_avl_desv import EvapAvlDesv # noqa
63
+ from .evap_cortes import EvapCortes # noqa
64
+ from .evap_eco import EvapEco # noqa
56
65
  from .energiaf import Energiaf # noqa
57
66
  from .energiab import Energiab # noqa
58
67
  from .energias import Energias # noqa
@@ -11,6 +11,8 @@ from inewave.newave.modelos.arquivoscsv.arquivocsv import ArquivoCSV
11
11
  from typing import Optional
12
12
  import pandas as pd # type: ignore
13
13
 
14
+ from warnings import warn
15
+
14
16
 
15
17
  class AvlCortesFpha(ArquivoCSV):
16
18
  """
@@ -44,3 +46,11 @@ class AvlCortesFpha(ArquivoCSV):
44
46
  :rtype: pd.DataFrame | None
45
47
  """
46
48
  return self._tabela()
49
+
50
+ def __init__(self, data=...) -> None:
51
+ warn(
52
+ "Esta classe é relativa a um arquivo que não é mais suportado."
53
+ + " Utilize a classe FphaCortes no lugar.",
54
+ DeprecationWarning,
55
+ )
56
+ super().__init__(data)
@@ -5,6 +5,8 @@ from cfinterface.files.blockfile import BlockFile
5
5
  from typing import Optional, TypeVar
6
6
  import pandas as pd # type: ignore
7
7
 
8
+ from warnings import warn
9
+
8
10
 
9
11
  class AvlDesvFphaS(BlockFile):
10
12
  """
@@ -18,6 +20,11 @@ class AvlDesvFphaS(BlockFile):
18
20
  T = TypeVar("T")
19
21
 
20
22
  def __init__(self, data=...) -> None:
23
+ warn(
24
+ "Esta classe é relativa a um arquivo que não é mais suportado."
25
+ + " Utilize a classe FphaAvlDesvS no lugar.",
26
+ DeprecationWarning,
27
+ )
21
28
  super().__init__(data)
22
29
  self.__df_completo: Optional[pd.DataFrame] = None
23
30
 
@@ -5,6 +5,8 @@ from cfinterface.files.blockfile import BlockFile
5
5
  from typing import Optional, TypeVar
6
6
  import pandas as pd # type: ignore
7
7
 
8
+ from warnings import warn
9
+
8
10
 
9
11
  class AvlDesvFphaVQ(BlockFile):
10
12
  """
@@ -18,6 +20,11 @@ class AvlDesvFphaVQ(BlockFile):
18
20
  T = TypeVar("T")
19
21
 
20
22
  def __init__(self, data=...) -> None:
23
+ warn(
24
+ "Esta classe é relativa a um arquivo que não é mais suportado."
25
+ + " Utilize a classe FphaAvlDesvVQ no lugar.",
26
+ DeprecationWarning,
27
+ )
21
28
  super().__init__(data)
22
29
  self.__df_completo: Optional[pd.DataFrame] = None
23
30
 
@@ -5,6 +5,8 @@ from inewave.newave.modelos.arquivoscsv.arquivocsv import ArquivoCSV
5
5
  from typing import Optional
6
6
  import pandas as pd # type: ignore
7
7
 
8
+ from warnings import warn
9
+
8
10
 
9
11
  class EcoFpha(ArquivoCSV):
10
12
  """
@@ -39,3 +41,11 @@ class EcoFpha(ArquivoCSV):
39
41
  :rtype: pd.DataFrame | None
40
42
  """
41
43
  return self._tabela()
44
+
45
+ def __init__(self, data=...) -> None:
46
+ warn(
47
+ "Esta classe é relativa a um arquivo que não é mais suportado."
48
+ + " Utilize a classe FphaEco no lugar.",
49
+ DeprecationWarning,
50
+ )
51
+ super().__init__(data)
@@ -0,0 +1,33 @@
1
+ from inewave.newave.modelos.blocos.versaomodelo import VersaoModelo
2
+ from inewave.newave.modelos.nwv_avl_evap import TabelaAvlEvap
3
+
4
+ from inewave.newave.modelos.arquivoscsv.arquivocsv import ArquivoCSV
5
+ from typing import Optional
6
+ import pandas as pd # type: ignore
7
+
8
+
9
+ class EvapAvlDesv(ArquivoCSV):
10
+ """
11
+ Arquivo com a avaliação da evaporação linear do NEWAVE.
12
+ """
13
+
14
+ BLOCKS = [VersaoModelo, TabelaAvlEvap]
15
+
16
+ @property
17
+ def tabela(self) -> Optional[pd.DataFrame]:
18
+ """
19
+ A tabela de dados que está contida no arquivo.
20
+
21
+ - periodo (`int`)
22
+ - codigo_usina (`int`)
23
+ - nome_usina (`str`)
24
+ - volume_armazenado_hm3 (`float`)
25
+ - evaporacao_calculada_hm3 (`float`)
26
+ - evaporacao_modelo_hm3 (`float`)
27
+ - desvio_absoluto_hm3 (`float`)
28
+ - desvio_percentual (`float`)
29
+
30
+ :return: A tabela como um dataframe
31
+ :rtype: pd.DataFrame | None
32
+ """
33
+ return self._tabela()
@@ -0,0 +1,34 @@
1
+ from inewave.newave.modelos.blocos.versaomodelo import VersaoModelo
2
+ from inewave.newave.modelos.nwv_cortes_evap import TabelaCortesEvap
3
+
4
+ from inewave.newave.modelos.arquivoscsv.arquivocsv import ArquivoCSV
5
+ from typing import Optional
6
+ import pandas as pd # type: ignore
7
+
8
+
9
+ class EvapCortes(ArquivoCSV):
10
+ """
11
+ Arquivo com os cortes da evaporação linear do NEWAVE.
12
+ """
13
+
14
+ BLOCKS = [VersaoModelo, TabelaCortesEvap]
15
+
16
+ @property
17
+ def tabela(self) -> Optional[pd.DataFrame]:
18
+ """
19
+ A tabela de dados que está contida no arquivo.
20
+
21
+ - periodo (`int`)
22
+ - indice_usina (`int`)
23
+ - nome_usina (`str`)
24
+ - derivada_cota_area (`float`)
25
+ - derivada_volume_cota (`float`)
26
+ - volume_referencia_hm3 (`float`)
27
+ - evaporacao_referencia_hm3 (`float`)
28
+ - coeficiente_volume (`float`)
29
+ - rhs_volume (`float`)
30
+
31
+ :return: A tabela como um dataframe
32
+ :rtype: pd.DataFrame | None
33
+ """
34
+ return self._tabela()
@@ -0,0 +1,34 @@
1
+ from inewave.newave.modelos.blocos.versaomodelo import VersaoModelo
2
+ from inewave.newave.modelos.nwv_eco_evap import TabelaEcoEvap
3
+
4
+ from inewave.newave.modelos.arquivoscsv.arquivocsv import ArquivoCSV
5
+ from typing import Optional
6
+ import pandas as pd # type: ignore
7
+
8
+
9
+ class EvapEco(ArquivoCSV):
10
+ """
11
+ Arquivo com o eco dos dados da evaporação linear do NEWAVE.
12
+ """
13
+
14
+ BLOCKS = [VersaoModelo, TabelaEcoEvap]
15
+
16
+ @property
17
+ def tabela(self) -> Optional[pd.DataFrame]:
18
+ """
19
+ A tabela de dados que está contida no arquivo.
20
+
21
+ - periodo (`int`)
22
+ - codigo_usina (`int`)
23
+ - nome_usina (`str`)
24
+ - volume_referencia_hm3 (`float`)
25
+ - evaporacao_referencia_hm3 (`float`)
26
+ - coeficiente_evaporacao_mm_mes (`int`)
27
+ - flag_evaporacao (`int`)
28
+ - evaporacao_linear (`int`)
29
+ - tipo_volume_referencia (`int`)
30
+
31
+ :return: A tabela como um dataframe
32
+ :rtype: pd.DataFrame | None
33
+ """
34
+ return self._tabela()
@@ -0,0 +1,59 @@
1
+ from inewave.newave.modelos.blocos.versaomodelo import VersaoModelo
2
+ from inewave.newave.modelos.avl_desvfpha_s import TabelaAvlDesvFphaS
3
+
4
+ from cfinterface.files.blockfile import BlockFile
5
+ from typing import Optional, TypeVar
6
+ import pandas as pd # type: ignore
7
+
8
+
9
+ class FphaAvlDesvS(BlockFile):
10
+ """
11
+ Arquivo com os desvios da função de produção no plano de
12
+ vazão vertida (S).
13
+ """
14
+
15
+ BLOCKS = [VersaoModelo, TabelaAvlDesvFphaS]
16
+ ENCODING = "iso-8859-1"
17
+
18
+ T = TypeVar("T")
19
+
20
+ def __init__(self, data=...) -> None:
21
+ super().__init__(data)
22
+ self.__df_completo: Optional[pd.DataFrame] = None
23
+
24
+ @property
25
+ def tabela(self) -> Optional[pd.DataFrame]:
26
+ """
27
+ A tabela de dados que está contida no arquivo.
28
+
29
+ - codigo_usina (`int`)
30
+ - nome_usina (`str`)
31
+ - volume_armazenado_percentual (`float`)
32
+ - vazao_turbinada_m3s (`float`)
33
+ - vazao_vertida_m3s (`float`)
34
+ - desvio_percentual (`float`)
35
+
36
+ :return: A tabela como um dataframe
37
+ :rtype: pd.DataFrame | None
38
+ """
39
+ if self.__df_completo is None:
40
+ tabelas = self.data.of_type(TabelaAvlDesvFphaS)
41
+ self.__df_completo = pd.DataFrame()
42
+ for t in tabelas:
43
+ self.__df_completo = pd.concat(
44
+ [self.__df_completo, t.data], ignore_index=True
45
+ )
46
+ return self.__df_completo
47
+
48
+ @property
49
+ def versao(self) -> Optional[str]:
50
+ """
51
+ A versão do modelo utilizada para executar o caso.
52
+
53
+ :return: A versão do modelo
54
+ :rtype: str | None
55
+ """
56
+ b = self.data.get_blocks_of_type(VersaoModelo)
57
+ if isinstance(b, VersaoModelo):
58
+ return b.data
59
+ return None
@@ -0,0 +1,58 @@
1
+ from inewave.newave.modelos.blocos.versaomodelo import VersaoModelo
2
+ from inewave.newave.modelos.avl_desvfpha_v_q import TabelaAvlDesvFphaVQ
3
+
4
+ from cfinterface.files.blockfile import BlockFile
5
+ from typing import Optional, TypeVar
6
+ import pandas as pd # type: ignore
7
+
8
+
9
+ class FphaAvlDesvVQ(BlockFile):
10
+ """
11
+ Arquivo com os desvios da função de produção nos planos de
12
+ volume armazenado e vazão turbinada (V-Q).
13
+ """
14
+
15
+ BLOCKS = [VersaoModelo, TabelaAvlDesvFphaVQ]
16
+ ENCODING = "iso-8859-1"
17
+
18
+ T = TypeVar("T")
19
+
20
+ def __init__(self, data=...) -> None:
21
+ super().__init__(data)
22
+ self.__df_completo: Optional[pd.DataFrame] = None
23
+
24
+ @property
25
+ def tabela(self) -> Optional[pd.DataFrame]:
26
+ """
27
+ A tabela de dados que está contida no arquivo.
28
+
29
+ - codigo_usina (`int`)
30
+ - nome_usina (`str`)
31
+ - volume_armazenado_percentual (`float`)
32
+ - vazao_turbinada_m3s (`float`)
33
+ - desvio_percentual (`float`)
34
+
35
+ :return: A tabela como um dataframe
36
+ :rtype: pd.DataFrame | None
37
+ """
38
+ if self.__df_completo is None:
39
+ tabelas = self.data.of_type(TabelaAvlDesvFphaVQ)
40
+ tabelas_validas = [t.data for t in tabelas if t is not None]
41
+ self.__df_completo = pd.concat(
42
+ [t for t in tabelas_validas if isinstance(t, pd.DataFrame)],
43
+ ignore_index=True,
44
+ )
45
+ return self.__df_completo
46
+
47
+ @property
48
+ def versao(self) -> Optional[str]:
49
+ """
50
+ A versão do modelo utilizada para executar o caso.
51
+
52
+ :return: A versão do modelo
53
+ :rtype: str | None
54
+ """
55
+ b = self.data.get_blocks_of_type(VersaoModelo)
56
+ if isinstance(b, VersaoModelo):
57
+ return b.data
58
+ return None
@@ -0,0 +1,40 @@
1
+ from inewave.newave.modelos.blocos.versaomodelo import (
2
+ VersaoModeloLibs,
3
+ )
4
+ from inewave.newave.modelos.avl_cortesfpha_nwv import (
5
+ TabelaAvlCortesFpha,
6
+ )
7
+
8
+ from inewave.newave.modelos.arquivoscsv.arquivocsv import ArquivoCSV
9
+ from typing import Optional
10
+ import pandas as pd # type: ignore
11
+
12
+
13
+ class FphaCortes(ArquivoCSV):
14
+ """
15
+ Arquivo com os cortes da função de produção para as UHEs
16
+ do NEWAVE.
17
+ """
18
+
19
+ BLOCKS = [VersaoModeloLibs, TabelaAvlCortesFpha]
20
+
21
+ @property
22
+ def tabela(self) -> Optional[pd.DataFrame]:
23
+ """
24
+ A tabela de dados que está contida no arquivo.
25
+
26
+ - codigo_usina (`int`)
27
+ - periodo (`int`)
28
+ - nome_usina (`str`)
29
+ - indice_corte (`int`)
30
+ - fator_correcao (`float`)
31
+ - rhs_energia (`float`)
32
+ - coeficiente_volume_util_MW_hm3 (`float`)
33
+ - coeficiente_vazao_turbinada_MW_m3s (`float`)
34
+ - coeficiente_vazao_vertida_MW_m3s (`float`)
35
+ - coeficiente_vazao_lateral_MW_m3s (`float`)
36
+
37
+ :return: A tabela como um dataframe
38
+ :rtype: pd.DataFrame | None
39
+ """
40
+ return self._tabela()
@@ -0,0 +1,41 @@
1
+ from inewave.newave.modelos.blocos.versaomodelo import VersaoModelo
2
+ from inewave.newave.modelos.eco_fpha import TabelaEcoFpha
3
+
4
+ from inewave.newave.modelos.arquivoscsv.arquivocsv import ArquivoCSV
5
+ from typing import Optional
6
+ import pandas as pd # type: ignore
7
+
8
+
9
+ class FphaEco(ArquivoCSV):
10
+ """
11
+ Arquivo com o eco da função de produção para as UHEs
12
+ do NEWAVE.
13
+ """
14
+
15
+ BLOCKS = [VersaoModelo, TabelaEcoFpha]
16
+
17
+ @property
18
+ def tabela(self) -> Optional[pd.DataFrame]:
19
+ """
20
+ A tabela de dados que está contida no arquivo.
21
+
22
+ - codigo_usina (`int`)
23
+ - periodo (`int`)
24
+ - nome_usina (`str`)
25
+ - tipo (`int`)
26
+ - conv (`int`)
27
+ - alfa (`int`)
28
+ - rems (`int`)
29
+ - numero_pontos_vazao_turbinada (`int`)
30
+ - vazao_turbinada_minima (`float`)
31
+ - vazao_turbinada_maxima (`float`)
32
+ - numero_pontos_volume_armazenado (`int`)
33
+ - volume_armazenado_minimo (`float`)
34
+ - volume_armazenado_maximo (`float`)
35
+ - geracao_minima (`float`)
36
+ - geracao_maxima (`float`)
37
+
38
+ :return: A tabela como um dataframe
39
+ :rtype: pd.DataFrame | None
40
+ """
41
+ return self._tabela()
@@ -18,6 +18,13 @@ class BlocoUTEAdTerm(Section):
18
18
  Bloco com os despachos antecipados das UTEs por patamar.
19
19
  """
20
20
 
21
+ __slots__ = [
22
+ "__linha_ute",
23
+ "__linha_despachos",
24
+ "__cabecalhos",
25
+ "__numero_patamares",
26
+ ]
27
+
21
28
  FIM_BLOCO = " 9999"
22
29
 
23
30
  def __init__(self, previous=None, next=None, data=None) -> None:
@@ -25,6 +25,8 @@ class BlocoGruposAgrint(Section):
25
25
  grupos.
26
26
  """
27
27
 
28
+ __slots__ = ["__linha", "__cabecalhos"]
29
+
28
30
  FIM_BLOCO = " 999"
29
31
 
30
32
  def __init__(self, previous=None, next=None, data=None) -> None:
@@ -11,6 +11,8 @@ class BlocoNomesArquivos(Section):
11
11
  entrada do NEWAVE `arquivos.dat`.
12
12
  """
13
13
 
14
+ __slots__ = ["__linha"]
15
+
14
16
  FIM_BLOCO = " 9999"
15
17
 
16
18
  def __init__(self, previous=None, next=None, data=None) -> None:
@@ -13,6 +13,8 @@ class TabelaAvlCortesFpha28(TabelaCSV):
13
13
  UHEs do modelo NEWAVE.
14
14
  """
15
15
 
16
+ __slots__ = []
17
+
16
18
  BEGIN_PATTERN = "-----;-----;--------------;"
17
19
 
18
20
  LINE_MODEL = Line(
@@ -51,6 +53,8 @@ class TabelaAvlCortesFpha(TabelaCSV):
51
53
  UHEs do modelo NEWAVE.
52
54
  """
53
55
 
56
+ __slots__ = []
57
+
54
58
  BEGIN_PATTERN = "----;----;--------------;-------;"
55
59
 
56
60
  LINE_MODEL = Line(
@@ -14,6 +14,8 @@ class TabelaAvlDesvFphaS(Block):
14
14
  vazão vertida (S).
15
15
  """
16
16
 
17
+ __slots__ = ["__linha"]
18
+
17
19
  BEGIN_PATTERN = "-----;--------------;--------;"
18
20
 
19
21
  COLUMN_NAMES = [
@@ -14,6 +14,8 @@ class TabelaAvlDesvFphaVQ(Block):
14
14
  volume armazenado e vazão turbinada (V-Q).
15
15
  """
16
16
 
17
+ __slots__ = ["__linha"]
18
+
17
19
  BEGIN_PATTERN = "-----;--------------;------;"
18
20
 
19
21
  COLUMN_NAMES = [
@@ -11,6 +11,8 @@ class TabelaCSV(Block):
11
11
  a partir de um modelo de linha, para arquivos de saída do NEWAVE.
12
12
  """
13
13
 
14
+ __slots__ = []
15
+
14
16
  BEGIN_PATTERN = "-----;------;"
15
17
  LINE_MODEL = Line([])
16
18
  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: NEWAVE"
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"NEWAVE -"
38
42
  END_PATTERN = ""
39
43
 
@@ -26,6 +26,8 @@ class BlocoCargasAdicionais(Section):
26
26
  e por subsistema.
27
27
  """
28
28
 
29
+ __slots__ = ["__linha_subsis", "__linha_cargas", "__cabecalhos"]
30
+
29
31
  FIM_BLOCO = " 999"
30
32
 
31
33
  def __init__(self, previous=None, next=None, data=None) -> None:
@@ -10,6 +10,8 @@ class NomeCaso(Section):
10
10
  entrada do NEWAVE `caso.dat`.
11
11
  """
12
12
 
13
+ __slots__ = ["__linha"]
14
+
13
15
  def __init__(self, previous=None, next=None, data=None) -> None:
14
16
  super().__init__(previous, next, data)
15
17
  self.__linha = Line([LiteralField(40, 0)])
@@ -43,6 +45,8 @@ class CaminhoGerenciadorProcessos(Section):
43
45
  no NEWAVE, contido no arquivo `caso.dat`.
44
46
  """
45
47
 
48
+ __slots__ = ["__linha"]
49
+
46
50
  def __init__(self, previous=None, next=None, data=None) -> None:
47
51
  super().__init__(previous, next, data)
48
52
  self.__linha = Line([LiteralField(120, 0)])
@@ -22,6 +22,8 @@ class BlocoUTEClasT(Section):
22
22
  e por subsistema.
23
23
  """
24
24
 
25
+ __slots__ = ["__linha", "__cabecalhos", "__numero_anos_planejamento"]
26
+
25
27
  FIM_BLOCO = " 9999"
26
28
 
27
29
  def __init__(self, previous=None, next=None, data=None) -> None:
@@ -13,6 +13,8 @@ class BlocoConfUHE(Section):
13
13
  no arquivo do NEWAVE `confhd.dat`.
14
14
  """
15
15
 
16
+ __slots__ = ["__linha_uhe", "__cabecalhos"]
17
+
16
18
  def __init__(self, previous=None, next=None, data=None) -> None:
17
19
  super().__init__(previous, next, data)
18
20
  self.__linha_uhe = Line(
@@ -12,6 +12,8 @@ class BlocoConfUTE(Section):
12
12
  no arquivo do NEWAVE `conft.dat`.
13
13
  """
14
14
 
15
+ __slots__ = ["__linha_ute", "__cabecalhos"]
16
+
15
17
  def __init__(self, previous=None, next=None, data=None) -> None:
16
18
  super().__init__(previous, next, data)
17
19
  self.__linha_ute = Line(
@@ -9,6 +9,20 @@ class SecaoDadosCortes(Section):
9
9
  Registro com os cortes da FCF.
10
10
  """
11
11
 
12
+ __slots__ = [
13
+ "__tabela_int",
14
+ "__numero_coeficientes",
15
+ "__tabela_float",
16
+ "__tamanho_registro",
17
+ "__numero_total_cortes",
18
+ "__codigos_rees",
19
+ "__codigos_uhes",
20
+ "__codigos_submercados",
21
+ "__ordem_maxima_parp",
22
+ "__numero_patamares_carga",
23
+ "__lag_maximo_gnl",
24
+ ]
25
+
12
26
  def __eq__(self, o: object) -> bool:
13
27
  if not isinstance(o, SecaoDadosCortes):
14
28
  return False
@@ -11,6 +11,26 @@ class SecaoDadosCortesh(Section):
11
11
  arquivo cortesh.dat
12
12
  """
13
13
 
14
+ __slots__ = [
15
+ "data" "__df_ultimo_corte_por_estagio",
16
+ "__df_dados_submercado",
17
+ "__df_dados_uhes",
18
+ "__tamanho_segundo_registro",
19
+ "__tamanho_terceiro_registro",
20
+ "__tamanho_quarto_registro",
21
+ "__tamanho_quinto_registro",
22
+ "__tamanho_sexto_registro",
23
+ "__tamanho_setimo_registro",
24
+ "__tamanho_oitavo_registro",
25
+ "__tamanho_nono_registro",
26
+ "__tamanho_decimo_registro",
27
+ "__tamanho_decimo_primeiro_registro",
28
+ "__tamanho_decimo_segundo_registro",
29
+ "__tamanho_decimo_terceiro_registro",
30
+ "__tamanho_decimo_quarto_registro",
31
+ "__df_ultimo_corte_por_estagio",
32
+ ]
33
+
14
34
  REGISTER_SIZE = 46080
15
35
 
16
36
  def __init__(self, previous=None, next=None, data=None) -> None:
@@ -21,6 +21,8 @@ class BlocoConfiguracoesPenalizacaoCurva(Section):
21
21
  existente no arquivo do NEWAVE `curva.dat`.
22
22
  """
23
23
 
24
+ __slots__ = ["__linha", "__cabecalhos"]
25
+
24
26
  def __init__(self, previous=None, next=None, data=None) -> None:
25
27
  super().__init__(previous, next, data)
26
28
  self.__linha = Line(
@@ -19,6 +19,8 @@ class BlocoValoresConstantesCVAR(Block):
19
19
  Bloco com valores dos parâmetros ALFA e LAMBDA constantes.
20
20
  """
21
21
 
22
+ __slots__ = ["__linha", "__cabecalhos"]
23
+
22
24
  BEGIN_PATTERN = "VALORES CONSTANTE NO TEMPO"
23
25
  END_PATTERN = ""
24
26