def test_get_variables(): """py.test for get_variables""" def _double(n): return n * 2 data = ( ( "./eplussql_test/eplussql.sql", 6, None, [11.1, 10.4125, 9.625], ), # fname, ReportVariableDataDictionaryIndex, func, threevars ( "./eplussql_test/eplussql.sql", 6, _double, [22.2, 20.8250, 19.250], ), # fname, ReportVariableDataDictionaryIndex, func, threevars ) for fname, ReportVariableDataDictionaryIndex, func, threevars in data: cursor = eplussql.getcursor(fname) result = eplussql.get_variables(cursor, ReportVariableDataDictionaryIndex, func) threeresult = result[-6:-3] assert threeresult == threevars
def getabovedays(fname, varindex, aboveval, year=2001, convertc2f=False): """return variable name, max and min of the variable""" cursor = eplussql.getcursor(fname) # startpoint = eplussql.get_wfilestart(cursor) varunit = eplussql.get_variableunit(cursor, varindex) # var units varname = eplussql.get_variablename(cursor, varindex) # varname keyvalue = eplussql.get_keyvalue(cursor, varindex) # get keyvalue if convertc2f and varunit == u'C': # conversion func = eplussql.c2f varunit = u'F' else: func = None matrix = eplussql.get_variables(cursor, varindex, func=func) # gets vars yhours = date_functions.yeardateshours(year) # yeardates matrix = zip(yhours, matrix) # days = split2days(matrix, hrs=24) # splits it into 24 hr blocks # filtering of days take place below # daysabove = filterdaysabove(days, aboveval) daysabove = date_functions.filterdays(matrix, -1, aboveval, date_functions.gt, hrs=24) return varname, keyvalue, varunit, daysabove # fname = './eplussql_test/hup01_23_pytest.sql' # varname, keyvalue, varunit, daysabove = getabovedays(fname, 386, 88, convertc2f=True) # for day in daysabove: # for d, val in day: # print '%s, %s' % (d, val)
def printvars(fname, ReportVariableDataDictionaryIndex, func=None, year=2001): """print the variables in csv format""" cursor = eplussql.getcursor(fname) varname = eplussql.get_variablename(cursor, ReportVariableDataDictionaryIndex) keyvalue = eplussql.get_keyvalue(cursor, ReportVariableDataDictionaryIndex) matrix = eplussql.get_variables(cursor, ReportVariableDataDictionaryIndex, func=func) yhours = date_functions.yeardateshours(year) outmat = [["datetime", varname]] + [["", keyvalue]] + zip(yhours, matrix) for row in outmat: print "%s, %s" % tuple(row)
def test_get_manyvariables(): """py.test for get_manyvariables""" data = ( ("./eplussql_test/eplussql.sql", [6, 7], [None, None]), # fname, ReportVariableDataDictionaryIndices, funcs ) for fname, ReportVariableDataDictionaryIndices, funcs in data: cursor = eplussql.getcursor(fname) thevars = [] for ind, func in zip(ReportVariableDataDictionaryIndices, funcs): thevars.append(eplussql.get_variables(cursor, ind, func)) matrix = mycsv.transpose2d(thevars) result = eplussql.get_manyvariables(cursor, ReportVariableDataDictionaryIndices, funcs) assert result == matrix
def getmaxmin(fname, varindex, convertc2f=False): """return variable name, max and min of the variable""" cursor = eplussql.getcursor(fname) # startpoint = eplussql.get_wfilestart(cursor) varunit = eplussql.get_variableunit(cursor, varindex) if convertc2f and varunit == u"C": func = eplussql.c2f varunit = u"F" else: func = None matrix = eplussql.get_variables(cursor, varindex, func=func) varname = eplussql.get_variablename(cursor, varindex) keyvalue = eplussql.get_keyvalue(cursor, varindex) return varname, keyvalue, varunit, min(matrix), max(matrix)
def getabove(fname, varindex, aboveval, convertc2f=False): """return variable name, max and min of the variable"""# TODO incorrect __doc__ cursor = eplussql.getcursor(fname) # startpoint = eplussql.get_wfilestart(cursor) varunit = eplussql.get_variableunit(cursor, varindex) if convertc2f and varunit == u'C': func = eplussql.c2f varunit = u'F' else: func = None matrix = eplussql.get_variables(cursor, varindex, func=func) varname = eplussql.get_variablename(cursor, varindex) keyvalue = eplussql.get_keyvalue(cursor, varindex) abovenums = [val for val in matrix if val > aboveval] return varname, keyvalue, varunit, len(abovenums)
def vars2csv(fname, variables, convertc2f=False): """print the vars in csvformat""" matrix = [] cursor = eplussql.getcursor(fname) for varindex in variables: varunit = eplussql.get_variableunit(cursor, varindex) if varunit == u'C' and convertc2f: func = eplussql.c2f varunit = u'F' else: func = None varlist = eplussql.get_variables(cursor, varindex, func=func) varname = eplussql.get_variablename(cursor, varindex) varkeyvalue = eplussql.get_keyvalue(cursor, varindex) headerandlist = [varname] + [varkeyvalue] + [varunit] + varlist matrix.append(headerandlist) matrix = mycsv.transpose2d(matrix) for row in matrix: row = [str(item) for item in row] print ','.join(row)