示例#1
0
 def __init__(self,
              url,
              network,
              username,
              password,
              operators={'cykleo'},
              verify_certificate=False,
              service_id=None,
              organization_id=None,
              timeout=2,
              feed_publisher=DEFAULT_CYKLEO_FEED_PUBLISHER,
              **kwargs):
     self.url = url
     self.network = network.lower()
     self.service_id = service_id
     self.organization_id = organization_id
     self.verify_certificate = verify_certificate
     self.username = username
     self.password = password
     self.operators = [o.lower() for o in operators]
     self.timeout = timeout
     self.breaker = pybreaker.CircuitBreaker(
         fail_max=kwargs.get('circuit_breaker_max_fail',
                             app.config['CIRCUIT_BREAKER_MAX_CYKLEO_FAIL']),
         reset_timeout=kwargs.get(
             'circuit_breaker_reset_timeout',
             app.config['CIRCUIT_BREAKER_CYKLEO_TIMEOUT_S']),
     )
     self._feed_publisher = FeedPublisher(
         **feed_publisher) if feed_publisher else None
示例#2
0
 def __init__(self,
              network,
              contract,
              api_key,
              operators={'jcdecaux'},
              timeout=10,
              feed_publisher=DEFAULT_JCDECAUX_FEED_PUBLISHER,
              **kwargs):
     self.network = network.lower()
     self.contract = contract
     self.api_key = api_key
     self.operators = [o.lower() for o in operators]
     self.timeout = timeout
     fail_max = kwargs.get('circuit_breaker_max_fail',
                           app.config['CIRCUIT_BREAKER_MAX_JCDECAUX_FAIL'])
     reset_timeout = kwargs.get(
         'circuit_breaker_reset_timeout',
         app.config['CIRCUIT_BREAKER_JCDECAUX_TIMEOUT_S'])
     self.breaker = pybreaker.CircuitBreaker(fail_max=fail_max,
                                             reset_timeout=reset_timeout)
     self._feed_publisher = FeedPublisher(
         **feed_publisher) if feed_publisher else None
     self._data = {}
     self._last_update = datetime.datetime(1970, 1, 1)
     self._update_interval = 30
示例#3
0
 def __init__(
     self,
     instance,
     service_url,
     modes=[],
     id='geovelo',
     timeout=10,
     api_key=None,
     feed_publisher=DEFAULT_GEOVELO_FEED_PUBLISHER,
     verify=True,
     **kwargs
 ):
     self.instance = instance
     self.sn_system_id = id
     if not is_url(service_url):
         raise ValueError('service_url {} is not a valid url'.format(service_url))
     self.service_url = service_url
     self.api_key = api_key
     self.timeout = timeout
     self.modes = modes
     self.breaker = pybreaker.CircuitBreaker(
         fail_max=app.config['CIRCUIT_BREAKER_MAX_GEOVELO_FAIL'],
         reset_timeout=app.config['CIRCUIT_BREAKER_GEOVELO_TIMEOUT_S'],
     )
     self._feed_publisher = FeedPublisher(**feed_publisher) if feed_publisher else None
     self.verify = verify
示例#4
0
    def __init__(self,
                 instance,
                 service_base_url,
                 modes=[],
                 id='here',
                 timeout=10,
                 api_id=None,
                 api_code=None,
                 feed_publisher=DEFAULT_HERE_FEED_PUBLISHER,
                 **kwargs):
        self.instance = instance
        self.sn_system_id = id
        if not service_base_url:
            raise ValueError('service_url {} is not a valid HERE url'.format(
                service_base_url))
        service_base_url = service_base_url.rstrip('/')
        self.routing_service_url = 'https://{base_url}/calculateroute.json'.format(
            base_url=service_base_url)
        self.matrix_service_url = 'https://matrix.{base_url}/calculatematrix.json'.format(
            base_url=service_base_url)
        self.api_id = api_id
        self.api_code = api_code
        self.modes = modes
        self.timeout = timeout
        self.max_points = 100  # max number of point asked in the routing matrix
        self.breaker = pybreaker.CircuitBreaker(
            fail_max=app.config['CIRCUIT_BREAKER_MAX_HERE_FAIL'],
            reset_timeout=app.config['CIRCUIT_BREAKER_HERE_TIMEOUT_S'])

        self.log = logging.LoggerAdapter(logging.getLogger(__name__),
                                         extra={'streetnetwork_id': id})
        self._feed_publisher = FeedPublisher(
            **feed_publisher) if feed_publisher else None
