def _format_coord(cls, pt_object, api='route'): if api not in ['route', 'sources_to_targets']: logging.getLogger(__name__).error('Valhalla routing service , invalid api {}'.format(api)) raise ApiNotFound('Valhalla routing service , invalid api {}'.format(api)) coord = get_pt_object_coord(pt_object) dict_coord = {"lat": coord.lat, "lon": coord.lon} if api == 'route': dict_coord["type"] = "break" return dict_coord
def dispatch(self, arguments, api, instance_obj=None, instance_name=None, request=None): if instance_obj: instance_name = instance_obj.name if instance_name in self.instances: instance = self.instances[instance_name] if api in instance.script.apis: api_func = getattr(instance.script, api) return api_func(arguments, instance) else: raise ApiNotFound(api) else: raise RegionNotFound(instance_name)
def dispatch(self, arguments, api, instance_name=None): if instance_name not in self.instances: raise RegionNotFound(instance_name) instance = self.instances[instance_name] scenario = instance.scenario(arguments.get('_override_scenario')) if not hasattr(scenario, api) or not callable(getattr(scenario, api)): raise ApiNotFound(api) publication_date = instance.publication_date api_func = getattr(scenario, api) resp = api_func(arguments, instance) if instance.publication_date != publication_date: self._clear_cache() return resp
def dispatch(self, arguments, api, instance_obj=None, instance_name=None, request=None): if instance_obj: instance_name = instance_obj.name if instance_name not in self.instances: raise RegionNotFound(instance_name) instance = self.instances[instance_name] if not hasattr(instance.scenario, api) or not callable( getattr(instance.scenario, api)): raise ApiNotFound(api) api_func = getattr(instance.scenario, api) resp = api_func(arguments, instance) if resp.HasField("publication_date") and\ instance.publication_date != resp.publication_date: self._clear_cache() instance.publication_date = resp.publication_date return resp