def YHOOF_HistP_csv_to_SQLprep(symbol, has_header=True): data = get_histPcsv( symbol ) if has_header: header = data[0] del data[0] data = [YHOOF_DayQuote(header,row) for row in data ] data = [row + [symbol,] for row in data ] return data
def getasave_tocsv(ticker,dirout='./rawdata/YHOOFHISTP/'): if not os.path.exists(dirout): os.makedirs(dirout) data = get_histPcsv(ticker) with open(dirout+ticker+'_YHOOF_HISTP'+'.csv', "wb") as f: writer = csv.writer(f) writer.writerows(data) return data
def getasave_tocsv(ticker, dirout='./rawdata/YHOOFHISTP/'): if not os.path.exists(dirout): os.makedirs(dirout) data = get_histPcsv(ticker) with open(dirout + ticker + '_YHOOF_HISTP' + '.csv', "wb") as f: writer = csv.writer(f) writer.writerows(data) return data
def YHOOF_HistP_csv_to_SQLprep(symbol, has_header=True): data = get_histPcsv(symbol) if has_header: header = data[0] del data[0] data = [YHOOF_DayQuote(header, row) for row in data] data = [row + [ symbol, ] for row in data] return data
def insc_SymbHP_daterange(ticker,startdate,enddate): data = get_histPcsv(ticker,startdate,enddate) print "%s obtained" % ticker del data[-1] headers = data[0] del data[0] data = [YHOOF_DayQuote(headers,row) for row in data ] data = [row + [ticker,] for row in data ] output = [] headers = [header.replace(' ','') for header in headers] # we have to make sure 'Adj Close' column is called 'AdjClose' for SQLAlchemy for row in data: output.append(YHOOF_HISTP_datapt(Symbol=ticker, **dict(zip(headers,row))) ) return output
def insc_SymbHP_daterange(ticker, startdate, enddate): data = get_histPcsv(ticker, startdate, enddate) print "%s obtained" % ticker del data[-1] headers = data[0] del data[0] data = [YHOOF_DayQuote(headers, row) for row in data] data = [row + [ ticker, ] for row in data] output = [] headers = [ header.replace(' ', '') for header in headers ] # we have to make sure 'Adj Close' column is called 'AdjClose' for SQLAlchemy for row in data: output.append( YHOOF_HISTP_datapt(Symbol=ticker, **dict(zip(headers, row)))) return output
def quick_update_HP(): start0 = time.clock() lastdate = session.query(func.max(YfHP_pt.Date)).filter(YfHP_pt.Symbol.match("AAPL")).first() end0 = time.clock() print "Querying SQL database for last date took this long: ", (end0-start0)*10000 lastdate = lastdate[0] presentdate = datetime.today().date() if len(get_histPcsv("AAPL", str(lastdate), str(presentdate))) <= 2: print "Database is updated with all current historical prices from Yahoo! Finance \n" return 0 else: targetlst = session.query(Symbole).all() start1 = time.clock() for ticker in targetlst: try: output = insc_SymbHP_daterange( ticker.symbole,str(lastdate),str(presentdate)) session.add_all(output) print "Adding %s to session" % ticker session.commit() end1 = time.clock() print "Adding into SQL database took this long: ", (end1 - start1)*10 except urllib2.HTTPError: print "Not here: %s" % ticker except httplib.IncompleteRead as e: print "Incomplete Read (???): %s" % ticker.symbole except sqlalchemy.exc.ProgrammingError as e: print output raise e return output