def test_clouds(self): """ Tests translating each cloud into a single string """ self.assertEqual(translate.clouds(None), '') self.assertEqual(translate.clouds([]), 'Sky clear') for clouds, translation in ( (['BKN','FEW020'], 'Few clouds at 2000ft'), (['OVC030','SCT100'], 'Overcast layer at 3000ft, Scattered clouds at 10000ft'), (['BKN015CB'], 'Broken layer at 1500ft (Cumulonimbus)'), ): clouds = [core.make_cloud(cloud) for cloud in clouds] self.assertEqual(translate.clouds(clouds), translation + ' - Reported AGL')
def test_clouds(self): """ Tests translating each cloud into a single string """ self.assertEqual(translate.clouds(None), '') self.assertEqual(translate.clouds([]), 'Sky clear') for clouds, translation in ( (['BKN', 'FEW020'], 'Few clouds at 2000ft'), (['OVC030', 'SCT100'], 'Overcast layer at 3000ft, Scattered clouds at 10000ft'), (['BKN015CB'], 'Broken layer at 1500ft (Cumulonimbus)'), ): clouds = [core.make_cloud(cloud) for cloud in clouds] self.assertEqual(translate.clouds(clouds), translation + ' - Reported AGL')
def taf_line(line: TafLineData, units: Units) -> str: """ Convert TafLineData into a string for text-to-speech """ speech = [] start = type_and_times(line.type, line.start_time, line.end_time, line.probability) if line.wind_direction and line.wind_speed: speech.append( wind( line.wind_direction, line.wind_speed, line.wind_gust, unit=units.wind_speed, )) if line.wind_shear: speech.append( wind_shear(line.wind_shear, units.altimeter, units.wind_speed)) if line.visibility: speech.append(visibility(line.visibility, units.visibility)) if line.altimeter: speech.append(altimeter(line.altimeter, units.altimeter)) if line.other: speech.append(other(line.other)) speech.append( translate.clouds(line.clouds, units.altitude).replace(" - Reported AGL", "")) if line.turbulance: speech.append(translate.turb_ice(line.turbulance, units.altitude)) if line.icing: speech.append(translate.turb_ice(line.icing, units.altitude)) return start + " " + (". ".join([l for l in speech if l])).replace(",", ".")
def metar(data: MetarData, units: Units) -> str: """ Convert MetarData into a string for text-to-speech """ speech = [] if data.wind_direction and data.wind_speed: speech.append( wind( data.wind_direction, data.wind_speed, data.wind_gust, data.wind_variable_direction, units.wind_speed, )) if data.visibility: speech.append(visibility(data.visibility, units.visibility)) if data.temperature: speech.append( temperature("Temperature", data.temperature, units.temperature)) if data.dewpoint: speech.append( temperature("Dew point", data.dewpoint, units.temperature)) if data.altimeter: speech.append(altimeter(data.altimeter, units.altimeter)) if data.other: speech.append(other(data.other)) speech.append( translate.clouds(data.clouds, units.altitude).replace(" - Reported AGL", "")) return (". ".join([l for l in speech if l])).replace(",", ".")
def metar(wxdata: {str: object}) -> str: """ Convert wxdata into a string for text-to-speech """ _data = deepcopy(wxdata) units = deepcopy(wxdata['Units']) speech = [] if _data['Wind-Direction'] and _data['Wind-Speed']: speech.append( wind(_data['Wind-Direction'], _data['Wind-Speed'], _data['Wind-Gust'], _data['Wind-Variable-Dir'], units['Wind-Speed'])) if _data['Visibility']: speech.append(visibility(_data['Visibility'], units['Visibility'])) if _data['Temperature']: speech.append( temperature('Temperature', _data['Temperature'], units['Temperature'])) if _data['Dewpoint']: speech.append( temperature('Dew point', _data['Dewpoint'], units['Temperature'])) if _data['Altimeter']: speech.append(altimeter(_data['Altimeter'], units['Altimeter'])) if _data['Other-List']: speech.append(other(_data['Other-List'])) speech.append( translate.clouds(_data['Cloud-List'], units['Altitude']).replace(' - Reported AGL', '')) return ('. '.join([l for l in speech if l])).replace(',', '.')
def test_clouds(self): """ Tests translating each cloud into a single string """ self.assertEqual(translate.clouds(None), "") self.assertEqual(translate.clouds([]), "Sky clear") for clouds, translation in ( (["BKN", "FEW020"], "Few clouds at 2000ft"), ( ["OVC030", "SCT100"], "Overcast layer at 3000ft, Scattered clouds at 10000ft", ), (["BKN015CB"], "Broken layer at 1500ft (Cumulonimbus)"), ): clouds = [_core.make_cloud(cloud) for cloud in clouds] self.assertEqual(translate.clouds(clouds), translation + " - Reported AGL")
def metar(data: MetarData, units: Units) -> str: """ Convert MetarData into a string for text-to-speech """ speech = [] if data.wind_direction and data.wind_speed: speech.append(wind(data.wind_direction, data.wind_speed, data.wind_gust, data.wind_variable_direction, units.wind_speed)) if data.visibility: speech.append(visibility(data.visibility, units.visibility)) if data.temperature: speech.append(temperature('Temperature', data.temperature, units.temperature)) if data.dewpoint: speech.append(temperature('Dew point', data.dewpoint, units.temperature)) if data.altimeter: speech.append(altimeter(data.altimeter, units.altimeter)) if data.other: speech.append(other(data.other)) speech.append(translate.clouds(data.clouds, units.altitude).replace(' - Reported AGL', '')) return ('. '.join([l for l in speech if l])).replace(',', '.')
def taf_line(line: TafLineData, units: Units) -> str: """ Convert TafLineData into a string for text-to-speech """ speech = [] start = type_and_times(line.type, line.start_time, line.end_time, line.probability) if line.wind_direction and line.wind_speed: speech.append(wind(line.wind_direction, line.wind_speed, line.wind_gust, unit=units.wind_speed)) if line.wind_shear: speech.append(wind_shear(line.wind_shear, units.altimeter, units.wind_speed)) if line.visibility: speech.append(visibility(line.visibility, units.visibility)) if line.altimeter: speech.append(altimeter(line.altimeter, units.altimeter)) if line.other: speech.append(other(line.other)) speech.append(translate.clouds(line.clouds, units.altitude).replace(' - Reported AGL', '')) if line.turbulance: speech.append(translate.turb_ice(line.turbulance, units.altitude)) if line.icing: speech.append(translate.turb_ice(line.icing, units.altitude)) return start + ' ' + ('. '.join([l for l in speech if l])).replace(',', '.')