Skip to content

Releases: wingify/vwo-fme-python-sdk

Version 1.16.0

17 Dec 04:05

Choose a tag to compare

Add support for user aliasing (will work after gateway has been setup)

Version 1.15.0

11 Dec 14:25

Choose a tag to compare

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

17 Nov 11:21

Choose a tag to compare

Enhanced Logging capabilities at VWO by sending vwo_sdkDebug event with additional debug properties.

Version 1.13.0

04 Sep 10:33

Choose a tag to compare

  • 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

02 Sep 11:40

Choose a tag to compare

Sends usage statistics to VWO servers automatically during SDK initialization

Version 1.11.0

04 Aug 13:32

Choose a tag to compare

Added support for sending a one-time initialization event to the server to verify correct SDK setup.

Version 1.10.0

02 Jul 12:55

Choose a tag to compare

[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

13 May 16:44

Choose a tag to compare

Added a feature to track and collect usage statistics

Version 1.8.0

22 Apr 07:33

Choose a tag to compare

[1.8.0] - 2025-04-22

Added

  • Added support to add single transport or multiple transport using key transports. 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 transports parameter. 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

18 Apr 05:24

Choose a tag to compare

Added support for default polling intervals to periodically fetch and update settings:

  • If poll_interval is set in options (must be >= 1000 milliseconds), that interval will be used
  • If poll_interval is configured in VWO application settings, that will be used
  • If neither is set, defaults to 10 minute polling interval