All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- added new method
update_settings
to update settings on the vwo client instance.
- Added support for Personalise rules within
Mutually Exclusive Groups
.
- Fix: Check for None values in
user_agent
andip_address
when sending impressions to VWO.
-
First release of VWO Feature Management and Experimentation capabilities
from vwo import init options = { 'sdk_key': '32-alpha-numeric-sdk-key', # SDK Key 'account_id': '123456' # VWO Account ID } vwo_client = init(options) # set user context user_context = {'id': 'unique_user_id'} # returns a flag object get_flag = vwo_client.get_flag('feature_key', user_context) # check if flag is enabled is_enabled = get_flag.is_enabled() # get varible int_var = get_flag.get_variable('int_variable_key', 'default_value') # track event vwo_client.track_event('event_name', user_context, event_properties) # set attribute vwo_client.set_attribute('attribute_key', 'attribute_value', user_context)
-
Storage
from vwo.packages.storage.connector import StorageConnector class UserStorage(StorageConnector): def get(self, key: str, user_id: str): return client_db.get(f"{key}_{user_id}") def set(self, value: dict): key = f"{value.get('featureKey')}_{value.get('userId')}" client_db[key] = { 'rolloutKey': value.get('rolloutKey'), 'rolloutVariationId': value.get('rolloutVariationId'), 'rolloutId': value.get('rolloutId'), 'experimentKey': value.get('experimentKey'), 'experimentVariationId': value.get('experimentVariationId'), 'experimentId': value.get('experimentId'), } return True options = { 'sdk_key': '32-alpha-numeric-sdk-key', # SDK Key 'account_id': '123456', # VWO Account ID 'storage': UserStorage() } vwo_client = init(options)
-
Log messages
options = { 'sdk_key': '32-alpha-numeric-sdk-key', # SDK Key 'account_id': '123456', # VWO Account ID 'logger': { 'level': 'DEBUG', 'prefix': 'VWO-FME-PYTHON-SDK' } } vwo_client = init(options)
-
Polling support
options = {
'sdk_key': '32-alpha-numeric-sdk-key', # SDK Key
'account_id': '123456', # VWO Account ID
'poll_interval': 5000 # in milliseconds
}
vwo_client = init(options)