Skip to content

Releases: configcat/python-sdk

v9.0.4

09 Jul 13:15
82aac93
Compare
Choose a tag to compare

Fixed

  • Initial config JSON load when auto poll enabled with results from cache.

v9.0.3

08 Mar 09:40
3c2d2bb
Compare
Choose a tag to compare
  • Fix wrong JSON format handling during the evaluation process
  • Add more Config V2 test cases
  • Evaluation log fixes.

v9.0.2

07 Feb 19:32
a698e36
Compare
Choose a tag to compare
  • Evaluation log fixes.
  • Improve the message of log event 1103.
  • Don't swallow, but log exceptions when config JSON reading fails so users know what went wrong with the parsing.
  • LocalFileDataSource Unicode fix on Windows.
  • User attribute value as string list support.

v9.0.1

22 Dec 12:22
f348cac
Compare
Choose a tag to compare
  • Fix get_key_and_value() according to conifg_v6.json changes.

v9.0.0

30 Nov 09:56
1aed3cb
Compare
Choose a tag to compare

New features and improvements:

  • Add support for the new Config JSON v6 format: update the config model and implement new features in setting evaluation logic.
  • Overhaul setting evaluation-related logging and make it consistent across SDKs.
  • Performance improvements to setting evaluation when info level logging is turned off.
  • Python 3.12 support

Breaking changes:

  • The User's custom dictionary also allows attribute values other than string values.
  • The config JSON v5 format is no longer accepted by flag overrides. If you use this feature, you will need to convert your override JSON file(s) to the v6 format. You can do this using the config-json convert v5-to-v6 command of the ConfigCat CLI tool.
  • Rename the matched_evaluation_percentage_rule property to matched_targeting_rule and the matched_evaluation_rule`` property to matched_percentage_optioninEvaluationDetails`.
  • Throw ConfigCatClientException when the SDK key passed to ConfigCatClient.get is in an invalid format (unless the client is set up to use local-only flag override behaviour).

v8.0.1

17 Aug 11:23
bcfd918
Compare
Choose a tag to compare

For Python version >= 3.7 increase minimum version of requests dependency to 2.31.0.

v8.0.0

03 Jul 11:33
500d1cb
Compare
Choose a tag to compare

Please note that this version has several breaking changes, so you may need to adjust your code when upgrading, especially if you're using deprecated APIs or a custom cache implementation. You can find the detailed list of breaking changes below.

  • Removed unsupported Python versions: 2.6, 3.3, 3.4.
  • Added Python 3.11 support.
  • Removed deprecated init functions: configcatclient.create_client, configcatclient.create_client_with_auto_poll, configcatclient.create_client_with_lazy_load, configcatclient.create_client_with_manual_poll. Create the ConfigCat Client as a Singleton object with configcatclient.get() instead.
  • Updated logging:
    • Include event IDs in log messages to make identification of log events easier.
    • Revise log messages and make them consistent across the ConfigCat SDKs.
  • Revise caching of downloaded config data:
    • Use a standardized config cache key generation algorithm and cache payload format to allow shared caches to be used by SDKs of different platforms.
  • Updated semver dependency >=2.10.2.

v7.0.1

20 Mar 10:31
0dd0712
Compare
Choose a tag to compare
  • Add 3.7, 3.8, 3.9, 3.10 to supported python versions in setup.py.
  • Don't start polling in offline mode when init ConfigService.
  • Use empty etag for empty ConfigEntry object.

v7.0.0

03 Jan 12:57
2ce41da
Compare
Choose a tag to compare

Added

  • set_default_user(user) / clear_default_user() methods to set / remove a default user object used when there's no user passed to get_value() / get_value_details() / get_all_values() / get_all_variation_ids() methods.
  • set_offline() / set_online() methods to indicate whether the SDK is allowed to make HTTP calls or not. In 'offline' mode the SDK works from the cache only.
  • on_client_ready() / on_config_changed() / on_flag_evaluated() / on_error() hooks. Subscription is possible on client initialization options and with the get_hooks() method of ConfigCatClient.
  • get_value_details() method to retrieve evaluation details along with the feature flag / setting value. It returns the same details that is passed to on_flag_evaluated on each evaluation.
  • get_all_value_details() method to retrieve evaluation details along with all feature flags/ setting values.

Changed

  • Client initialization options were moved to a ConfigCatOptions object that can be passed to the new configcatclient.get() factory method. The create_client*() methods are deprecated.
  • In the create_client*() methods the following params changed:
    • config_cache_class to config_cache: A subclass of ConfigCache object is expected here (not a class).
    • connect_timeout to connect_timeout_seconds (to indicate the unit of measure).
    • read_timeout to read_timeout_seconds (to indicate the unit of measure).
    • flag_overrides expects a new FlagOverrides object (not an OverrideDataSource object).
  • ConfigCatClient's stop() method is renamed to close().
  • ConfigCatClient can be explicitly closed via client.close() and configcatclient.close_all() methods.
  • force_refresh now returns with a result object that indicates whether the refresh succeeded or not.
  • The TTL of lazy_load and interval of auto_poll is compared against a cached fetch_time, which allows the SDK not necessarily download a new config.json at each application restart.
  • Fetch logic handles 403 response status and updates cached fetch_time in case of 304 403 and 404 response status.

v6.0.3

27 Jun 20:27
cd03631
Compare
Choose a tag to compare
  • Fix the autopoll policy identifier in the SDK's useragent.