def get_data(self): data = {'element': 'SYSPRICE', 'dT': self.dt.strftime("%Y-%m-%d")} req = get_url(self.URL, data) if req is None or req.code != 200: print("Unable to get data...") return False return self._process(req)
def get_list(self): self.units = [] req = get_url(self.XLS_URL) f = NamedTemporaryFile(delete=False) with open(f.name, 'w') as fh: fh.write(req.read()) wb = xlrd.open_workbook(f.name) sh = wb.sheet_by_name(u'Sheet1') for rownum in range(1, sh.nrows): ud = { 'sett_id': sh.cell(rownum, 0).value, 'ngc_id': sh.cell(rownum, 1).value, 'name': sh.cell(rownum, 2).value, 'reg_capacity': sh.cell(rownum, 3).value, 'date_added': _mkdate(wb, sh, rownum, 4), 'bmunit': self.yesno(sh.cell(rownum, 5).value), 'cap': sh.cell(rownum, 6).value } if ud['ngc_id'] == '': break self.units.append(ud) try: os.unlink(f.name) except: pass
def get_list(self): self.units = [] req = get_url(self.XLS_URL) f = NamedTemporaryFile(delete=False) with open(f.name, 'w') as fh: fh.write(req.read()) wb = xlrd.open_workbook(f.name) sh = wb.sheet_by_name(u'BMU Fuel Types') for rownum in range(1, sh.nrows): ud = { 'ngc_id': sh.cell(rownum, 0).value, 'sett_id': sh.cell(rownum, 1).value, 'fuel_type': sh.cell(rownum, 2).value, 'eff_from': _mkdate(wb, sh, rownum, 3), 'eff_to': _mkdate(wb, sh, rownum, 4) } if ud['sett_id'] == 42: del (ud['sett_id']) self.units.append(ud) try: os.unlink(f.name) except: pass
def get_prices(self): try: resp = get_url(self.URL) except: return False def alltext(el): return (''.join(el.text_content())).strip() def process_table(tbl): for row in tbl.findall('.//tr'): if len(row) == 0: continue datestr = alltext(row[0]) if 'Auction Date' in datestr: continue try: avg = float(alltext(row[1])[1:]) dt = datetime.strptime(datestr, "%d %B %Y") except ValueError: continue numperiod = dt.year * 100 + dt.month if numperiod in self.periods: self.periods[numperiod] = (self.periods[numperiod] + avg) / 2 else: self.periods[numperiod] = avg doc = html.parse(resp) for t in doc.findall('.//table'): if 'Auction Date' in alltext(t.findall('.//tr')[0]): process_table(t) return True
def get_prices(self): try: resp = get_url(self.URL) except: return False def alltext(el): return ("".join(el.text_content())).strip() def process_table(tbl): for row in tbl.findall(".//tr"): if len(row) == 0: continue datestr = alltext(row[0]) if "Auction Date" in datestr: continue try: avg = float(alltext(row[1])[1:]) dt = datetime.strptime(datestr, "%d %B %Y") except ValueError: continue numperiod = dt.year * 100 + dt.month if numperiod in self.periods: self.periods[numperiod] = (self.periods[numperiod] + avg) / 2 else: self.periods[numperiod] = avg doc = html.parse(resp) for t in doc.findall(".//table"): if "Auction Date" in alltext(t.findall(".//tr")[0]): process_table(t) return True
def get_data(self): base = self.as_params() self.data = [] if self.historic: req = get_url( 'http://www.bmreports.com/bsp/additional/soapfunctions.php?', base) if req is None or req.code != 200: return False return self._process(req) return False
def get_data(self): """ Get data from the BM Reports website. Try 3 times. """ resp = get_url(self.URL, self.PARAMS) if resp is None or resp.code != 200: return self.xml = parse_response_as_xml(resp) if self.xml is None: return for section in ['INST', 'HH', 'LAST24H']: self.sections.append(GenerationPeriod(self.xml.xpath(section)[0]))