Module amplitude_experiment.factory
Expand source code
from .remote.client import RemoteEvaluationClient
from .remote.config import RemoteEvaluationConfig
from .local.client import LocalEvaluationClient
from .local.config import LocalEvaluationConfig
remote_evaluation_instances = {}
local_evaluation_instances = {}
default_instance = '$default_instance'
class Experiment:
"""Provides factory methods for storing singleton instance of Client"""
@staticmethod
def initialize_remote(api_key: str, config: RemoteEvaluationConfig = None) -> RemoteEvaluationClient:
"""
Initializes a singleton Client. This method returns a default singleton instance, subsequent calls to
init will return the initial instance regardless of input.
Parameters:
api_key (str): The Amplitude API Key
config (RemoteEvaluationConfig): Optional Config
Returns:
The remote evaluation client.
"""
if remote_evaluation_instances.get(default_instance) is None:
remote_evaluation_instances[default_instance] = RemoteEvaluationClient(api_key, config)
return remote_evaluation_instances[default_instance]
@staticmethod
def initialize_local(api_key: str, config: LocalEvaluationConfig = None) -> LocalEvaluationClient:
"""
Initialize a local evaluation client. A local evaluation client can evaluate local flags or experiments for a
user without requiring a remote call to the amplitude evaluation server. In order to best leverage local
evaluation, all flags, and experiments being evaluated server side should be configured as local.
Parameters:
api_key (str): The Amplitude API Key
config (RemoteEvaluationConfig): Optional Config
Returns:
The local evaluation client.
"""
if local_evaluation_instances.get(default_instance) is None:
local_evaluation_instances[default_instance] = LocalEvaluationClient(api_key, config)
return local_evaluation_instances[default_instance]
Classes
class Experiment
-
Provides factory methods for storing singleton instance of Client
Expand source code
class Experiment: """Provides factory methods for storing singleton instance of Client""" @staticmethod def initialize_remote(api_key: str, config: RemoteEvaluationConfig = None) -> RemoteEvaluationClient: """ Initializes a singleton Client. This method returns a default singleton instance, subsequent calls to init will return the initial instance regardless of input. Parameters: api_key (str): The Amplitude API Key config (RemoteEvaluationConfig): Optional Config Returns: The remote evaluation client. """ if remote_evaluation_instances.get(default_instance) is None: remote_evaluation_instances[default_instance] = RemoteEvaluationClient(api_key, config) return remote_evaluation_instances[default_instance] @staticmethod def initialize_local(api_key: str, config: LocalEvaluationConfig = None) -> LocalEvaluationClient: """ Initialize a local evaluation client. A local evaluation client can evaluate local flags or experiments for a user without requiring a remote call to the amplitude evaluation server. In order to best leverage local evaluation, all flags, and experiments being evaluated server side should be configured as local. Parameters: api_key (str): The Amplitude API Key config (RemoteEvaluationConfig): Optional Config Returns: The local evaluation client. """ if local_evaluation_instances.get(default_instance) is None: local_evaluation_instances[default_instance] = LocalEvaluationClient(api_key, config) return local_evaluation_instances[default_instance]
Static methods
def initialize_local(api_key: str, config: LocalEvaluationConfig = None) ‑> LocalEvaluationClient
-
Initialize a local evaluation client. A local evaluation client can evaluate local flags or experiments for a user without requiring a remote call to the amplitude evaluation server. In order to best leverage local evaluation, all flags, and experiments being evaluated server side should be configured as local. Parameters: api_key (str): The Amplitude API Key config (RemoteEvaluationConfig): Optional Config
Returns: The local evaluation client.
Expand source code
@staticmethod def initialize_local(api_key: str, config: LocalEvaluationConfig = None) -> LocalEvaluationClient: """ Initialize a local evaluation client. A local evaluation client can evaluate local flags or experiments for a user without requiring a remote call to the amplitude evaluation server. In order to best leverage local evaluation, all flags, and experiments being evaluated server side should be configured as local. Parameters: api_key (str): The Amplitude API Key config (RemoteEvaluationConfig): Optional Config Returns: The local evaluation client. """ if local_evaluation_instances.get(default_instance) is None: local_evaluation_instances[default_instance] = LocalEvaluationClient(api_key, config) return local_evaluation_instances[default_instance]
def initialize_remote(api_key: str, config: RemoteEvaluationConfig = None) ‑> RemoteEvaluationClient
-
Initializes a singleton Client. This method returns a default singleton instance, subsequent calls to init will return the initial instance regardless of input. Parameters: api_key (str): The Amplitude API Key config (RemoteEvaluationConfig): Optional Config
Returns: The remote evaluation client.
Expand source code
@staticmethod def initialize_remote(api_key: str, config: RemoteEvaluationConfig = None) -> RemoteEvaluationClient: """ Initializes a singleton Client. This method returns a default singleton instance, subsequent calls to init will return the initial instance regardless of input. Parameters: api_key (str): The Amplitude API Key config (RemoteEvaluationConfig): Optional Config Returns: The remote evaluation client. """ if remote_evaluation_instances.get(default_instance) is None: remote_evaluation_instances[default_instance] = RemoteEvaluationClient(api_key, config) return remote_evaluation_instances[default_instance]