def metar(data: MetarData, units: Units) -> str:
speech = []<EOL>if data.wind_direction and data.wind_speed:<EOL><INDENT>speech.append(wind(data.wind_direction, data.wind_speed,<EOL>data.wind_gust, data.wind_variable_direction,<EOL>units.wind_speed))<EOL><DEDENT>if data.visibility:<EOL><INDENT>speech.append(visibility(data.visibility, units.visibility))<EOL><DEDENT>if data.temperature:<EOL><INDENT>speech.append(temperature('<STR_LIT>', data.temperature, units.temperature))<EOL><DEDENT>if data.dewpoint:<EOL><INDENT>speech.append(temperature('<STR_LIT>', data.dewpoint, units.temperature))<EOL><DEDENT>if data.altimeter:<EOL><INDENT>speech.append(altimeter(data.altimeter, units.altimeter))<EOL><DEDENT>if data.other:<EOL><INDENT>speech.append(other(data.other))<EOL><DEDENT>speech.append(translate.clouds(data.clouds,<EOL>units.altitude).replace('<STR_LIT>', '<STR_LIT>'))<EOL>return ('<STR_LIT>'.join([l for l in speech if l])).replace('<STR_LIT:U+002C>', '<STR_LIT:.>')<EOL>
Convert MetarData into a string for text-to-speech