示例#5
0
    def __init__(self,
                 url,
                 operators,
                 dataset,
                 timeout=1,
                 feed_publisher=DEFAULT_STAR_FEED_PUBLISHER,
                 **kwargs):

        self.ws_service_template = url + '/?dataset={}&refine.idparc={}'

        self.operators = [o.lower() for o in operators]
        self.timeout = timeout
        self.dataset = dataset

        fail_max = kwargs.get('circuit_breaker_max_fail',
                              app.config['CIRCUIT_BREAKER_MAX_STAR_FAIL'])
        reset_timeout = kwargs.get(
            'circuit_breaker_reset_timeout',
            app.config['CIRCUIT_BREAKER_STAR_TIMEOUT_S'])

        self.breaker = pybreaker.CircuitBreaker(fail_max=fail_max,
                                                reset_timeout=reset_timeout)
        self._feed_publisher = FeedPublisher(
            **feed_publisher) if feed_publisher else None

        self.log = logging.LoggerAdapter(logging.getLogger(__name__),
                                         extra={'dataset': self.dataset})
示例#6
0
 def __init__(self, network, operators):
     super(DummyProvider, self).__init__()
     self.url = 'Dummy Url'
     self.network = network.lower() if network else None
     self.service_id = "Dummy Service"
     self.organization_id = "Dummy Organization"
     self.operators = [o.lower() for o in operators or []]
     self._feed_publisher = FeedPublisher(**DUMMY_FEED_PUBLISHER)
示例#7
0
文件: atos.py 项目: kadhikari/navitia
 def __init__(self, id_ao, network, url, operators={'keolis'}, timeout=5,
              feed_publisher=DEFAULT_ATOS_FEED_PUBLISHER, **kwargs):
     self.id_ao = id_ao
     self.network = network.lower()
     self.WS_URL = url
     self.operators = [o.lower() for o in operators]
     self.timeout = timeout
     self._client = None
     self.breaker = pybreaker.CircuitBreaker(fail_max=kwargs.get('fail_max', 5), reset_timeout=kwargs.get('reset_timeout', 120))
     self._feed_publisher = FeedPublisher(**feed_publisher) if feed_publisher else None
示例#8
0
    def __init__(self,
                 instance,
                 service_base_url,
                 modes=[],
                 id='here',
                 timeout=10,
                 apiKey=None,
                 matrix_type=MatrixType.simple_matrix.value,
                 max_matrix_points=default_values.here_max_matrix_points,
                 realtime_traffic=True,
                 language="english",
                 engine_type="diesel",
                 engine_average_consumption=7,
                 feed_publisher=DEFAULT_HERE_FEED_PUBLISHER,
                 **kwargs):
        self.instance = instance
        self.sn_system_id = id
        if not service_base_url:
            raise ValueError('service_url {} is not a valid HERE url'.format(
                service_base_url))
        service_base_url = service_base_url.rstrip('/')
        self.routing_service_url = 'https://{base_url}/calculateroute.json'.format(
            base_url=service_base_url)
        self.matrix_service_url = 'https://matrix.{base_url}/calculatematrix.json'.format(
            base_url=service_base_url)
        self.log = logging.LoggerAdapter(
            logging.getLogger(__name__),
            extra={'streetnetwork_id': text_type(id)})
        self.apiKey = apiKey
        self.modes = modes
        self.timeout = timeout
        self.matrix_type = self._get_matrix_type(matrix_type)
        self.max_matrix_points = self._get_max_matrix_points(max_matrix_points)
        self.realtime_traffic = self._get_realtime_traffic(realtime_traffic)
        self.language = self._get_language(language.lower())
        self.engine_type = self._get_engine_type(engine_type.lower())
        self.engine_average_consumption = engine_average_consumption
        self.breaker = pybreaker.CircuitBreaker(
            fail_max=app.config['CIRCUIT_BREAKER_MAX_HERE_FAIL'],
            reset_timeout=app.config['CIRCUIT_BREAKER_HERE_TIMEOUT_S'],
        )

        self.log.debug(
            'Here, load configuration max_matrix_points={} - matrix_type={} - realtime_traffic={} - language={} - engine_type={} - engine_average_consumption={}'
            .format(
                self.max_matrix_points,
                self.matrix_type.value,
                self.realtime_traffic.value,
                self.language.value,
                self.engine_type,
                self.engine_average_consumption,
            ))
        self._feed_publisher = FeedPublisher(
            **feed_publisher) if feed_publisher else None
