# Path: geopy/units.py
# def degrees(radians=0, arcminutes=0, arcseconds=0):
# def radians(degrees=0, arcminutes=0, arcseconds=0):
# def arcminutes(degrees=0, radians=0, arcseconds=0):
# def arcseconds(degrees=0, radians=0, arcminutes=0):
# def kilometers(meters=0, miles=0, feet=0, nautical=0):
# def meters(kilometers=0, miles=0, feet=0, nautical=0):
# def miles(kilometers=0, meters=0, feet=0, nautical=0):
# def feet(kilometers=0, meters=0, miles=0, nautical=0):
# def nautical(kilometers=0, meters=0, miles=0, feet=0):
# 
# Path: geopy/util.py
# NUMBER_TYPES = (int, float, Decimal)
# def pairwise(seq):
# def join_filter(sep, seq, pred=bool):
# def get_version():
# 
# Path: geopy/format.py
# DEGREE = chr(176)
# 
# DOUBLE_PRIME = chr(8243)
# 
# PRIME = chr(8242)
# 
# def format_degrees(degrees, fmt=DEGREES_FORMAT, symbols=None):
#     """
#     TODO docs.
#     """
#     symbols = symbols or ASCII_SYMBOLS
#     arcminutes = units.arcminutes(degrees=degrees - int(degrees))
#     arcseconds = units.arcseconds(arcminutes=arcminutes - int(arcminutes))
#     format_dict = dict(
#         symbols,
#         degrees=degrees,
#         minutes=abs(arcminutes),
#         seconds=abs(arcseconds)
#     )
#     return fmt % format_dict
# 
# def format_distance(kilometers, fmt=DISTANCE_FORMAT, unit='km'):
#     """
#     TODO docs.
#     """
#     magnitude = DISTANCE_UNITS[unit](kilometers)
#     return fmt % {'magnitude': magnitude, 'unit': unit}


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
        longitude = "%s %s" % (
            format_degrees(abs(self.longitude), symbols={
                'deg': deg_char, 'arcmin': min_char, 'arcsec': sec_char
            }),
            self.longitude >= 0 and 'E' or 'W'
        )
        coordinates = [latitude, longitude]

        if altitude is None:
            altitude = bool(self.altitude)
        if altitude:
            if not isinstance(altitude, str):
                altitude = 'km'
            coordinates.append(self.format_altitude(altitude))

        return ", ".join(coordinates)

    def format_unicode(self, altitude=None):
        """
        :meth:`.format` with pretty unicode chars for degrees,
        minutes and seconds::

            >>> p = Point(41.5, -81.0, 12.3)
            >>> p.format_unicode()
            '41° 30′ 0″ N, 81° 0′ 0″ W, 12.3km'

        :param bool altitude: Whether to include ``altitude`` value.
            By default it is automatically included if it is non-zero.
        """
        return self.format(

# Path: geopy/units.py
# def degrees(radians=0, arcminutes=0, arcseconds=0):
# def radians(degrees=0, arcminutes=0, arcseconds=0):
# def arcminutes(degrees=0, radians=0, arcseconds=0):
# def arcseconds(degrees=0, radians=0, arcminutes=0):
# def kilometers(meters=0, miles=0, feet=0, nautical=0):
# def meters(kilometers=0, miles=0, feet=0, nautical=0):
# def miles(kilometers=0, meters=0, feet=0, nautical=0):
# def feet(kilometers=0, meters=0, miles=0, nautical=0):
# def nautical(kilometers=0, meters=0, miles=0, feet=0):
# 
# Path: geopy/util.py
# NUMBER_TYPES = (int, float, Decimal)
# def pairwise(seq):
# def join_filter(sep, seq, pred=bool):
# def get_version():
# 
# Path: geopy/format.py
# DEGREE = chr(176)
# 
# DOUBLE_PRIME = chr(8243)
# 
# PRIME = chr(8242)
# 
# def format_degrees(degrees, fmt=DEGREES_FORMAT, symbols=None):
#     """
#     TODO docs.
#     """
#     symbols = symbols or ASCII_SYMBOLS
#     arcminutes = units.arcminutes(degrees=degrees - int(degrees))
#     arcseconds = units.arcseconds(arcminutes=arcminutes - int(arcminutes))
#     format_dict = dict(
#         symbols,
#         degrees=degrees,
#         minutes=abs(arcminutes),
#         seconds=abs(arcseconds)
#     )
#     return fmt % format_dict
# 
# def format_distance(kilometers, fmt=DISTANCE_FORMAT, unit='km'):
#     """
#     TODO docs.
#     """
#     magnitude = DISTANCE_UNITS[unit](kilometers)
#     return fmt % {'magnitude': magnitude, 'unit': unit}


# Path: geopy/point.py
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

        longitude = "%s %s" % (
            format_degrees(abs(self.longitude), symbols={
                'deg': deg_char, 'arcmin': min_char, 'arcsec': sec_char
            }),
            self.longitude >= 0 and 'E' or 'W'
        )
        coordinates = [latitude, longitude]

        if altitude is None:
            altitude = bool(self.altitude)
        if altitude:
            if not isinstance(altitude, str):
                altitude = 'km'
            coordinates.append(self.format_altitude(altitude))

        return ", ".join(coordinates)

    def format_unicode(self, altitude=None):
        """
        :meth:`.format` with pretty unicode chars for degrees,
        minutes and seconds::

            >>> p = Point(41.5, -81.0, 12.3)
            >>> p.format_unicode()
            '41° 30′ 0″ N, 81° 0′ 0″ W, 12.3km'

        :param bool altitude: Whether to include ``altitude`` value.
            By default it is automatically included if it is non-zero.
        """
        return self.format(

            altitude, DEGREE, PRIME, DOUBLE_PRIME