Releases: configcat/python-sdk
Releases · configcat/python-sdk
v9.0.4
v9.0.3
v9.0.2
- 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
v9.0.0
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 thanstring
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 tomatched_targeting_rule
and thematched_evaluation_rule`` property to
matched_percentage_optionin
EvaluationDetails`. - Throw
ConfigCatClientException
when the SDK key passed toConfigCatClient.get
is in an invalid format (unless the client is set up to use local-only flag override behaviour).
v8.0.1
v8.0.0
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 withconfigcatclient.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
v7.0.0
Added
set_default_user(user)
/clear_default_user()
methods to set / remove a default user object used when there's no user passed toget_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 theget_hooks()
method ofConfigCatClient
.get_value_details()
method to retrieve evaluation details along with the feature flag / setting value. It returns the same details that is passed toon_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 newconfigcatclient.get()
factory method. Thecreate_client*()
methods are deprecated. - In the
create_client*()
methods the following params changed:config_cache_class
toconfig_cache
: A subclass ofConfigCache
object is expected here (not a class).connect_timeout
toconnect_timeout_seconds
(to indicate the unit of measure).read_timeout
toread_timeout_seconds
(to indicate the unit of measure).flag_overrides
expects a newFlagOverrides
object (not an OverrideDataSource object).
ConfigCatClient
'sstop()
method is renamed toclose()
.ConfigCatClient
can be explicitly closed viaclient.close()
andconfigcatclient.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 ofauto_poll
is compared against a cachedfetch_time
, which allows the SDK not necessarily download a newconfig.json
at each application restart. - Fetch logic handles
403
response status and updates cachedfetch_time
in case of304
403
and404
response status.