def __init__(self, project_id, write_key=None, read_key=None, persistence_strategy=None): """ Initializes a KeenClient object. :param project_id: the Keen IO project ID :param write_key: a Keen IO Scoped Key for Writes :param read_key: a Keen IO Scoped Key for Reads :param persistence_strategy: optional, the strategy to use to persist the event """ super(KeenClient, self).__init__() # do some validation self.check_project_id(project_id) # Set up an api client to be used for querying and optionally passed # into a default persistence strategy. self.api = KeenApi(project_id, write_key=write_key, read_key=read_key) if persistence_strategy: # validate the given persistence strategy if not isinstance(persistence_strategy, BasePersistenceStrategy): raise exceptions.InvalidPersistenceStrategyError() if not persistence_strategy: # setup a default persistence strategy persistence_strategy = persistence_strategies \ .DirectPersistenceStrategy(self.api) self.project_id = project_id self.persistence_strategy = persistence_strategy
def __init__(self, project_id, write_key=None, read_key=None, persistence_strategy=None, api_class=KeenApi, get_timeout=305, post_timeout=305, master_key=None, base_url=None): """ Initializes a KeenClient object. :param project_id: the Keen IO project ID :param write_key: a Keen IO Scoped Key for Writes :param read_key: a Keen IO Scoped Key for Reads :param persistence_strategy: optional, the strategy to use to persist the event :param get_timeout: optional, the timeout on GET requests :param post_timeout: optional, the timeout on POST requests :param master_key: a Keen IO Master API Key """ super(KeenClient, self).__init__() # do some validation self.check_project_id(project_id) # Set up an api client to be used for querying and optionally passed # into a default persistence strategy. self.api = api_class(project_id, write_key=write_key, read_key=read_key, get_timeout=get_timeout, post_timeout=post_timeout, master_key=master_key, base_url=base_url) if persistence_strategy: # validate the given persistence strategy if not isinstance(persistence_strategy, BasePersistenceStrategy): raise exceptions.InvalidPersistenceStrategyError() if not persistence_strategy: # setup a default persistence strategy persistence_strategy = persistence_strategies \ .DirectPersistenceStrategy(self.api) self.project_id = project_id self.persistence_strategy = persistence_strategy self.get_timeout = get_timeout self.post_timeout = post_timeout self.saved_queries = saved_queries.SavedQueriesInterface(self.api) self.cached_datasets = cached_datasets.CachedDatasetsInterface( self.api)