def wind_shear(shear: str, unit_alt: str = 'ft', unit_wind: str = 'kt', spoken: bool = False) -> str:
    """
    Translate wind shear into a readable string

    Ex: Wind shear 2000ft from 140 at 30kt
    """
    if not shear or 'WS' not in shear or '/' not in shear:
        return ''
    shear = shear[2:].rstrip(unit_wind.upper()).split('/')  # type: ignore
    wdir = core.spoken_number(shear[1][:3]) if spoken else shear[1][:3]
    return f'Wind shear {int(shear[0])*100}{unit_alt} from {wdir} at {shear[1][3:]}{unit_wind}'
def wind_shear ( shear : str , unit_alt : str = 'ft' , unit_wind : str = 'kt' , spoken : bool = False ) -> str : if not shear or 'WS' not in shear or '/' not in shear : return '' shear = shear [ 2 : ] . rstrip ( unit_wind . upper ( ) ) . split ( '/' ) wdir = core . spoken_number ( shear [ 1 ] [ : 3 ] ) if spoken else shear [ 1 ] [ : 3 ] return f'Wind shear {int(shear[0])*100}{unit_alt} from {wdir} at {shear[1][3:]}{unit_wind}'
Translate wind shear into a readable string

    Ex: Wind shear 2000ft from 140 at 30kt