Skip to content

Releases: statsig-io/python-sdk

v0.9.3 - fix time based operator

26 Apr 04:35
433440a

Choose a tag to compare

fixed "before" and "after" operator for Time based conditions

v0.9.2- remove userID requirement if customID is present

23 Apr 00:06
2b6c4aa

Choose a tag to compare

Now the SDK only requires either a userID or any customID

v0.9.0 - changes to exposure logging on Layers

21 Apr 01:17

Choose a tag to compare

Previously exposures for Layers happen when you call getLayer(), but when you have multiple experiments running in parallel in the same Layer, this could be exposing more users than the actual number of users who were actually exposed to some of the experiments, so with this release we have moved the exposure logic to be happening when Layer.get() method is called, so that a user is only exposed to an experiment when the parameter for that experiment is fetched.

v0.8.2 - Internal improvements, debug error logging

28 Mar 20:22

Choose a tag to compare

Add debug logging information, stringify user object more gracefully, add server session id header, copy user on normalization rather than modifying

v0.8.1 - getLayer API and bug fixes

22 Mar 18:26

Choose a tag to compare

  • added a new API get_layer, which returns a layer object that would return the correct parameter value for the given user within the layer, no matter which experiment the user is allocated to within the layer;
  • fixed a bug where time was not added to events;
  • fixed a bug where /get_config fallback was not correctly called in the event that the SDK does not know how to evaluate a rule locally.

v0.7.0 - improved ID list

10 Mar 00:31

Choose a tag to compare

Improved the ID list sync'ing logic so that it's using a new endpoint and can scale better with larger lists

v0.6.0 - Adds bootstrap_values and rules_updated_callback

04 Mar 01:16

Choose a tag to compare

Added two parameters to StatsigOptions:

bootstrap_values: str = null

a string that represents all rules for all feature gates, dynamic configs and experiments. It can be provided to bootstrap the Statsig server SDK at initialization in case your server runs into network issue or Statsig server is down temporarily.

rules_updated_callback: typing.Callable = None,

a callback function that's called whenever we have an update for the rules; it's called with a logical timestamp and a JSON string (used as is for bootstrapValues mentioned above). Note that as of right now, this will be called from a background thread that the SDK uses to update config values.

v0.5.3 - Fixes and ID list removal bug

17 Feb 00:39

Choose a tag to compare

Fixes and issue where the ID list background thread updater threw an exception when trying to remove IDs from a list when the ID already did not exist

v0.5.2 - Fixes the localMode and override APIs

12 Jan 00:40
45aaafc

Choose a tag to compare

The shutdown API had an issue where the background threads were waiting to be joined in shutdown in localMode per #4

The override APIs were improperly preferring global to user level settings, so if you had a user level override and a global override, you would always get the global override. This made it impossible to override a gate to true for all but one user

v0.5.0 - Adds testing utility methods and support for id_lists

17 Dec 19:22

Choose a tag to compare

Testing utility functions

override_gate(gate:str, value:bool, user_id:str = None) - overrides a gate to the given value. If a user_id is not provided, all gate checks will return this value. If a specific user_id is passed, the override only applies to that given user_id

override_config and override_experiment function similarly, but for DynamicConfigs and Experiments

StatsigOptions.local_mode- local mode disables network access, so the SDK will only return default values and never hit statsig servers. Useful for unit testing

evaluate_all(user) - given a user, evaluates all gates/configs/experiments in the project and returns a dictionary with the results. Useful for reproducing an issue and determining which values a given user has

Example output:

"feature_gates":{ "always_on_gate":{ "value": True, "rule_id":"6N6Z8ODekNYZ7F8gFdoLP5" }, "on_for_statsig_email":{ "value": True, "rule_id":"7w9rbTSffLT89pxqpyhuqK" } }, "dynamic_configs":{ "test_config":{ "value":{ "boolean": False, "number":7, "string":"statsig" }, "rule_id":"1kNmlB23wylPFZi1M0Divl" }, "sample_experiment":{ "value":{ "experiment_param":"test" }, "rule_id":"2RamGujUou6h2bVNQWhtNZ" } } 

ID Lists

Adds python SDK support for ID lists: https://docs.statsig.com/segments/add-id-list