Skip to content

Releases: statsig-io/python-sdk

v0.16.6 - No longer overwriting global logging class

03 Mar 17:18
Compare
Choose a tag to compare
  • Remove call to logging.setLoggerClass which was overwriting the global logger

v0.16.5 - Prevent reinitialization of Statsig

03 Mar 01:47
fbc9b0b
Compare
Choose a tag to compare

Being defensive about how many times initialize here

v0.16.4 - Fix TypeError on logger message format

07 Feb 23:33
2e7ff1b
Compare
Choose a tag to compare

String formatting was causing issues in celery with django environment. Removed as it was not necessary.

v0.16.3 - Remove python root logger override

07 Feb 23:13
Compare
Choose a tag to compare

No longer overrides the default level of the python root logger.

v0.16.1 - Add additional debugging logs on log_event failures and retries

07 Jan 01:49
1436742
Compare
Choose a tag to compare

v0.16.0 - New API for manual exposure logging + more

22 Dec 19:36
4b48d53
Compare
Choose a tag to compare
  • New StatsigOptions:
    init_timeout - Maximum number of seconds before initialize will timeout
    logging_interval - Number of seconds to wait in between logging each batch of events
  • New API:
check_gate_with_exposure_logging_disabled
get_config_with_exposure_logging_disabled
get_experiment_with_exposure_logging_disabled
get_layer_with_exposure_logging_disabled

manually_log_gate_exposure
manually_log_config_exposure
manually_log_experiment_exposure
manually_log_layer_parameter_exposure
  • Allow passing enums in user fields
  • Print logs limited to print every 2 minutes for the same warning/error
  • Print initialize and syncing progress with timestamps

v0.15.0 - new APIs to remove local overrides

24 Oct 18:21
Compare
Choose a tag to compare

Added a few new APIs to help removing local overrides for better testing experiences:

# If the user_id is None, the override for all users for the gate/config/experiment will be removed 

def remove_gate_override(gate: str, user_id: Optional[str] = None)

def remove_config_override(config: str, user_id: Optional[str] = None)

def remove_experiment_override(experiment: str, user_id: Optional[str] = None)

def remove_all_overrides()

v0.14.1 - Add logic to revive background threads

19 Oct 22:49
Compare
Choose a tag to compare

In some cases, the config sync and logger threads were being killed. v0.14.1 Adds a check that respawns threads that have been killed.

v0.14.0 - Evaluation Details, ID List Threadpooling

17 Oct 22:15
Compare
Choose a tag to compare

Adds EvaluationDetails to exposure events;

  • These will be surfaced on console.statsig.com and can be used to diagnose why certain values were given to a user
  • Values include (Cache, Network, Unrecognized, Uninitialized, Bootstrap, DataAdapter)

Adds Thread Pool for ID List:

  • In resource constrained environment, too many thread calls were leading to issues. To alleviate this, all ID list syncing is now done in a thread pool. Pool size can be configured via StatsigOptions.idlists_thread_limit

v1.13.0 - Adds DataStoreAdapters

03 Oct 17:56
Compare
Choose a tag to compare
  • You can now use Redis to bootstrap Statsig via the RedisDataStore or build your own data store that inherits from the IDataStore class
  • Adds evaluated_keys to ClientInitializeResponse so newer client SDKs can be bootstrapped with safeguards