예제 #1
0
 def ride_to_intervals(self, dic):
     return k(dic) @ (lambda ride: k(ride['RIDE']['INTERVALS']) @ partial(
         map, lambda interval: k(ride['RIDE']['SAMPLES']) @ partial(
             filter, lambda data: data['SECS'] >= interval['START'] and
             data['SECS'] < interval['STOP']) @ partial(
                 map, lambda data: {
                     'SECS': data.get('SECS'),
                     'WATTS': data.get('WATTS'),
                     'HR': data.get('HR')
                 }) @ list @ (lambda x:
                              (interval['NAME'], x)) @ 'end') @ dict @ 'end'
                      ) @ 'end'
예제 #2
0
    def get_power_history(self):
        path = os.path.join(self.gc_folder_path, 'config/power.zones')
        with open(path, 'r') as fdesc:
            lines = fdesc.read().splitlines()

        return k(lines) \
         @ partial(map,lambda x: x.split(':')) @ flatten \
         @ partial(split_before, pred = lambda x: 'DEFAULTS' in x or '/' in x) \
         @ list @ partial(select, lambda x: x[0]!='DEFAULTS') \
         @ (lambda l: [{'dateTime': datetime.strptime(x[0],'%Y/%m/%d'),
            **( k(x[1:]) @ partial(map,lambda y:
             k(y.split('=')) @ partial(map, lambda i: i.strip()) @ tuple @ 'end'
                                                            if '=' in y else y)
                @ dict @ 'end' ) } for x in l ]) @ 'end'
예제 #3
0
 def get_sleep_info(self, base_date = None, end_date = None):
     list_dates = self.split_dates_in_Ns(base_date, end_date, 100)
     return k(list_dates) @ partial(map,
      lambda x: self.authd_client.time_series('sleep',
             base_date=x['base_date'], end_date=x['end_date'])['sleep']) \
      @ itertools.chain.from_iterable @ list @ self._sleep_struct \
      @ 'end'
예제 #4
0
 def get_intraday_heartrate_info(self, base_date = 'today',
                             end_date = '1d',  detail_level = '1min'):
     if end_date == '1d':
         return self._intraday_heart_struct([
             self.authd_client.intraday_time_series('activities/heart',
             base_date=base_date, detail_level = detail_level)])
     else:
         list_dates = self.date_delimiter_to_range(base_date, end_date)
         return k(list_dates) @ partial(map, lambda date:
          self.get_intraday_heartrate_info(base_date = date,
                             end_date = '1d', detail_level = detail_level))\
          @ list @ \
          (lambda lst: {list(x.keys())[0]: list(x.values())[0] for x in lst})\
           @ 'end'
예제 #5
0
pep = gcApi.get_rides_by_date('2017-03-09', datestr_end = '2017-03-28')
len(list(pep))

pup = gcApi.get_rides_with_note('sloten')
pupu = list(pup)

len(pupu)

pupu[1]['RIDE']['STARTTIME']
dict([('jue', 1),('lol',2)])
gcApi.ride_to_intervals(pupu[0])
pipu = pdw.dictsOfDicts_to_dataframes(gcApi.ride_to_intervals(pupu[0]))
pipu

pipui = pipu.iloc[:,pipu.columns.get_level_values(0) == 'Lap 1 '].get('Lap 1 ').set_index('SECS').reindex(k(pipui.index) @ (lambda x: np.arange(x.min(),x.max()+1)) @ 'end', fill_value = 0)

pipui.plot()
.plot()
pipu.iloc[:,pipu.columns.get_level_values(0) == 'Lap 1 '].plot()

pipu.iloc[:,pipu.columns.get_level_values(0) == 'Lap 1 ']



gcApi.get_power_history()



# %%
# ===========================================
예제 #6
0
 def get_power_at_date(self, date):
     return k(self.get_power_history()) \
      @ partial(filter, lambda x:
                     x['dateTime'] < datetime.strptime(date,'%Y-%m-%d'))\
      @ last @ 'end'