def normalize(data,fig): mets = config.getlist(fig,'meters') ans,larms = [],{} for m in mets: ins,met = m.split('.') ins = int(ins) if met[0] == '!': larm = met[1:] dx = [] for x in data['rel_alarmes']: if x['id']==ins and x['descricao']==larm: dx.append((x['dataInicio'],x['dataFim'])) dx.sort() dl,j=[],0 for x in dx: dl.append((x[0],j)) j+=1 dl.append((x[1],j)) larms[larm] = dx ans.append((m,dl)) else: try: dl = data['data'][ins][met] ans.append((m,dl)) except: print ins,met return ans
def getfontmap(self): if self._fontmap is None: # late import due to cyclic dependency from pyx.dvi import mapfile fontmapfiles = config.getlist("text", "psfontmaps", ["psfonts.map"]) self._fontmap = mapfile.readfontmap(fontmapfiles) return self._fontmap
def init(): global methods, opener_cache methods = [ locator_classes[method]() for method in config.getlist( "filelocator", "methods", ["local", "internal", "pykpathsea", "kpsewhich"]) ] opener_cache = {}
def report(docfn,data): global __totalpages paper = canvas.Canvas(docfn,pagesize=letter) paper.setAuthor('Oruga Amarilla') figs = config.getlist('Report','figures') __totalpages += len(figs) brand(paper) frontpage(paper,data) site = config.get('Site','name') for fig in figs: paginate(paper) brand(paper) name = config.get(fig,'description') mets = config.getlist(fig,'meters') strx = config.get(fig,'stretch') d = normalize(data,fig) offset,j = 400,0 for m in mets: ins,met = m.split('.') ins = int(ins) inn = config.get('Instrument {}'.format(ins),'description',name) mets = config.checklist('Instrument {}'.format(ins),'meters',[]) txfs = config.checklist('Instrument {}'.format(ins),'transform',[]) if met[0]=='!': line = acumulate(inn,'Lluvia',d[j][1]) else: line = analize(inn,met,d[j][1]) drawsimpleline(paper,(72,724-offset),(76,720-offset),figurecolors[j]) drawsimpleline(paper,(76,720-offset),(81,728-offset),figurecolors[j]) offset = drawline(paper,line,offset,left=84) j+= 1 otherpagetitle(paper,name,site) figure(paper,name,d,(72,660,540,360),strx) paginate(paper) paper.save()
def frontpage(paper,data): global figdist,__totalpages; #grid(paper) resettime() figs = config.getlist('Report','figures') n = len(figs) dist = figdist[n] d = [[] for i in range(n)] for i in range(n): name = config.get(figs[i],'description') strx = config.get(figs[i],'stretch') d[i] = normalize(data,figs[i]) figure(paper,name,d[i],dist2paper(dist[i]),strx) frontpagetitle(paper,data) offset = 360 for i in range(n): name = config.get(figs[i],'description') mets = config.getlist(figs[i],'meters') j = 0 for m in mets: if offset >= 640: offset = 13 __totalpages += 1 paginate(paper) brand(paper) ins,met = m.split('.') ins = int(ins) inn = config.get('Instrument {}'.format(ins),'description',name) dl = d[i][j][1] if met[0] != '!': line = analize(inn,met,dl) drawsimpleline(paper,(72,724-offset),(76,720-offset),figurecolors[j]) drawsimpleline(paper,(76,720-offset),(81,728-offset),figurecolors[j]) offset = drawline(paper,line,offset,left=84) j += 1
def send(text,attch=[]): assert type(attch)==list msg = MIMEMultipart() me = config.get('Email','from','*****@*****.**') myname = config.get('Email','from name','Oruga Amarilla emailer') to = config.getlist('Email','address') server = config.get('Email','server','mail.orugaamarilla.com') msg['From'] = "{} <{}>".format(myname,me) msg['To'] = ', '.join(to) msg['Date'] = formatdate(localtime=True) msg['Subject'] = config.get('Email','subject',config.get('Report','title')) msgtext = MIMEText(text.encode('Latin-1')) msg.attach(msgtext) for f in attch: attfile = mimebase(f) attfile.set_payload(open(f,'rb').read()) Encoders.encode_base64(attfile) attfile.add_header('Content-Disposition', 'attachement; filename={}'.format(os.path.basename(f))) msg.attach(attfile) try: import base64 user = config.get('Email','user') if user is None: user = me passwd = base64.b64decode(config.get('Email','key')) finally: pass try: s = SMTP(server) s.set_debuglevel(0) s.login(user,passwd) try: s.sendmail(me, to, msg.as_string()) finally: s.close() except Exception, exc: config.close() print "mail failed; %s" % str(exc)
def __init__(self): self.ls_Rs = config.getlist("locator", "ls-R") self.full_filenames = {}
def __init__(self): self.dirs = config.getlist("locator", "recursivedir") self.full_filenames = {}
def init(): global methods, opener_cache methods = [locator_classes[method]() for method in config.getlist("filelocator", "methods", ["local", "internal", "pykpathsea", "kpsewhich"])] opener_cache = {}