upoints (formally known as earth_distance) is tool that offers a collection of GPL v3 licensed modules for working with points on a spherical object. It allows you to calculate the distance and bearings between points, mangle xearth/xplanet data files, work with online UK trigpoint databases and various other databases.
It began life as a bunch of hacks written to support geolocation and path cross, xearth and path cross, Trigpointing and point.py, Cities and cities.py, Pythons on a plane and The MERLIN system.
Grab it from the downloads section and read the docs. If you have any problems with it feel free to drop a comment.