def workout_from_activity(json):
    workout = Workout()

    workout.is_imported = True
    workout.workout_start = json['start_time']  # Parse into date first

    workout.distance = json['total_distance']
    workout.climb = json['climb']
    workout.duration = json['duration']
    workout.calories = json['total_calories']

    workout.tracking_mode = json['tracking_mode']
    workout.equipment_type = json['equipment']
    workout.workout_type = workout_type_from_runkeeper_type(json['type'])

    if json['path'] is not None:
        for path_point in json['path']:
            point = workout_point_from_path_point(path_point)
            workout.points.append(point)

    if json['images'] is not None:
        for image in json['images']:
            point = workout_point_from_image(image)
            workout.points.append(point)

    return workout
def workout_from_strava_activity(json):
    workout = Workout()

    workout.is_imported = True
    workout.workout_start = json["start_date"]

    workout.duration = float(json["elapsed_time"])
    workout.distance = json["distance"]
    workout.calories = int(json["calories"])
    workout.climb = json["total_elevation_gain"]

    workout.workout_type = workout_type_from_strava_type(json["type"])

    # Strava does not save each individual path point
    # but encodes them as polylines.
    # Use http://polyline.readthedocs.org/en/v1.1/ to
    # decode the polyline nested under map.

    return workout