Skip to content

Commit 2563c7b

Browse files
update: add cmab_service parameter to Optimizely constructor for CMAB support
1 parent 88b4f1e commit 2563c7b

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

optimizely/optimizely.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
from .optimizely_config import OptimizelyConfig, OptimizelyConfigService
4545
from .optimizely_user_context import OptimizelyUserContext, UserAttributes
4646
from .project_config import ProjectConfig
47+
from .cmab.cmab_service import DefaultCmabService
4748

4849
if TYPE_CHECKING:
4950
# prevent circular dependency by skipping import at runtime
@@ -69,7 +70,8 @@ def __init__(
6970
datafile_access_token: Optional[str] = None,
7071
default_decide_options: Optional[list[str]] = None,
7172
event_processor_options: Optional[dict[str, Any]] = None,
72-
settings: Optional[OptimizelySdkSettings] = None
73+
settings: Optional[OptimizelySdkSettings] = None,
74+
cmab_service: Optional[DefaultCmabService] = None
7375
) -> None:
7476
""" Optimizely init method for managing Custom projects.
7577
@@ -98,6 +100,7 @@ def __init__(
98100
default_decide_options: Optional list of decide options used with the decide APIs.
99101
event_processor_options: Optional dict of options to be passed to the default batch event processor.
100102
settings: Optional instance of OptimizelySdkSettings for sdk configuration.
103+
cmab_service: Optional instance of DefaultCmabService for Contextual Multi-Armed Bandit (CMAB) support.
101104
"""
102105
self.logger_name = '.'.join([__name__, self.__class__.__name__])
103106
self.is_valid = True
@@ -169,7 +172,10 @@ def __init__(
169172
self._setup_odp(self.config_manager.get_sdk_key())
170173

171174
self.event_builder = event_builder.EventBuilder()
172-
self.decision_service = decision_service.DecisionService(self.logger, user_profile_service)
175+
if cmab_service:
176+
cmab_service.logger = self.logger
177+
self.cmab_service = cmab_service
178+
self.decision_service = decision_service.DecisionService(self.logger, user_profile_service, cmab_service)
173179
self.user_profile_service = user_profile_service
174180

175181
def _validate_instantiation_options(self) -> None:

0 commit comments

Comments
 (0)