def data(self, index, role=Qt.DisplayRole): if not index.isValid(): return None row = self._dataFrame.index[index.row()] col = self._dataFrame.columns[index.column()] if role == Qt.DisplayRole: if self._cur_drop_type == DropTypes.Drop: multiplier = self.rpe_table.ix[row, col] if not self._cur_e1rm: return str(multiplier * 100) weight = round_5lbs(self._cur_e1rm * multiplier) rpe = self.rpe_table.index[self.rpe_table.index == row][0] reps = self.rpe_table.columns.tolist()[col-1] return '{}x{}@{} ({}%)'.format(weight, reps, rpe, int(multiplier*100)) elif self._cur_drop_type == DropTypes.Repeat: pass # TODO: Implement Repeat table elif role == Qt.BackgroundColorRole: try: per = self.rpe_table.ix[row].ix[col] if per > 0.89: result = Theme.RpeBrushUndesirable elif 0.81 >= per >= 0.79: result = Theme.RpeBrushIdeal else: result = None return result except KeyError: pass else: return super().data(index, role)
def make_workout(self, lift, sets, date): workout = pd.DataFrame() for set in sets: weight, reps, rpe = set weight = analysis.round_5lbs(weight) set_data = self.make_set(date=date, lift=lift, weight=weight, reps=reps, rpe=rpe) workout = workout.append(set_data, ignore_index=True) return workout