Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def _convert_speed(self, v):
"""
Converts speed (must have units) to configured imperial/metric units.
:param v: The speed. If this is not a units object, assumed to be meters per second.
:type v: :class:`units.abstract.AbstractUnit` or float
"""
#print("Got raw value %r" % (v,))
if not isinstance(v, AbstractUnit):
v = measurement.meters_per_second(v)
#print("Normalized: %r" % (v,))
if self.units == IMPERIAL:
result = measurement.mph(v)
else:
result = measurement.kph(v)
return result.get_num()
def populate_ride_effort_base(self, entity_model, entity_struct):
"""
Populates the attributes shared by rides and efforts.
"""
self.populate_minimal(entity_model, entity_struct)
athlete_struct = entity_struct['athlete']
athlete = Athlete(bind_client=entity_model.bind_client)
self.populate_athlete(athlete, athlete_struct)
entity_model.athlete = athlete
entity_model.average_speed = self._convert_speed(entity_struct['averageSpeed'])
entity_model.average_watts = entity_struct['averageWatts']
entity_model.maximum_speed = self._convert_speed(measurement.kph(entity_struct['maximumSpeed'] / 1000.0)) # Not sure why this is in meters per *hour* ... !?
entity_model.elevation_gain = self._convert_elevation(entity_struct['elevationGain'])
entity_model.distance = self._convert_distance(entity_struct['distance'])
entity_model.elapsed_time = timedelta(seconds=entity_struct['elapsedTime'])
entity_model.moving_time = timedelta(seconds=entity_struct['movingTime'])
entity_model.start_date = self._parse_datetime(entity_struct['startDateLocal'], entity_struct['timeZoneOffset'])