Calls `postcodes.get_nearest` but checks correctness of `lat` 
        and `long`, and by default utilises a local cache.

        :param skip_cache: optional argument specifying whether to skip 
                           the cache and make an explicit request.

        :raises IllegalPointException: if the latitude or longitude 
                                       are out of bounds.

        :returns: a dict of the nearest postcode's data.

def get_nearest(self, lat, lng, skip_cache=False): 
        """
        Calls `postcodes.get_nearest` but checks correctness of `lat` 
        and `long`, and by default utilises a local cache.

        :param skip_cache: optional argument specifying whether to skip 
                           the cache and make an explicit request.

        :raises IllegalPointException: if the latitude or longitude 
                                       are out of bounds.

        :returns: a dict of the nearest postcode's data.
        """
        lat, lng = float(lat), float(lng)
        self._check_point(lat, lng)
        return self._lookup(skip_cache, get_nearest, lat, lng)