예제 #1
0
 def test_statics(self):
     self.assertTrue(isinstance(DataLogger.get_user(self.basedir), basestring))
     self.assertTrue(isinstance(DataLogger.get_group(self.basedir), basestring))
     self.assertTrue(isinstance(DataLogger.get_yesterday_datestring(), basestring))
     lbd = DataLogger.get_last_business_day_datestring()
     self.assertTrue(isinstance(DataLogger.get_last_business_day_datestring(), basestring))
     self.assertTrue(isinstance(DataLogger.datestring_to_date(lbd), datetime.date))
     for datestring in DataLogger.datewalker("2016-01-01", "2016-02-29"):
         self.assertTrue(isinstance(datestring, basestring))
     for datestring in DataLogger.monthwalker("2016-02"):
         self.assertTrue(isinstance(datestring, basestring))
     self.assertEqual(list(DataLogger.monthwalker("2016-02"))[-1], "2016-02-29")
     self.assertTrue(isinstance(DataLogger.get_ts_for_datestring("2016-01-01"), tuple))
     self.assertTrue(isinstance(DataLogger.get_ts_for_datestring("2016-01-01")[0], float))
     self.assertTrue(isinstance(DataLogger.get_ts_for_datestring("2016-01-01")[1], float))
예제 #2
0
파일: code2.py 프로젝트: gunny26/datalogger
    def get_monthly_ts(self, project, tablename, monthstring, args):
        """
        get monthly statistical values

        TODO: should be combined with get_lt_ts
        """
        index_key_enc = None
        value_keyname = None
        stat_func_name = "avg"
        if len(args) == 2:
            index_key_enc, value_keyname = args
        else:
            index_key_enc, value_keyname, stat_func_name = args
        if len(monthstring) != 7:
            web.internalerror()
            return "monthstring, has to be in YYYY-MM format"
        # key_str should be a tuple string, convert to unicode tuple
        index_key = tuple([unicode(key_value) for key_value in eval(base64.b64decode(index_key_enc))])
        logging.info("index_key : %s", index_key)
        logging.info("value_keyname : %s", value_keyname)
        logging.info("stat_func_name: %s", stat_func_name)
        datalogger = DataLogger(basedir, project, tablename)
        filterkeys = dict(zip(datalogger.index_keynames, index_key))
        ret_data = []
        for datestring in datalogger.monthwalker(monthstring):
            logging.debug("getting tsatstats for %s", monthstring)
            try:
                tsastats = datalogger.load_tsastats(datestring, filterkeys=filterkeys)
                ret_data.append([datestring, tsastats[index_key][value_keyname][stat_func_name]])
            except DataLoggerRawFileMissing as exc:
                logging.error("No Input File for datestring %s found, skipping this date", datestring)
            except DataLoggerLiveDataError as exc:
                logging.error("Reading from live data is not allowed, skipping this data, and ending loop")
                break
        return json.dumps(ret_data)