# -*- coding: utf-8 -*-
from syncano.exceptions import SyncanoValueError
[docs]class GeoPoint(object):
def __init__(self, latitude, longitude):
self.latitude = latitude
self.longitude = longitude
def __repr__(self):
return "GeoPoint(latitude={}, longitude={})".format(self.latitude, self.longitude)
[docs] def to_native(self):
geo_struct_dump = {'latitude': self.latitude, 'longitude': self.longitude}
return geo_struct_dump
[docs]class Distance(object):
KILOMETERS = '_in_kilometers'
MILES = '_in_miles'
def __init__(self, kilometers=None, miles=None):
if kilometers is not None and miles is not None:
raise SyncanoValueError('`kilometers` and `miles` can not be set at the same time.')
if kilometers is None and miles is None:
raise SyncanoValueError('`kilometers` or `miles` attribute should be specified.')
self.distance = kilometers or miles
self.unit = self.KILOMETERS if kilometers is not None else self.MILES
[docs] def to_native(self):
return {
'distance{}'.format(self.unit): self.distance
}