tinamit0/envolt/mds/pysd/_funcs.py
import os
from ast import literal_eval
import pysd
from tinamit.cositas import arch_más_recién
def gen_mod_pysd(archivo):
nmbr, ext = os.path.splitext(archivo)
if ext == '.py':
return pysd.load(archivo)
arch_py = nmbr + '.py'
if os.path.isfile(arch_py) and arch_más_recién(arch_py, archivo):
return pysd.load(nmbr + '.py')
else:
return pysd.read_vensim(archivo) if ext == '.mdl' else pysd.read_xmile(archivo)
def obt_paso_mod_pysd(mod):
doc = mod.components.time_step.__doc__
partes = doc.split()
return decodar(partes[partes.index('Units:')+1])
def decodar(tx):
if tx.startswith('b\''):
return literal_eval(tx).decode('unicode_escape')
return tx