code: def _normalize_coordinates(latitude, longitude, altitude):
      latitude = float(latitude or 0.0)
      longitude = float(longitude or 0.0)
      altitude = float(altitude or 0.0)
  
      is_all_finite = all(
          isfinite(x) for x in (latitude, longitude, altitude)
      )
      if not is_all_finite:
          raise ValueError(
              "Point coordinates must be finite. %r has been passed "
              "as coordinates." % ((latitude, longitude, altitude),)
          )
  
      if abs(latitude) > 90:
          warnings.warn(
              "Latitude normalization has been prohibited in the newer "
              "versions of geopy, because the normalized value happened "
              "to be on a different pole, which is probably not what was "
              "meant. If you pass coordinates as positional args, "
              "please make sure that the order is "
              "(latitude, longitude) or (y, x) in Cartesian terms.",
              UserWarning,
              stacklevel=3,
          )
          raise ValueError("Latitude must be in the [-90; 90] range.")
  
      if abs(longitude) > 180:
          # Longitude normalization is pretty straightforward and doesn't seem
          # to be error-prone, so there's nothing to complain about.
          longitude = _normalize_angle(longitude, 180.0)
  
      return latitude, longitude, altitude
  
imports: import collections.abc
  import re
  import warnings
  from itertools import islice
  from math import fmod, isfinite
  from geopy import units, util
  from geopy.format import DEGREE, DOUBLE_PRIME, PRIME, format_degrees, format_distance
label_desc: Use image node_id 2 for calling a global function with example usage: _normalize_coordinates(latitude, longitude, altitude) and returns: latitude,  longitude,  altitude