Releases: wingify/vwo-fme-python-sdk
Version 1.16.0
Add support for user aliasing (will work after gateway has been setup)
Version 1.15.0
Added batch event processing to optimize network calls during GetFlag operations. Multiple impression events are now collected and sent in a single batch request
Version 1.14.0
Enhanced Logging capabilities at VWO by sending vwo_sdkDebug event with additional debug properties.
Version 1.13.0
- Post-segmentation variables are now automatically included as unregistered attributes, enabling post-segmentation without requiring manual setup.
- Added support for built-in targeting conditions, including browser version, OS version, and IP address, with advanced operator support (greaterThan, lessThan, regex).
Version 1.12.0
Sends usage statistics to VWO servers automatically during SDK initialization
Version 1.11.0
Added support for sending a one-time initialization event to the server to verify correct SDK setup.
Version 1.10.0
[1.10.0] - 2025-07-02
Added
- Added exponential backoff retry mechanism for failed network requests. This improves reliability by automatically retrying failed requests with increasing delays between attempts.
Version 1.9.1
Added a feature to track and collect usage statistics
Version 1.8.0
[1.8.0] - 2025-04-22
Added
-
Added support to add single
transportor multiple transport using keytransports. The transport parameter allows you to implement custom logging behavior by providing your own logging functions.from vwo import init class CustomTransport: def __init__(self, config): self.level = config.get('level', "ERROR") self.config = config def log(self, level, message): # your custom implementation here options = { 'sdk_key': '32-alpha-numeric-sdk-key', # SDK Key 'account_id': '123456', # VWO Account ID 'logger' { 'transport': CustomTransport({'level': 'INFO'}) } } vwo_client = init(options)
-
For multiple transports you can use the
transportsparameter. For example:from vwo import init class CustomTransportForInfo: def __init__(self, config): self.level = config.get('level', "INFO") self.config = config def log(self, level, message): # your custom implementation here class CustomTransportForError: def __init__(self, config): self.level = config.get('level', "ERROR") self.config = config def log(self, level, message): # your custom implementation here options = { 'sdk_key': '32-alpha-numeric-sdk-key', # SDK Key 'account_id': '123456', # VWO Account ID 'logger' { 'transports': [ CustomTransportForInfo({'level': 'INFO'}), CustomTransportForError({'level': 'ERROR'}) ] } } vwo_client = init(options)
Version 1.7.0
Added support for default polling intervals to periodically fetch and update settings:
- If
poll_intervalis set in options (must be >= 1000 milliseconds), that interval will be used - If
poll_intervalis configured in VWO application settings, that will be used - If neither is set, defaults to 10 minute polling interval