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.
- inewave/__init__.py +1 -1
- inewave/newave/__init__.py +16 -7
- inewave/newave/avl_cortesfpha_nwv.py +10 -0
- inewave/newave/avl_desvfpha_s.py +7 -0
- inewave/newave/avl_desvfpha_v_q.py +7 -0
- inewave/newave/eco_fpha.py +10 -0
- inewave/newave/evap_avl_desv.py +33 -0
- inewave/newave/evap_cortes.py +34 -0
- inewave/newave/evap_eco.py +34 -0
- inewave/newave/fpha_avl_desv_s.py +59 -0
- inewave/newave/fpha_avl_desv_v_q.py +58 -0
- inewave/newave/fpha_cortes.py +40 -0
- inewave/newave/fpha_eco.py +41 -0
- inewave/newave/modelos/adterm.py +7 -0
- inewave/newave/modelos/agrint.py +2 -0
- inewave/newave/modelos/arquivos.py +2 -0
- inewave/newave/modelos/avl_cortesfpha_nwv.py +4 -0
- inewave/newave/modelos/avl_desvfpha_s.py +2 -0
- inewave/newave/modelos/avl_desvfpha_v_q.py +2 -0
- inewave/newave/modelos/blocos/tabelacsv.py +2 -0
- inewave/newave/modelos/blocos/versaomodelo.py +4 -0
- inewave/newave/modelos/cadic.py +2 -0
- inewave/newave/modelos/caso.py +4 -0
- inewave/newave/modelos/clast.py +2 -0
- inewave/newave/modelos/confhd.py +2 -0
- inewave/newave/modelos/conft.py +2 -0
- inewave/newave/modelos/cortes.py +14 -0
- inewave/newave/modelos/cortesh.py +20 -0
- inewave/newave/modelos/curva.py +2 -0
- inewave/newave/modelos/cvar.py +2 -0
- inewave/newave/modelos/dger.py +208 -0
- inewave/newave/modelos/dsvagua.py +2 -0
- inewave/newave/modelos/eafpast.py +2 -0
- inewave/newave/modelos/enavazb.py +2 -0
- inewave/newave/modelos/enavazf.py +2 -0
- inewave/newave/modelos/energiab.py +2 -0
- inewave/newave/modelos/energiaf.py +2 -0
- inewave/newave/modelos/energias.py +9 -0
- inewave/newave/modelos/engnat.py +2 -0
- inewave/newave/modelos/exph.py +2 -0
- inewave/newave/modelos/expt.py +2 -0
- inewave/newave/modelos/forward.py +27 -0
- inewave/newave/modelos/forwarh.py +2 -0
- inewave/newave/modelos/ghmin.py +2 -0
- inewave/newave/modelos/hidr.py +2 -0
- inewave/newave/modelos/manutt.py +2 -0
- inewave/newave/modelos/modif.py +32 -0
- inewave/newave/modelos/newavetim.py +2 -0
- inewave/newave/modelos/nwv_avl_evap.py +2 -0
- inewave/newave/modelos/nwv_cortes_evap.py +2 -0
- inewave/newave/modelos/nwv_eco_evap.py +2 -0
- inewave/newave/modelos/parp.py +45 -0
- inewave/newave/modelos/parpeol.py +23 -0
- inewave/newave/modelos/parpvaz.py +37 -0
- inewave/newave/modelos/patamar.py +28 -0
- inewave/newave/modelos/penalid.py +2 -0
- inewave/newave/modelos/pmo.py +103 -0
- inewave/newave/modelos/re.py +2 -0
- inewave/newave/modelos/ree.py +2 -0
- inewave/newave/modelos/selcor.py +5 -3
- inewave/newave/modelos/shist.py +10 -6
- inewave/newave/modelos/sistema.py +10 -0
- inewave/newave/modelos/term.py +2 -0
- inewave/newave/modelos/vazaob.py +2 -0
- inewave/newave/modelos/vazaof.py +2 -0
- inewave/newave/modelos/vazaos.py +2 -0
- inewave/newave/modelos/vazinat.py +2 -0
- inewave/newave/modelos/vazoes.py +2 -0
- inewave/newave/modelos/vazpast.py +2 -0
- inewave/newave/modelos/volref_saz.py +2 -0
- inewave/newave/modif.py +2 -0
- inewave/newave/nwv_avl_evap.py +10 -0
- inewave/newave/nwv_cortes_evap.py +10 -0
- inewave/newave/nwv_eco_evap.py +10 -0
- inewave/newave/pmo.py +17 -0
- inewave/newave/vazoes.py +2 -0
- inewave/nwlistcf/modelos/arquivos.py +2 -0
- inewave/nwlistcf/modelos/caso.py +2 -0
- inewave/nwlistcf/modelos/estados.py +10 -0
- inewave/nwlistcf/modelos/nwlistcfdat.py +2 -0
- inewave/nwlistcf/modelos/nwlistcfrel.py +2 -0
- inewave/nwlistop/__init__.py +65 -30
- inewave/nwlistop/c_v_rhq.py +10 -0
- inewave/nwlistop/c_v_rhq_s.py +10 -0
- inewave/nwlistop/c_v_rhv_s.py +10 -0
- inewave/nwlistop/celetricas.py +10 -0
- inewave/nwlistop/cviol_eletricasin.py +19 -0
- inewave/nwlistop/cviol_rhq.py +21 -0
- inewave/nwlistop/cviol_rhq_sin.py +19 -0
- inewave/nwlistop/cviol_rhv.py +21 -0
- inewave/nwlistop/cviol_rhv_sin.py +19 -0
- inewave/nwlistop/deletricas.py +10 -0
- inewave/nwlistop/depminuh.py +10 -0
- inewave/nwlistop/desvuh.py +10 -0
- inewave/nwlistop/dtbmax.py +10 -0
- inewave/nwlistop/dtbmin.py +10 -0
- inewave/nwlistop/dvazmax.py +10 -0
- inewave/nwlistop/modelos/arquivos/arquivoclassetermicasubmercadopatamar.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivoestacaobombeamentopatamar.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivoparsubmercadopatamar.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivoree.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivoreepatamar.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivorestricao.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivorestricaopatamar.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivosin.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivosinpatamar.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivosubmercado.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivosubmercadopatamar.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivousina.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivousinapatamar.py +2 -0
- inewave/nwlistop/modelos/blocos/estacaobombeamento.py +2 -0
- inewave/nwlistop/modelos/blocos/parsubmercados.py +2 -0
- inewave/nwlistop/modelos/blocos/ree.py +2 -0
- inewave/nwlistop/modelos/blocos/restricao.py +2 -0
- inewave/nwlistop/modelos/blocos/submercado.py +2 -0
- inewave/nwlistop/modelos/blocos/usina.py +2 -0
- inewave/nwlistop/modelos/blocos/valoresclassetermicaseriepatamar.py +8 -0
- inewave/nwlistop/modelos/blocos/valoresserie.py +2 -0
- inewave/nwlistop/modelos/blocos/valoresseriepatamar.py +2 -0
- inewave/nwlistop/modelos/c_v_rhq.py +2 -0
- inewave/nwlistop/modelos/c_v_rhq_s.py +2 -0
- inewave/nwlistop/modelos/c_v_rhv.py +2 -0
- inewave/nwlistop/modelos/c_v_rhv_s.py +2 -0
- inewave/nwlistop/modelos/cbomb.py +2 -0
- inewave/nwlistop/modelos/cbombsin.py +2 -0
- inewave/nwlistop/modelos/cdef.py +2 -0
- inewave/nwlistop/modelos/cdefsin.py +2 -0
- inewave/nwlistop/modelos/celetricas.py +2 -0
- inewave/nwlistop/modelos/cmarg.py +2 -0
- inewave/nwlistop/modelos/cmargmed.py +2 -0
- inewave/nwlistop/modelos/coper.py +2 -0
- inewave/nwlistop/modelos/corteolm.py +2 -0
- inewave/nwlistop/modelos/cterm.py +2 -0
- inewave/nwlistop/modelos/ctermsin.py +2 -0
- inewave/nwlistop/modelos/cviol_eletricasin.py +28 -0
- inewave/nwlistop/modelos/cviol_rhq.py +28 -0
- inewave/nwlistop/modelos/cviol_rhq_sin.py +28 -0
- inewave/nwlistop/modelos/cviol_rhv.py +26 -0
- inewave/nwlistop/modelos/cviol_rhv_sin.py +26 -0
- inewave/nwlistop/modelos/def.py +2 -0
- inewave/nwlistop/modelos/defsin.py +2 -0
- inewave/nwlistop/modelos/deletricas.py +2 -0
- inewave/nwlistop/modelos/depminuh.py +2 -0
- inewave/nwlistop/modelos/desvuh.py +2 -0
- inewave/nwlistop/modelos/dflppdfmaxm.py +2 -0
- inewave/nwlistop/modelos/dflpptbmaxm.py +2 -0
- inewave/nwlistop/modelos/dfphauh.py +2 -0
- inewave/nwlistop/modelos/dlppdfmax.py +2 -0
- inewave/nwlistop/modelos/dlppdfmaxs.py +2 -0
- inewave/nwlistop/modelos/dlpptbmax.py +2 -0
- inewave/nwlistop/modelos/dlpptbmaxs.py +2 -0
- inewave/nwlistop/modelos/dnegevap.py +2 -0
- inewave/nwlistop/modelos/dposevap.py +2 -0
- inewave/nwlistop/modelos/dtbmax.py +2 -0
- inewave/nwlistop/modelos/dtbmin.py +2 -0
- inewave/nwlistop/modelos/dvazmax.py +2 -0
- inewave/nwlistop/modelos/eaf.py +2 -0
- inewave/nwlistop/modelos/eafb.py +2 -0
- inewave/nwlistop/modelos/eafbm.py +2 -0
- inewave/nwlistop/modelos/eafbsin.py +2 -0
- inewave/nwlistop/modelos/eafm.py +2 -0
- inewave/nwlistop/modelos/earmf.py +2 -0
- inewave/nwlistop/modelos/earmfm.py +2 -0
- inewave/nwlistop/modelos/earmfp.py +2 -0
- inewave/nwlistop/modelos/earmfpm.py +2 -0
- inewave/nwlistop/modelos/earmfpsin.py +2 -0
- inewave/nwlistop/modelos/earmfsin.py +2 -0
- inewave/nwlistop/modelos/edesvc.py +2 -0
- inewave/nwlistop/modelos/edesvcm.py +2 -0
- inewave/nwlistop/modelos/edesvcsin.py +2 -0
- inewave/nwlistop/modelos/evapo.py +2 -0
- inewave/nwlistop/modelos/evapom.py +2 -0
- inewave/nwlistop/modelos/evaporsin.py +2 -0
- inewave/nwlistop/modelos/evert.py +2 -0
- inewave/nwlistop/modelos/evertm.py +2 -0
- inewave/nwlistop/modelos/evertsin.py +2 -0
- inewave/nwlistop/modelos/exces.py +2 -0
- inewave/nwlistop/modelos/excessin.py +2 -0
- inewave/nwlistop/modelos/form_rhq.py +2 -0
- inewave/nwlistop/modelos/form_rhv.py +2 -0
- inewave/nwlistop/modelos/fteolm.py +2 -0
- inewave/nwlistop/modelos/fteolsin.py +2 -0
- inewave/nwlistop/modelos/geol.py +2 -0
- inewave/nwlistop/modelos/geolm.py +2 -0
- inewave/nwlistop/modelos/geolsin.py +2 -0
- inewave/nwlistop/modelos/gh_fphexat.py +2 -0
- inewave/nwlistop/modelos/ghidr.py +2 -0
- inewave/nwlistop/modelos/ghidrm.py +2 -0
- inewave/nwlistop/modelos/ghidrsin.py +2 -0
- inewave/nwlistop/modelos/ghiduh.py +2 -0
- inewave/nwlistop/modelos/ghmax.py +2 -0
- inewave/nwlistop/modelos/ghmax_fpha.py +2 -0
- inewave/nwlistop/modelos/ghmax_fphc.py +2 -0
- inewave/nwlistop/modelos/ghmaxm.py +2 -0
- inewave/nwlistop/modelos/ghmaxmr.py +2 -0
- inewave/nwlistop/modelos/ghmaxr.py +2 -0
- inewave/nwlistop/modelos/ghmaxrsin.py +2 -0
- inewave/nwlistop/modelos/ghmaxsin.py +2 -0
- inewave/nwlistop/modelos/ghtot.py +2 -0
- inewave/nwlistop/modelos/ghtotm.py +2 -0
- inewave/nwlistop/modelos/ghtotsin.py +2 -0
- inewave/nwlistop/modelos/gtert.py +2 -0
- inewave/nwlistop/modelos/gttot.py +2 -0
- inewave/nwlistop/modelos/gttotsin.py +2 -0
- inewave/nwlistop/modelos/hjus.py +2 -0
- inewave/nwlistop/modelos/hliq.py +2 -0
- inewave/nwlistop/modelos/hmont.py +2 -0
- inewave/nwlistop/modelos/intercambio.py +2 -0
- inewave/nwlistop/modelos/invade.py +2 -0
- inewave/nwlistop/modelos/invadem.py +2 -0
- inewave/nwlistop/modelos/mediasmerc.py +2 -0
- inewave/nwlistop/modelos/mediasree.py +2 -0
- inewave/nwlistop/modelos/mediasrep.py +2 -0
- inewave/nwlistop/modelos/mediasrhq.py +2 -0
- inewave/nwlistop/modelos/mediasrhv.py +2 -0
- inewave/nwlistop/modelos/mediassin.py +2 -0
- inewave/nwlistop/modelos/mediasusie.py +2 -0
- inewave/nwlistop/modelos/mediasusih.py +2 -0
- inewave/nwlistop/modelos/mediasusit.py +2 -0
- inewave/nwlistop/modelos/mercl.py +2 -0
- inewave/nwlistop/modelos/merclsin.py +2 -0
- inewave/nwlistop/modelos/mevmin.py +2 -0
- inewave/nwlistop/modelos/mevminm.py +2 -0
- inewave/nwlistop/modelos/mevminsin.py +2 -0
- inewave/nwlistop/modelos/nwlistopdat.py +11 -0
- inewave/nwlistop/modelos/perdf.py +2 -0
- inewave/nwlistop/modelos/perdfm.py +2 -0
- inewave/nwlistop/modelos/perdfsin.py +2 -0
- inewave/nwlistop/modelos/pivarm.py +22 -0
- inewave/nwlistop/modelos/pivarmincr.py +22 -0
- inewave/nwlistop/modelos/qafluh.py +2 -0
- inewave/nwlistop/modelos/qbomb.py +28 -0
- inewave/nwlistop/modelos/qdesviouh.py +28 -0
- inewave/nwlistop/modelos/qincruh.py +2 -0
- inewave/nwlistop/modelos/qturuh.py +28 -0
- inewave/nwlistop/modelos/qvertuh.py +28 -0
- inewave/nwlistop/modelos/rhslppdf.py +2 -0
- inewave/nwlistop/modelos/rhslpptb.py +2 -0
- inewave/nwlistop/modelos/vagua.py +2 -0
- inewave/nwlistop/modelos/valor_agua.py +24 -0
- inewave/nwlistop/modelos/varmpuh.py +2 -0
- inewave/nwlistop/modelos/varmuh.py +2 -0
- inewave/nwlistop/modelos/vbomb.py +2 -0
- inewave/nwlistop/modelos/vdesviouh.py +2 -0
- inewave/nwlistop/modelos/vento.py +2 -0
- inewave/nwlistop/modelos/vertuh.py +2 -0
- inewave/nwlistop/modelos/verturb.py +2 -0
- inewave/nwlistop/modelos/verturbm.py +2 -0
- inewave/nwlistop/modelos/verturbsin.py +2 -0
- inewave/nwlistop/modelos/vevapuh.py +2 -0
- inewave/nwlistop/modelos/vevmin.py +2 -0
- inewave/nwlistop/modelos/vevminm.py +2 -0
- inewave/nwlistop/modelos/vevminsin.py +2 -0
- inewave/nwlistop/modelos/vghmin.py +2 -0
- inewave/nwlistop/modelos/vghminm.py +2 -0
- inewave/nwlistop/modelos/vghminsin.py +2 -0
- inewave/nwlistop/modelos/vghminuh.py +2 -0
- inewave/nwlistop/modelos/viol_eletricasin.py +28 -0
- inewave/nwlistop/modelos/viol_evmin.py +23 -0
- inewave/nwlistop/modelos/viol_evminm.py +23 -0
- inewave/nwlistop/modelos/viol_evminsin.py +23 -0
- inewave/nwlistop/modelos/viol_fpha.py +31 -0
- inewave/nwlistop/modelos/viol_ghmin.py +29 -0
- inewave/nwlistop/modelos/viol_ghminm.py +29 -0
- inewave/nwlistop/modelos/viol_ghminsin.py +29 -0
- inewave/nwlistop/modelos/viol_ghminuh.py +28 -0
- inewave/nwlistop/modelos/viol_lpp_dfmax.py +29 -0
- inewave/nwlistop/modelos/viol_lpp_dfmaxm.py +29 -0
- inewave/nwlistop/modelos/viol_lpp_dfmaxsin.py +29 -0
- inewave/nwlistop/modelos/viol_lpp_tbmax.py +29 -0
- inewave/nwlistop/modelos/viol_lpp_tbmaxm.py +29 -0
- inewave/nwlistop/modelos/viol_lpp_tbmaxsin.py +29 -0
- inewave/nwlistop/modelos/viol_neg_evap.py +26 -0
- inewave/nwlistop/modelos/viol_pos_evap.py +26 -0
- inewave/nwlistop/modelos/viol_rhq.py +2 -0
- inewave/nwlistop/modelos/viol_rhv.py +2 -0
- inewave/nwlistop/modelos/viol_turbmax.py +28 -0
- inewave/nwlistop/modelos/viol_turbmin.py +28 -0
- inewave/nwlistop/modelos/viol_vazmax.py +28 -0
- inewave/nwlistop/modelos/viol_vazmin.py +28 -0
- inewave/nwlistop/modelos/vmort.py +2 -0
- inewave/nwlistop/modelos/vmortm.py +2 -0
- inewave/nwlistop/modelos/vmortsin.py +2 -0
- inewave/nwlistop/modelos/vretiradauh.py +26 -0
- inewave/nwlistop/modelos/vturuh.py +2 -0
- inewave/nwlistop/pivarm.py +13 -2
- inewave/nwlistop/pivarmincr.py +13 -2
- inewave/nwlistop/qbomb.py +23 -0
- inewave/nwlistop/qdesviouh.py +21 -0
- inewave/nwlistop/qturuh.py +21 -0
- inewave/nwlistop/qvertuh.py +21 -0
- inewave/nwlistop/vagua.py +10 -0
- inewave/nwlistop/valor_agua.py +21 -0
- inewave/nwlistop/vertuh.py +10 -0
- inewave/nwlistop/vevmin.py +10 -0
- inewave/nwlistop/vevminm.py +10 -0
- inewave/nwlistop/vevminsin.py +10 -0
- inewave/nwlistop/vghmin.py +10 -0
- inewave/nwlistop/vghminm.py +10 -0
- inewave/nwlistop/vghminsin.py +10 -0
- inewave/nwlistop/viol_eletricasin.py +19 -0
- inewave/nwlistop/viol_evmin.py +20 -0
- inewave/nwlistop/viol_evminm.py +22 -0
- inewave/nwlistop/viol_evminsin.py +19 -0
- inewave/nwlistop/viol_fpha.py +22 -0
- inewave/nwlistop/viol_ghmin.py +22 -0
- inewave/nwlistop/viol_ghminm.py +22 -0
- inewave/nwlistop/viol_ghminsin.py +19 -0
- inewave/nwlistop/viol_ghminuh.py +22 -0
- inewave/nwlistop/viol_lpp_dfmax.py +22 -0
- inewave/nwlistop/viol_lpp_dfmaxm.py +22 -0
- inewave/nwlistop/viol_lpp_dfmaxsin.py +18 -0
- inewave/nwlistop/viol_lpp_tbmax.py +22 -0
- inewave/nwlistop/viol_lpp_tbmaxm.py +22 -0
- inewave/nwlistop/viol_lpp_tbmaxsin.py +18 -0
- inewave/nwlistop/viol_neg_evap.py +22 -0
- inewave/nwlistop/viol_pos_evap.py +22 -0
- inewave/nwlistop/viol_turbmax.py +22 -0
- inewave/nwlistop/viol_turbmin.py +22 -0
- inewave/nwlistop/viol_vazmax.py +22 -0
- inewave/nwlistop/viol_vazmin.py +22 -0
- inewave/nwlistop/vretiradauh.py +21 -0
- inewave/nwlistop/vturuh.py +10 -0
- {inewave-1.7.4.dist-info → inewave-1.8.0.dist-info}/METADATA +2 -2
- {inewave-1.7.4.dist-info → inewave-1.8.0.dist-info}/RECORD +373 -264
- tests/libs/test_restricoes.py +0 -3
- tests/libs/test_usinas_hidreletricas.py +0 -2
- tests/mocks/arquivos/pivarm.py +22 -0
- tests/mocks/arquivos/pivarmincr.py +22 -0
- tests/mocks/arquivos/pmo.py +6 -1
- tests/mocks/arquivos/viol_fpha.py +29 -0
- tests/newave/test_dger.py +0 -2
- tests/newave/test_evap_avl_desv.py +40 -0
- tests/newave/test_evap_cortes.py +41 -0
- tests/newave/test_evap_eco.py +41 -0
- tests/newave/test_fpha_avl_desv_s.py +39 -0
- tests/newave/test_fpha_avl_desv_v_q.py +38 -0
- tests/newave/test_fpha_cortes.py +48 -0
- tests/newave/test_fpha_eco.py +47 -0
- tests/newave/test_pmo.py +14 -0
- tests/nwlistop/test_cviol_eletricasin.py +37 -0
- tests/nwlistop/test_cviol_rhq_sin.py +37 -0
- tests/nwlistop/test_cviol_rhv_sin.py +37 -0
- tests/nwlistop/test_qbomb.py +40 -0
- tests/nwlistop/test_qdesviouh.py +40 -0
- tests/nwlistop/test_qturuh.py +40 -0
- tests/nwlistop/test_qvertuh.py +40 -0
- tests/nwlistop/test_valor_agua.py +40 -0
- tests/nwlistop/test_viol_eletricasin.py +37 -0
- tests/nwlistop/test_viol_evmin.py +40 -0
- tests/nwlistop/test_viol_evminm.py +40 -0
- tests/nwlistop/test_viol_evminsin.py +37 -0
- tests/nwlistop/test_viol_fpha.py +40 -0
- tests/nwlistop/test_viol_ghmin.py +40 -0
- tests/nwlistop/test_viol_ghminm.py +40 -0
- tests/nwlistop/test_viol_ghminsin.py +37 -0
- tests/nwlistop/test_viol_ghminuh.py +40 -0
- tests/nwlistop/test_viol_lpp_dfmax.py +40 -0
- tests/nwlistop/test_viol_lpp_dfmaxm.py +40 -0
- tests/nwlistop/test_viol_lpp_dfmaxsin.py +37 -0
- tests/nwlistop/test_viol_lpp_tbmax.py +40 -0
- tests/nwlistop/test_viol_lpp_tbmaxm.py +40 -0
- tests/nwlistop/test_viol_lpp_tbmaxsin.py +37 -0
- tests/nwlistop/test_viol_neg_evap.py +41 -0
- tests/nwlistop/test_viol_pos_evap.py +40 -0
- tests/nwlistop/test_viol_turbmax.py +40 -0
- tests/nwlistop/test_viol_turbmin.py +40 -0
- tests/nwlistop/test_viol_vazmax.py +40 -0
- tests/nwlistop/test_viol_vazmin.py +40 -0
- tests/nwlistop/test_vretiradauh.py +40 -0
- {inewave-1.7.4.dist-info → inewave-1.8.0.dist-info}/LICENSE.md +0 -0
- {inewave-1.7.4.dist-info → inewave-1.8.0.dist-info}/WHEEL +0 -0
- {inewave-1.7.4.dist-info → inewave-1.8.0.dist-info}/top_level.txt +0 -0
|
@@ -19,6 +19,8 @@ class BlocoPenalidades(Section):
|
|
|
19
19
|
e outras ações.
|
|
20
20
|
"""
|
|
21
21
|
|
|
22
|
+
__slots__ = ["__linha", "__cabecalhos", "__numero_patamares_penalidade"]
|
|
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(
|
inewave/newave/modelos/pmo.py
CHANGED
|
@@ -21,12 +21,54 @@ from inewave._utils.formatacao import (
|
|
|
21
21
|
)
|
|
22
22
|
|
|
23
23
|
|
|
24
|
+
class BlocoVersaoModeloPMO(Block):
|
|
25
|
+
"""
|
|
26
|
+
Bloco com a versão do modelo localizado no arquivo `pmo.dat`.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
__slots__ = ["__line"]
|
|
30
|
+
|
|
31
|
+
BEGIN_PATTERN = (
|
|
32
|
+
" CEPEL MODELO ESTRATEGICO DE"
|
|
33
|
+
+ " GERACAO HIDROTERMICA A SUBSISTEMAS VERSAO"
|
|
34
|
+
)
|
|
35
|
+
END_PATTERN = ""
|
|
36
|
+
|
|
37
|
+
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
38
|
+
super().__init__(previous, next, data)
|
|
39
|
+
|
|
40
|
+
self.__line = Line([LiteralField(18, 109)])
|
|
41
|
+
|
|
42
|
+
def __eq__(self, o: object) -> bool:
|
|
43
|
+
if not isinstance(o, BlocoVersaoModeloPMO):
|
|
44
|
+
return False
|
|
45
|
+
bloco: BlocoVersaoModeloPMO = o
|
|
46
|
+
if not all(
|
|
47
|
+
[
|
|
48
|
+
isinstance(self.data, str),
|
|
49
|
+
isinstance(o.data, str),
|
|
50
|
+
]
|
|
51
|
+
):
|
|
52
|
+
return False
|
|
53
|
+
else:
|
|
54
|
+
return self.data == bloco.data
|
|
55
|
+
|
|
56
|
+
# Override
|
|
57
|
+
def read(self, file: IO, *args, **kwargs):
|
|
58
|
+
|
|
59
|
+
linha = file.readline()
|
|
60
|
+
dados: List[str] = self.__line.read(linha)
|
|
61
|
+
self.data = dados[0].strip()
|
|
62
|
+
|
|
63
|
+
|
|
24
64
|
class BlocoEafPastTendenciaHidrolPMO(Block):
|
|
25
65
|
"""
|
|
26
66
|
Bloco de informações de afluências passadas para
|
|
27
67
|
tendência hidrológica localizado no arquivo `pmo.dat`.
|
|
28
68
|
"""
|
|
29
69
|
|
|
70
|
+
__slots__ = ["__line"]
|
|
71
|
+
|
|
30
72
|
BEGIN_PATTERN = "ENERGIAS AFLUENTES PASSADAS PARA A TENDENCIA HIDROLOGICA"
|
|
31
73
|
END_PATTERN = ""
|
|
32
74
|
|
|
@@ -92,6 +134,8 @@ class BlocoEafPastCfugaMedioPMO(Block):
|
|
|
92
134
|
tendência hidrológica localizado no arquivo `pmo.dat`.
|
|
93
135
|
"""
|
|
94
136
|
|
|
137
|
+
__slots__ = ["__line"]
|
|
138
|
+
|
|
95
139
|
BEGIN_PATTERN = (
|
|
96
140
|
"ENERGIAS AFLUENTES PASSADAS EM REFERENCIA A PRIMEIRA CONFIG"
|
|
97
141
|
)
|
|
@@ -282,6 +326,8 @@ class BlocoVolumeArmazenadoInicialPMO(Block):
|
|
|
282
326
|
localizado no arquivo `pmo.dat`.
|
|
283
327
|
"""
|
|
284
328
|
|
|
329
|
+
__slots__ = ["__linha"]
|
|
330
|
+
|
|
285
331
|
BEGIN_PATTERN = r" VOLUME ARMAZENADO INICIAL"
|
|
286
332
|
END_PATTERN = "X-----X------------X"
|
|
287
333
|
|
|
@@ -353,6 +399,8 @@ class BlocoGeracaoMinimaUsinasTermicasPMO(Block):
|
|
|
353
399
|
por usina existentes no arquivo `pmo.dat`.
|
|
354
400
|
"""
|
|
355
401
|
|
|
402
|
+
__slots__ = ["__line"]
|
|
403
|
+
|
|
356
404
|
BEGIN_PATTERN = "GERACAO TERMICA MINIMA POR USINA"
|
|
357
405
|
END_PATTERN = ""
|
|
358
406
|
|
|
@@ -439,6 +487,8 @@ class BlocoGeracaoMaximaUsinasTermicasPMO(Block):
|
|
|
439
487
|
por usina existentes no arquivo `pmo.dat`.
|
|
440
488
|
"""
|
|
441
489
|
|
|
490
|
+
__slots__ = ["__line"]
|
|
491
|
+
|
|
442
492
|
BEGIN_PATTERN = "GERACAO TERMICA MAXIMA POR USINA"
|
|
443
493
|
END_PATTERN = ""
|
|
444
494
|
|
|
@@ -525,6 +575,8 @@ class BlocoConvergenciaPMO(Block):
|
|
|
525
575
|
no arquivo `pmo.dat`.
|
|
526
576
|
"""
|
|
527
577
|
|
|
578
|
+
__slots__ = ["__line"]
|
|
579
|
+
|
|
528
580
|
BEGIN_PATTERN = " ITER LIM.INF. "
|
|
529
581
|
END_PATTERN = ""
|
|
530
582
|
|
|
@@ -606,6 +658,8 @@ class BlocoConfiguracoesExpansaoPMO(Block):
|
|
|
606
658
|
do sistema existentes no arquivo `pmo.dat`.
|
|
607
659
|
"""
|
|
608
660
|
|
|
661
|
+
__slots__ = ["__line"]
|
|
662
|
+
|
|
609
663
|
BEGIN_PATTERN = "CONFIGURACOES POR"
|
|
610
664
|
END_PATTERN = ""
|
|
611
665
|
|
|
@@ -667,6 +721,8 @@ class BlocoMARSPMO(Block):
|
|
|
667
721
|
existentes no arquivo `pmo.dat`.
|
|
668
722
|
"""
|
|
669
723
|
|
|
724
|
+
__slots__ = ["__line", "__ree_field"]
|
|
725
|
+
|
|
670
726
|
BEGIN_PATTERN = "PARAMETROS DAS RETAS DE PERDAS POR ENGOLIMENTO MAXIMO"
|
|
671
727
|
END_PATTERN = 'ENERGIA FIO D"AGUA LIQUIDA|CEPEL'
|
|
672
728
|
|
|
@@ -738,6 +794,8 @@ class BlocoRiscoDeficitENSPMO(Block):
|
|
|
738
794
|
ENS (energia não suprida) existentes no arquivo `pmo.dat`.
|
|
739
795
|
"""
|
|
740
796
|
|
|
797
|
+
__slots__ = ["__line"]
|
|
798
|
+
|
|
741
799
|
BEGIN_PATTERN = r"RISCO ANUAL DE DEFICIT E E\(ENS\) \(%\)" # noqa
|
|
742
800
|
END_PATTERN = ""
|
|
743
801
|
|
|
@@ -807,6 +865,8 @@ class BlocoCustoOperacaoPMO(Block):
|
|
|
807
865
|
existentes no arquivo `pmo.dat`.
|
|
808
866
|
"""
|
|
809
867
|
|
|
868
|
+
__slots__ = ["__line"]
|
|
869
|
+
|
|
810
870
|
BEGIN_PATTERN = "PARCELA V.ESPERADO"
|
|
811
871
|
END_PATTERN = ""
|
|
812
872
|
|
|
@@ -869,6 +929,8 @@ class BlocoCustoOperacaoTotalPMO(Block):
|
|
|
869
929
|
existentes no arquivo `pmo.dat`.
|
|
870
930
|
"""
|
|
871
931
|
|
|
932
|
+
__slots__ = ["__line"]
|
|
933
|
+
|
|
872
934
|
BEGIN_PATTERN = " VALOR ESPERADO TOTAL:"
|
|
873
935
|
END_PATTERN = ""
|
|
874
936
|
|
|
@@ -905,6 +967,13 @@ class BlocoProdutibilidadesConfiguracaoPMO(Block):
|
|
|
905
967
|
configuração.
|
|
906
968
|
"""
|
|
907
969
|
|
|
970
|
+
__slots__ = [
|
|
971
|
+
"__cfg_line",
|
|
972
|
+
"__prodt_line",
|
|
973
|
+
"__prodt_reserv_line",
|
|
974
|
+
"__prod_acum_line",
|
|
975
|
+
]
|
|
976
|
+
|
|
908
977
|
BEGIN_PATTERN = r"PRODUTIBILIDADES \(MW/m3/s\)"
|
|
909
978
|
END_PATTERN = ""
|
|
910
979
|
|
|
@@ -1114,6 +1183,11 @@ class BlocoPenalidadeViolacaoOutrosUsosPMO(Block):
|
|
|
1114
1183
|
outros usos da água.
|
|
1115
1184
|
"""
|
|
1116
1185
|
|
|
1186
|
+
__slots__ = [
|
|
1187
|
+
"__ree_line",
|
|
1188
|
+
"__pen_line",
|
|
1189
|
+
]
|
|
1190
|
+
|
|
1117
1191
|
BEGIN_PATTERN = "PENALIDADE POR VIOLACAO DOS OUTROS USOS DA AGUA "
|
|
1118
1192
|
END_PATTERN = ""
|
|
1119
1193
|
|
|
@@ -1197,6 +1271,12 @@ class BlocoPenalidadeViolacaoVazaoMinimaPMO(Block):
|
|
|
1197
1271
|
vazão mínima.
|
|
1198
1272
|
"""
|
|
1199
1273
|
|
|
1274
|
+
__slots__ = [
|
|
1275
|
+
"__ree_line",
|
|
1276
|
+
"__patamar_line",
|
|
1277
|
+
"__pen_line",
|
|
1278
|
+
]
|
|
1279
|
+
|
|
1200
1280
|
BEGIN_PATTERN = "PENALIDADE POR VIOLACAO DE VAZAO MINIMA "
|
|
1201
1281
|
END_PATTERN = ""
|
|
1202
1282
|
|
|
@@ -1292,6 +1372,11 @@ class BlocoPenalidadeViolacaoCurvaSegurancaPMO(Block):
|
|
|
1292
1372
|
curva-guia de segurança.
|
|
1293
1373
|
"""
|
|
1294
1374
|
|
|
1375
|
+
__slots__ = [
|
|
1376
|
+
"__ree_line",
|
|
1377
|
+
"__pen_line",
|
|
1378
|
+
]
|
|
1379
|
+
|
|
1295
1380
|
BEGIN_PATTERN = "PENALIDADE POR VIOLACAO DA CURVA GUIA DE SEGURANCA "
|
|
1296
1381
|
END_PATTERN = ""
|
|
1297
1382
|
|
|
@@ -1375,6 +1460,11 @@ class BlocoPenalidadeViolacaoFphaPMO(Block):
|
|
|
1375
1460
|
FPHA.
|
|
1376
1461
|
"""
|
|
1377
1462
|
|
|
1463
|
+
__slots__ = [
|
|
1464
|
+
"__ree_line",
|
|
1465
|
+
"__pen_line",
|
|
1466
|
+
]
|
|
1467
|
+
|
|
1378
1468
|
BEGIN_PATTERN = "PENALIDADE POR VIOLACAO DA FPHA "
|
|
1379
1469
|
END_PATTERN = ""
|
|
1380
1470
|
|
|
@@ -1458,6 +1548,11 @@ class BlocoPenalidadeViolacaoEvaporacaoPMO(Block):
|
|
|
1458
1548
|
evaporação.
|
|
1459
1549
|
"""
|
|
1460
1550
|
|
|
1551
|
+
__slots__ = [
|
|
1552
|
+
"__ree_line",
|
|
1553
|
+
"__pen_line",
|
|
1554
|
+
]
|
|
1555
|
+
|
|
1461
1556
|
BEGIN_PATTERN = "PENALIDADE POR VIOLACAO DA EVAPORACAO "
|
|
1462
1557
|
END_PATTERN = ""
|
|
1463
1558
|
|
|
@@ -1541,6 +1636,10 @@ class BlocoPenalidadeViolacaoTurbinamentoMaximoPMO(Block):
|
|
|
1541
1636
|
turbinamento máximo.
|
|
1542
1637
|
"""
|
|
1543
1638
|
|
|
1639
|
+
__slots__ = [
|
|
1640
|
+
"__pen_line",
|
|
1641
|
+
]
|
|
1642
|
+
|
|
1544
1643
|
BEGIN_PATTERN = "PENALIDADE POR VIOLACAO DE TURBINAMENTO MAXIMO "
|
|
1545
1644
|
END_PATTERN = ""
|
|
1546
1645
|
|
|
@@ -1605,6 +1704,10 @@ class BlocoPenalidadeViolacaoTurbinamentoMinimoPMO(Block):
|
|
|
1605
1704
|
turbinamento máximo.
|
|
1606
1705
|
"""
|
|
1607
1706
|
|
|
1707
|
+
__slots__ = [
|
|
1708
|
+
"__pen_line",
|
|
1709
|
+
]
|
|
1710
|
+
|
|
1608
1711
|
BEGIN_PATTERN = "PENALIDADE POR VIOLACAO DE TURBINAMENTO MINIMO "
|
|
1609
1712
|
END_PATTERN = ""
|
|
1610
1713
|
|
inewave/newave/modelos/re.py
CHANGED
inewave/newave/modelos/ree.py
CHANGED
inewave/newave/modelos/selcor.py
CHANGED
|
@@ -11,9 +11,11 @@ class BlocoDadosSelcor(Section):
|
|
|
11
11
|
de cortes existentes no arquivo `selcor.dat`.
|
|
12
12
|
"""
|
|
13
13
|
|
|
14
|
+
__slots__ = ["__linha", "__cabecalhos", "__comentarios", "data"]
|
|
15
|
+
|
|
14
16
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
15
17
|
super().__init__(previous, next, data)
|
|
16
|
-
self.
|
|
18
|
+
self.__linha = Line(
|
|
17
19
|
[
|
|
18
20
|
LiteralField(60, 0),
|
|
19
21
|
IntegerField(4, 63),
|
|
@@ -46,7 +48,7 @@ class BlocoDadosSelcor(Section):
|
|
|
46
48
|
# Lê as linhas de parâmetros
|
|
47
49
|
self.data: List[List[int]] = []
|
|
48
50
|
for _ in range(7):
|
|
49
|
-
dados_linha = self.
|
|
51
|
+
dados_linha = self.__linha.read(file.readline())
|
|
50
52
|
self.__comentarios.append(dados_linha[0])
|
|
51
53
|
self.data.append(dados_linha[1:])
|
|
52
54
|
|
|
@@ -58,4 +60,4 @@ class BlocoDadosSelcor(Section):
|
|
|
58
60
|
raise ValueError("Dados do selcor.dat não foram lidos com sucesso")
|
|
59
61
|
|
|
60
62
|
for c, s in zip(self.__comentarios, self.data):
|
|
61
|
-
file.write(self.
|
|
63
|
+
file.write(self.__linha.write([c] + s))
|
inewave/newave/modelos/shist.py
CHANGED
|
@@ -9,9 +9,11 @@ class BlocoVarreduraShist(Section):
|
|
|
9
9
|
Bloco de informações de varredura existente no arquivo `shist.dat`.
|
|
10
10
|
"""
|
|
11
11
|
|
|
12
|
+
__slots__ = ["__linha", "__cabecalhos"]
|
|
13
|
+
|
|
12
14
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
13
15
|
super().__init__(previous, next, data)
|
|
14
|
-
self.
|
|
16
|
+
self.__linha = Line(
|
|
15
17
|
[
|
|
16
18
|
IntegerField(3, 0),
|
|
17
19
|
IntegerField(4, 4),
|
|
@@ -39,7 +41,7 @@ class BlocoVarreduraShist(Section):
|
|
|
39
41
|
for _ in range(2):
|
|
40
42
|
self.__cabecalhos.append(file.readline())
|
|
41
43
|
|
|
42
|
-
self.data = self.
|
|
44
|
+
self.data = self.__linha.read(file.readline())
|
|
43
45
|
|
|
44
46
|
# Override
|
|
45
47
|
def write(self, file: IO, *args, **kwargs):
|
|
@@ -48,7 +50,7 @@ class BlocoVarreduraShist(Section):
|
|
|
48
50
|
if not isinstance(self.data, list):
|
|
49
51
|
raise ValueError("Dados do shist.dat não foram lidos com sucesso")
|
|
50
52
|
|
|
51
|
-
file.write(self.
|
|
53
|
+
file.write(self.__linha.write(self.data))
|
|
52
54
|
|
|
53
55
|
|
|
54
56
|
class BlocoSeriesSimulacaoShist(Section):
|
|
@@ -57,11 +59,13 @@ class BlocoSeriesSimulacaoShist(Section):
|
|
|
57
59
|
existente no arquivo `shist.dat`.
|
|
58
60
|
"""
|
|
59
61
|
|
|
62
|
+
__slots__ = ["__linha", "__cabecalhos", "data"]
|
|
63
|
+
|
|
60
64
|
END_PATTERN = "9999"
|
|
61
65
|
|
|
62
66
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
63
67
|
super().__init__(previous, next, data)
|
|
64
|
-
self.
|
|
68
|
+
self.__linha = Line(
|
|
65
69
|
[
|
|
66
70
|
IntegerField(4, 0),
|
|
67
71
|
]
|
|
@@ -97,7 +101,7 @@ class BlocoSeriesSimulacaoShist(Section):
|
|
|
97
101
|
):
|
|
98
102
|
break
|
|
99
103
|
|
|
100
|
-
self.data.append(self.
|
|
104
|
+
self.data.append(self.__linha.read(linha)[0])
|
|
101
105
|
|
|
102
106
|
# Override
|
|
103
107
|
def write(self, file: IO, *args, **kwargs):
|
|
@@ -107,6 +111,6 @@ class BlocoSeriesSimulacaoShist(Section):
|
|
|
107
111
|
raise ValueError("Dados do shist.dat não foram lidos com sucesso")
|
|
108
112
|
|
|
109
113
|
for s in self.data:
|
|
110
|
-
file.write(self.
|
|
114
|
+
file.write(self.__linha.write([s]))
|
|
111
115
|
|
|
112
116
|
file.write(BlocoSeriesSimulacaoShist.END_PATTERN + "\n")
|
|
@@ -26,6 +26,8 @@ class BlocoNumeroPatamaresDeficit(Section):
|
|
|
26
26
|
Bloco com o número de patamares de déficit considerados.
|
|
27
27
|
"""
|
|
28
28
|
|
|
29
|
+
__slots__ = ["__linha", "__cabecalhos"]
|
|
30
|
+
|
|
29
31
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
30
32
|
super().__init__(previous, next, data)
|
|
31
33
|
self.__linha = Line(
|
|
@@ -73,6 +75,8 @@ class BlocoCustosDeficit(Section):
|
|
|
73
75
|
patamar de déficit e o número de patamares de déficit.
|
|
74
76
|
"""
|
|
75
77
|
|
|
78
|
+
__slots__ = ["__linha", "__cabecalhos"]
|
|
79
|
+
|
|
76
80
|
FIM_BLOCO = " 999"
|
|
77
81
|
|
|
78
82
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
@@ -220,6 +224,8 @@ class BlocoIntercambioSubsistema(Section):
|
|
|
220
224
|
por mês/ano de estudo para cada subsistema.
|
|
221
225
|
"""
|
|
222
226
|
|
|
227
|
+
__slots__ = ["__linha", "__linha_subsis", "__cabecalhos"]
|
|
228
|
+
|
|
223
229
|
FIM_BLOCO = " 999"
|
|
224
230
|
|
|
225
231
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
@@ -391,6 +397,8 @@ class BlocoMercadoEnergiaSistema(Section):
|
|
|
391
397
|
por mês/ano de estudo para cada subsistema.
|
|
392
398
|
"""
|
|
393
399
|
|
|
400
|
+
__slots__ = ["__linha", "__linha_subsis", "__cabecalhos"]
|
|
401
|
+
|
|
394
402
|
FIM_BLOCO = " 999"
|
|
395
403
|
|
|
396
404
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
@@ -520,6 +528,8 @@ class BlocoGeracaoUsinasNaoSimuladas(Section):
|
|
|
520
528
|
cada patamar, por mês de estudo, extraído do arquivo `sistema.dat`.
|
|
521
529
|
"""
|
|
522
530
|
|
|
531
|
+
__slots__ = ["__linha", "__linha_subsis", "__cabecalhos"]
|
|
532
|
+
|
|
523
533
|
FIM_BLOCO = " 999"
|
|
524
534
|
|
|
525
535
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
inewave/newave/modelos/term.py
CHANGED
|
@@ -19,6 +19,8 @@ class BlocoTermUTE(Section):
|
|
|
19
19
|
existentes no arquivo do NEWAVE `term.dat`.
|
|
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(
|
inewave/newave/modelos/vazaob.py
CHANGED
inewave/newave/modelos/vazaof.py
CHANGED
inewave/newave/modelos/vazaos.py
CHANGED
inewave/newave/modelos/vazoes.py
CHANGED
inewave/newave/modif.py
CHANGED
inewave/newave/nwv_avl_evap.py
CHANGED
|
@@ -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 NwvAvlEvap(ArquivoCSV):
|
|
10
12
|
"""
|
|
@@ -31,3 +33,11 @@ class NwvAvlEvap(ArquivoCSV):
|
|
|
31
33
|
:rtype: pd.DataFrame | None
|
|
32
34
|
"""
|
|
33
35
|
return self._tabela()
|
|
36
|
+
|
|
37
|
+
def __init__(self, data=...) -> None:
|
|
38
|
+
warn(
|
|
39
|
+
"Esta classe é relativa a um arquivo que não é mais suportado."
|
|
40
|
+
+ " Utilize a classe EvapAvlDesv no lugar.",
|
|
41
|
+
DeprecationWarning,
|
|
42
|
+
)
|
|
43
|
+
super().__init__(data)
|
|
@@ -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 NwvCortesEvap(ArquivoCSV):
|
|
10
12
|
"""
|
|
@@ -32,3 +34,11 @@ class NwvCortesEvap(ArquivoCSV):
|
|
|
32
34
|
:rtype: pd.DataFrame | None
|
|
33
35
|
"""
|
|
34
36
|
return self._tabela()
|
|
37
|
+
|
|
38
|
+
def __init__(self, data=...) -> None:
|
|
39
|
+
warn(
|
|
40
|
+
"Esta classe é relativa a um arquivo que não é mais suportado."
|
|
41
|
+
+ " Utilize a classe EvapCortes no lugar.",
|
|
42
|
+
DeprecationWarning,
|
|
43
|
+
)
|
|
44
|
+
super().__init__(data)
|
inewave/newave/nwv_eco_evap.py
CHANGED
|
@@ -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 NwvEcoEvap(ArquivoCSV):
|
|
10
12
|
"""
|
|
@@ -32,3 +34,11 @@ class NwvEcoEvap(ArquivoCSV):
|
|
|
32
34
|
:rtype: pd.DataFrame | None
|
|
33
35
|
"""
|
|
34
36
|
return self._tabela()
|
|
37
|
+
|
|
38
|
+
def __init__(self, data=...) -> None:
|
|
39
|
+
warn(
|
|
40
|
+
"Esta classe é relativa a um arquivo que não é mais suportado."
|
|
41
|
+
+ " Utilize a classe EvapEco no lugar.",
|
|
42
|
+
DeprecationWarning,
|
|
43
|
+
)
|
|
44
|
+
super().__init__(data)
|
inewave/newave/pmo.py
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from inewave.newave.modelos.pmo import BlocoVersaoModeloPMO
|
|
1
2
|
from inewave.newave.modelos.pmo import BlocoEafPastTendenciaHidrolPMO
|
|
2
3
|
from inewave.newave.modelos.pmo import BlocoEafPastCfugaMedioPMO
|
|
3
4
|
from inewave.newave.modelos.pmo import BlocoConvergenciaPMO
|
|
@@ -48,6 +49,7 @@ class Pmo(BlockFile):
|
|
|
48
49
|
T = TypeVar("T")
|
|
49
50
|
|
|
50
51
|
BLOCKS = [
|
|
52
|
+
BlocoVersaoModeloPMO,
|
|
51
53
|
BlocoEafPastTendenciaHidrolPMO,
|
|
52
54
|
BlocoEafPastCfugaMedioPMO,
|
|
53
55
|
BlocoConvergenciaPMO,
|
|
@@ -71,6 +73,21 @@ class Pmo(BlockFile):
|
|
|
71
73
|
BlocoGeracaoMaximaUsinasTermicasPMO,
|
|
72
74
|
]
|
|
73
75
|
|
|
76
|
+
@property
|
|
77
|
+
def versao_modelo(self) -> Optional[str]:
|
|
78
|
+
"""
|
|
79
|
+
A versão do modelo que produziu o arquivo.
|
|
80
|
+
|
|
81
|
+
:return: A string de versão do modelo.
|
|
82
|
+
:rtype: str | None
|
|
83
|
+
"""
|
|
84
|
+
b = self.data.get_blocks_of_type(BlocoVersaoModeloPMO)
|
|
85
|
+
if isinstance(b, BlocoVersaoModeloPMO):
|
|
86
|
+
return b.data
|
|
87
|
+
elif isinstance(b, list):
|
|
88
|
+
return b[0].data
|
|
89
|
+
return None
|
|
90
|
+
|
|
74
91
|
@property
|
|
75
92
|
def eafpast_tendencia_hidrologica(self) -> Optional[pd.DataFrame]:
|
|
76
93
|
"""
|
inewave/newave/vazoes.py
CHANGED
|
@@ -11,6 +11,8 @@ class BlocoNomesArquivos(Section):
|
|
|
11
11
|
entrada do NWLISTCF `arquivos.dat`.
|
|
12
12
|
"""
|
|
13
13
|
|
|
14
|
+
__slots__ = ["__linha"]
|
|
15
|
+
|
|
14
16
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
15
17
|
super().__init__(previous, next, data)
|
|
16
18
|
self.__linha = Line([LiteralField(30, 0), LiteralField(40, 30)])
|
inewave/nwlistcf/modelos/caso.py
CHANGED
|
@@ -16,6 +16,16 @@ class EstadosPeriodoNwlistcf(Block):
|
|
|
16
16
|
por período na construção dos cortes da FCF.
|
|
17
17
|
"""
|
|
18
18
|
|
|
19
|
+
__slots__ = [
|
|
20
|
+
"__linha_periodo",
|
|
21
|
+
"__linha",
|
|
22
|
+
"__periodo",
|
|
23
|
+
"__ireg_atual",
|
|
24
|
+
"__itec_atual",
|
|
25
|
+
"__simc_atual",
|
|
26
|
+
"__itef_atual",
|
|
27
|
+
]
|
|
28
|
+
|
|
19
29
|
BEGIN_PATTERN = "PERIODO: "
|
|
20
30
|
END_PATTERN = "PERIODO: "
|
|
21
31
|
|
|
@@ -10,6 +10,8 @@ class PeriodoImpressaoCortesEstados(Section):
|
|
|
10
10
|
início e fim para a impressão.
|
|
11
11
|
"""
|
|
12
12
|
|
|
13
|
+
__slots__ = ["__linha", "__cabecalhos"]
|
|
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(
|