From c98ea6d1b31249caa6bb673396839529113293c5 Mon Sep 17 00:00:00 2001 From: Tim Yiu Date: Fri, 1 Sep 2023 10:33:46 -0700 Subject: [PATCH 1/2] fix: Allow creation of multiple experiment client instances based on api key --- src/amplitude_experiment/factory.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/amplitude_experiment/factory.py b/src/amplitude_experiment/factory.py index 6593e73..32a817f 100644 --- a/src/amplitude_experiment/factory.py +++ b/src/amplitude_experiment/factory.py @@ -5,7 +5,6 @@ remote_evaluation_instances = {} local_evaluation_instances = {} -default_instance = '$default_instance' class Experiment: @@ -23,9 +22,9 @@ def initialize_remote(api_key: str, config: RemoteEvaluationConfig = None) -> Re 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] + if remote_evaluation_instances.get(api_key) is None: + remote_evaluation_instances[api_key] = RemoteEvaluationClient(api_key, config) + return remote_evaluation_instances[api_key] @staticmethod def initialize_local(api_key: str, config: LocalEvaluationConfig = None) -> LocalEvaluationClient: @@ -40,6 +39,6 @@ def initialize_local(api_key: str, config: LocalEvaluationConfig = None) -> Loca 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] + if local_evaluation_instances.get(api_key) is None: + local_evaluation_instances[api_key] = LocalEvaluationClient(api_key, config) + return local_evaluation_instances[api_key] From aacc0f077799fb1b352ac99336587fe6e0db42e5 Mon Sep 17 00:00:00 2001 From: Tim Yiu Date: Fri, 1 Sep 2023 11:44:10 -0700 Subject: [PATCH 2/2] comment and description update --- src/amplitude_experiment/factory.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/amplitude_experiment/factory.py b/src/amplitude_experiment/factory.py index 32a817f..841c55c 100644 --- a/src/amplitude_experiment/factory.py +++ b/src/amplitude_experiment/factory.py @@ -8,19 +8,18 @@ class Experiment: - """Provides factory methods for storing singleton instance of Client""" + """Provides factory methods for storing instances 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. + Initializes a remote evaluation client. Parameters: api_key (str): The Amplitude API Key config (RemoteEvaluationConfig): Optional Config Returns: - The remote evaluation client. + A remote evaluation client. """ if remote_evaluation_instances.get(api_key) is None: remote_evaluation_instances[api_key] = RemoteEvaluationClient(api_key, config) @@ -37,7 +36,7 @@ def initialize_local(api_key: str, config: LocalEvaluationConfig = None) -> Loca config (RemoteEvaluationConfig): Optional Config Returns: - The local evaluation client. + A local evaluation client. """ if local_evaluation_instances.get(api_key) is None: local_evaluation_instances[api_key] = LocalEvaluationClient(api_key, config)