NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2843 most downloaded on PyPI
ConfigCat SDK for Python. https://configcat.com
Last release 1 months ago
03 Sep 2026
Release timing varies
gaps range from 3 weeks to 1.7 years
Nearly every release is documented
notes for 22 of 22 stable releases
15 versions withdrawn
withdrawn after publishing
8 years old
37 releases · first in 2018
Security dependency updates (requests 2.33.0)
Security dependency updates (requests 2.33.0)
Drop unsupported python versions ( 2.7 , 3.5 , 3.6 , 3.7 )
2.7, 3.5, 3.6, 3.7)requests 2.32.4)enum-compat, qualname, pytz)Full Changelog: v9.0.4...v10.0.0
One column per quarter.
Initial config JSON load when auto poll enabled with results from cache.
Fix wrong JSON format handling during the evaluation process
Improve the message of log event 1103.
LocalFileDataSource Unicode fix on Windows.Fix get_key_and_value() according to conifg_v6.json changes.
get_key_and_value() according to conifg_v6.json changes.Add support for the new Config JSON v6 format: update the config model and implement new features in setting evaluation logic.
New features and improvements:
Breaking changes:
custom dictionary also allows attribute values other than string values.config-json convert v5-to-v6 command of the ConfigCat CLI tool.matched_evaluation_percentage_rule property to matched_targeting_rule and the matched_evaluation_rule`` property to matched_percentage_optioninEvaluationDetails`.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).For Python version >= 3.7 increase minimum version of requests dependency to 2.31.0 .
For Python version >= 3.7 increase minimum version of requests dependency to 2.31.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…
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.
2.6, 3.3, 3.4.3.11 support.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.semver dependency >=2.10.2.Add 3.7, 3.8, 3.9, 3.10 to supported python versions in setup.py .
setup.py.ConfigService.ConfigEntry object.The create_client*() methods are deprecated.
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.ConfigCatOptions object that can be passed to the new configcatclient.get() factory method. The create_client*() methods are deprecated.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.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.403 response status and updates cached fetch_time in case of 304 403 and 404 response status.Fix the autopoll policy identifier in the SDK's useragent.
Fix for cache key generation #32
Fix json.load exception handling in LocalFileDataSource.
json.load exception handling in LocalFileDataSource.The evaluation logs are staying on info level but they are now combined into a single log entry.
connect_timeout and read_timeout initialization parameters were added to be able to configure HTTP timeout parameters.get_all_values() function was added that evaluates all flags & settings in a dictionary.flag_overrides parameter to support the reading of flags & settings from a file or a dictionary.Addressing global data handling and processing trends via Data Governance feature. Customers can control the geographic location where their config JS
Addressing global data handling and processing trends via Data Governance feature. Customers can control the geographic location where their config JSONs get published to. See the docs.
We are introducing a new DataGovernance initialization parameter. Set this parameter to be in sync with the Data Governance preference on the Dashboard.
Breaking change:
Added variation id related functions to support integration with analytical tools: ` get_variation_id() get_all_variation_ids() get_key_and_value() `
get_variation_id()
get_all_variation_ids()
get_key_and_value()
Optimizing amount of config fetches in lazy loading cache policy
Optimizing amount of config fetches in lazy loading cache policy
Fix config fetching in lazy loading cache policy
Fix config fetching in lazy loading cache policy
Switched from enum32 dependency to enum-comp to be compatible with Python 3.6.
Switched from enum32 dependency to enum-comp to be compatible with Python 3.6.
Fix multiprocessing OpenSSL issue
Moving from config_v3.json to config_v4.json.
Moving from config_v3.json to config_v4.json.
Supporting sensitive comparators in targeting rules.
Supporting sensitive comparators in targeting rules.
Nothing published for this version
Nothing published for this version
Semantic version operators Number operators Logging improvements Proxy support
Semantic version operators Number operators Logging improvements Proxy support
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →