unstale

pypi / geopy

geopy

What changed in geopy 2, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-25.

25 breaking2 deprecations8 new APIs and options1 behavior and defaults2 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.6 on npm

geopy 238 changes

Breaking changes 25

  • Rejects inputs longer than 256 characters to prevent excessive CPU use when parsing malformed coordinate strings; long valid strings with irrelevant prefixes may also be rejected.

    2.5.0release notessecurity advisory

  • Drops support for Python 3.7 and adds support for Python 3.13, 3.14, and 3.15.

    2.5.0release notes

  • Build metadata moves from setup.py to setup.cfg, and download_url is removed from the metadata.

    2.5.0release notes

  • All bounding box arguments must now be a list of two Points; formats such as plain strings and lists of four coordinates are no longer valid.

    2.0.0release notes

  • The default is now True for all geocoders and methods.

    2.0.0release notes

  • Removes the format_string parameter from all geocoders.

    2.0.0release notes

  • Service-specific request parameters are no longer passed to geocoder __init__ methods; pass them to geocode or reverse instead.

    2.0.0release notes

  • Most service-specific geocoder arguments must now be passed as keyword arguments; positional arguments are no longer accepted.

    2.0.0release notes

  • Distance algorithms now raise ValueError for points with different altitudes because altitude is ignored in calculations.

    2.0.0release notes

  • Replaces the removed geopy.distance.vincenty.

    2.0.0release notes

  • Removes vincenty; use geopy.distance.geodesic instead.

    2.0.0release notes

  • The authentication key argument no longer has a default value of None.

    2.0.0release notes

  • Location no longer accepts None for point and raw arguments.

    2.0.0release notes

  • Nominatim now raises ConfigurationError when used with a default or sample user-agent.

    2.0.0release notes

  • The authentication key argument no longer has a default value of None.

    2.0.0release notes

  • Constructing a Point from a single number now raises ValueError; pass zero longitude explicitly to avoid the error.

    2.0.0release notes

  • Timezone no longer accepts None for point and raw arguments.

    2.0.0release notes

  • The authentication key argument no longer has a default value of None.

    2.0.0release notes

  • at_time no longer accepts numeric values; pass datetime instances instead.

    2.0.0release notes

  • Removes GoogleV3.timezone; use GoogleV3.reverse_timezone instead.

    2.0.0release notes

  • Geocoder parse_* methods have been prefixed with an underscore to mark them as private.

    2.0.0release notes

  • Drops support for Python 2.7 and 3.4.

    2.0.0release notes

  • Service-specific request parameters are no longer passed to geocoder __init__ methods; pass them to geocode or reverse instead.

    2.0.0release notes

  • A reverse query that cannot be parsed as a Point now raises ValueError instead of being bypassed.

    2.0.0release notes

  • Passing None now disables the request timeout; previously a default timeout was used.

    2.0.0release notes

Deprecations 2

  • Nominatim has moved from geopy.geocoders.osm to geopy.geocoders.nominatim; the old module remains for backwards compatibility but is slated for removal in geopy 3.

    2.0.0release notes

  • The old Nominatim module remains for backwards compatibility but will be removed in geopy 3.

    2.0.0release notes

New APIs and options 8

  • Adds optional asyncio support in all geocoders via AioHTTPAdapter.

    2.0.0release notes

  • Adds an installation extra for using geopy.adapters.AioHTTPAdapter.

    2.0.0release notes

  • Adds an installation extra for using geopy.adapters.RequestsAdapter.

    2.0.0release notes

  • Introduces adapters as a mechanism for using HTTP client implementations other than urllib.

    2.0.0release notes

  • Adds an adapter using aiohttp, enabling optional asyncio support in geocoders.

    2.0.0release notes

  • Adds an adapter using requests; it is the default when the requests package is installed and supports keepalives.

    2.0.0release notes

  • Adds an adapter using urllib, which is the default when the requests package is not installed.

    2.0.0release notes

  • Adds an async counterpart to RateLimiter.

    2.0.0release notes

Behavior and default changes 1

Fixes and other changes 2