def writeDataHistorytoJSON(ticker): dataSeriesID = EM_DBHelp.retrieve_DataSeriesID( db_conn, db_curs, dataTicker=ticker, insertIfNot=False) data_JSON = convertDataHistoryToJSON(ticker, dataSeriesID=dataSeriesID) columnName = 'dt_earliest_value' earliestData = EM_DGUtil.getFromDB() columnName = 'dt_latest_value' latestData = EM_DGUtil.getFromDB() columnName = 'dt_last_updated_history' lastUpdate = EM_DGUtil.getFromDB() writeFile = generateDateHistoryFilename(ticker, earliestData, latestData, lastUpdate) updateAvailableSeriesDataFile(ticker, earliestData, latestData, lastUpdate, dataFileName=writeFile) try: writer = open(writeFile, 'wb') writer.write(json_dump(data_JSON)) except: raise finally: writer.close()
def generateWords_FirstOrderDiff_SingleTicker(ticker): wordType = EM_util.wordTypes['1OD'] wordSuperType = EM_util.wordSuperTypes['generic'] dg_handle = EM_DGUtil.EMF_DataGenerator_Handle(db_conn, db_curs) dg_handle.findAndStoreDataSeries(ticker) if dg_handle.dataPeriodicity == 365: #Daily raise NotImplementedError elif dg_handle.dataPeriodicity == 52: #Weekly raise NotImplementedError elif dg_handle.dataPeriodicity == 12: #Monthly periods = [1, 3, 6, 12, 18, 24, 36, 48, 60] periodDesc = 'M' elif dg_handle.dataPeriodicity == 4: #Quarterly periods = [1, 2, 3, 4, 6, 8, 12 ,16, 20] periodDesc = 'Q' else: raise Exception('dataPeriodicity not recognized.') if len(EM_DGUtil.firstOrderDiffPeriodOverride) > 0: periods = EM_DGUtil.firstOrderDiffPeriodOverride dataSeries = dg_handle.getDataHistory() for periodLength in periods: wordTicker = '1OD|' + str(periodLength) + periodDesc + '|' + ticker wordSubType = periodLength dg_handle.findAndStoreWordSeries(wordTicker, wordSubType, wordType, wordSuperType) firstOrderDiffData = EM_DGUtil.findFirstOrderDifferences(dataSeries, periodLength) dates = [] values = [] for i in range(len(firstOrderDiffData)): dates.append(dataSeries['dates'][i+periodLength]) values.append(firstOrderDiffData[i]) dg_handle.insertWords(dates, values) dg_handle.resetWordSeries()