示例#9
0
    def __init__(self,
                 url,
                 operators,
                 dataset,
                 timeout=1,
                 feed_publisher=DEFAULT_DIVIA_FEED_PUBLISHER,
                 **kwargs):

        self._feed_publisher = FeedPublisher(
            **feed_publisher) if feed_publisher else None
        self.provider_name = 'DIVIA'

        super(DiviaProvider, self).__init__(url, operators, dataset, timeout,
                                            **kwargs)
示例#10
0
    def __init__(self, url, operators, dataset, timeout, feed_publisher, **kwargs):
        super(CommonCarParkProvider, self).__init__(**kwargs)
        self.ws_service_template = url + '?dataset={}'
        self.operators = [o.lower() for o in operators]
        self.timeout = timeout
        self.dataset = dataset
        self._feed_publisher = FeedPublisher(**feed_publisher) if feed_publisher else None
        self.fail_max = kwargs.get(
            'circuit_breaker_max_fail', app.config.get(str('CIRCUIT_BREAKER_MAX_CAR_PARK_FAIL'), 5)
        )
        self.reset_timeout = kwargs.get(
            'circuit_breaker_reset_timeout', app.config.get(str('CIRCUIT_BREAKER_CAR_PARK_TIMEOUT_S'), 60)
        )
        self.breaker = pybreaker.CircuitBreaker(fail_max=self.fail_max, reset_timeout=self.reset_timeout)
        self.log = logging.LoggerAdapter(logging.getLogger(__name__), extra={'dataset': self.dataset})

        self.api_key = kwargs.get('api_key')
示例#11
0
文件: here.py 项目: xlqian/navitia
    def __init__(self,
                 instance,
                 service_base_url,
                 modes=[],
                 id='here',
                 timeout=10,
                 apiKey=None,
                 max_matrix_points=MAX_MATRIX_POINTS_VALUES,
                 lapse_time_matrix_to_retry=DEFAULT_LAPSE_TIME_MATRIX_TO_RETRY,
                 language="english",
                 feed_publisher=DEFAULT_HERE_FEED_PUBLISHER,
                 **kwargs):
        self.instance = instance
        self.sn_system_id = id
        if not service_base_url:
            raise ValueError('service_url {} is not a valid HERE url'.format(
                service_base_url))
        service_base_url = service_base_url.rstrip('/')
        self.routing_service_url = 'https://{base_url}/routes'.format(
            base_url=service_base_url)
        self.matrix_service_url = 'https://matrix.{base_url}/matrix'.format(
            base_url=service_base_url)
        self.log = logging.LoggerAdapter(
            logging.getLogger(__name__),
            extra={'streetnetwork_id': text_type(id)})
        self.apiKey = apiKey
        self.modes = modes
        self.timeout = timeout
        self.max_matrix_points = self._get_max_matrix_points(max_matrix_points)
        self.lapse_time_matrix_to_retry = self._get_lapse_time_matrix_to_retry(
            lapse_time_matrix_to_retry)
        self.language = self._get_language(language.lower())
        self.breaker = pybreaker.CircuitBreaker(
            fail_max=app.config['CIRCUIT_BREAKER_MAX_HERE_FAIL'],
            reset_timeout=app.config['CIRCUIT_BREAKER_HERE_TIMEOUT_S'],
        )

        self.log.debug(
            'Here, load configuration max_matrix_points={} - timeout={} - lapse_time_matrix_to_retry={} - language={}'
            .format(self.max_matrix_points, self.timeout,
                    self.lapse_time_matrix_to_retry, self.language.value))
        self._feed_publisher = FeedPublisher(
            **feed_publisher) if feed_publisher else None
示例#12
0
 def feed_publisher(self):
     return FeedPublisher(id='mock', name='mock provider')
示例#13
0
 def feed_publisher(self):
     return FeedPublisher(id='mock_bss',
                          name=self.name,
                          license='the death license',
                          url='bob.com')
示例#14
0
 def feed_publisher(self):
     return FeedPublisher(id='mock_car_park',
                          name=self.name,
                          license='license to kill',
                          url='MI.6')