kameleoon-client-python 3.9.0__tar.gz → 3.10.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/PKG-INFO +1 -1
- kameleoon-client-python-3.10.0/kameleoon/data/cbscores.py +66 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/data.py +1 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/manager/visitor.py +14 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/kameleoon_client.py +343 -101
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/managers/remote_data/remote_visitor_data.py +26 -5
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/query_builder.py +3 -2
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/services/service_impl.py +24 -6
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/url_provider.py +17 -16
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/sdk_version.py +1 -1
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/types/remote_visitor_data_filter.py +16 -7
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon_client_python.egg-info/PKG-INFO +1 -1
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon_client_python.egg-info/SOURCES.txt +1 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/MANIFEST.in +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/README.md +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/client_readiness/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/client_readiness/async_readiness.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/client_readiness/threading_readiness.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/configuration/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/configuration/custom_data_info.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/configuration/data_file.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/configuration/experiment.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/configuration/feature_flag.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/configuration/me_group.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/configuration/rule.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/configuration/rule_type.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/configuration/settings.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/configuration/variable.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/configuration/variation.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/configuration/variation_by_exposition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/browser.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/conversion.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/cookie.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/custom_data.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/device.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/geolocation.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/kcs_heat.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/manager/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/manager/assigned_variation.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/manager/forced_experiment_variation.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/manager/forced_feature_variation.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/manager/forced_variation.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/manager/page_view_visit.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/manager/visitor_manager.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/manager/visitor_slot.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/mapping_identifier.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/operating_system.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/page_view.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/unique_identifier.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/user_agent.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/visitor_visits.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/defaults.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/exceptions.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/helpers/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/helpers/domain.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/helpers/functions.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/helpers/hasher.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/helpers/logger.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/helpers/multi_threading.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/helpers/nonce.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/helpers/repeat_timer.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/helpers/scheduler.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/helpers/string_utils.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/helpers/visitor_code.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/hybrid/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/hybrid/hybrid_manager.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/hybrid/hybrid_manager_impl.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/kameleoon_client_config.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/kameleoon_client_factory.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/logging/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/logging/kameleoon_logger.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/logging/log_level.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/logging/logger.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/managers/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/managers/asyncexec/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/managers/asyncexec/async_executor.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/managers/data/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/managers/data/data_manager.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/managers/evaluation/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/managers/evaluation/evaluated_experiment.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/managers/remote_data/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/managers/remote_data/remote_data_manager.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/managers/tracking/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/managers/tracking/tracking_builder.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/managers/tracking/tracking_manager.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/managers/tracking/visitor_tracking_registry.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/managers/warehouse/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/managers/warehouse/warehouse_manager.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/middleware.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/access_token_source.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/access_token_source_factory.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/activity_event.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/cookie/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/cookie/cookie_manager.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/net_provider.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/net_provider_impl.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/network_manager.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/network_manager_factory.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/network_manager_factory_impl.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/network_manager_impl.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/query_encodable.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/sendable.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/service_initialize_context.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/service_initialize_context_impl.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/services/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/services/automation_service.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/services/automation_service_impl.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/services/configuration_service.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/services/configuration_service_impl.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/services/data_service.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/services/data_service_impl.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/services/service.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/network/uri_helper.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/real_time/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/real_time/real_time_configuration_service.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/real_time/real_time_event.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/storage/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/storage/cache.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/storage/cache_factory.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/storage/cache_factory_impl.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/storage/cache_impl.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/browser_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/constants.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/conversion_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/cookie_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/custom_datum.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/device_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/exclusive_feature_flag_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/geolocation_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/kcs_heat_range_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/number_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/operating_system_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/page_title_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/page_url_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/page_view_number_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/previous_page_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/sdk_language_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/segment_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/string_value_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/target_feature_flag_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/targeting_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/time_elapsed_since_visit_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/unknown_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/visit_number_today_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/visit_number_total_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/visitor_code_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/conditions/visitor_new_return_condition.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/models.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/targeting_manager.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/tree_builder.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/targeting/tree_condition_factory.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/types/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/types/variable.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/types/variation.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon_client_python.egg-info/dependency_links.txt +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon_client_python.egg-info/requires.txt +16 -16
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon_client_python.egg-info/top_level.txt +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/setup.cfg +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/setup.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/tests/integration/proj/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/tests/integration/proj/kameleoon_app/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/tests/integration/proj/kameleoon_app/admin.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/tests/integration/proj/kameleoon_app/apps.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/tests/integration/proj/kameleoon_app/migrations/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/tests/integration/proj/kameleoon_app/models.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/tests/integration/proj/kameleoon_app/tests.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/tests/integration/proj/kameleoon_app/views.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/tests/integration/proj/manage.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/tests/integration/proj/proj/__init__.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/tests/integration/proj/proj/asgi.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/tests/integration/proj/proj/settings.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/tests/integration/proj/proj/urls.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/tests/integration/proj/proj/wsgi.py +0 -0
- {kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/tests/resources/config.yml +0 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"""CBScores"""
|
|
2
|
+
|
|
3
|
+
from typing import Dict, Iterable, List
|
|
4
|
+
from kameleoon.helpers.string_utils import StringUtils
|
|
5
|
+
from kameleoon.data import DataType
|
|
6
|
+
from kameleoon.data.data import BaseData
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
# pylint: disable=R0903
|
|
10
|
+
class ScoredVarId:
|
|
11
|
+
"""ScoredVarId"""
|
|
12
|
+
def __init__(self, variation_id: int, score: float) -> None:
|
|
13
|
+
self.variation_id = variation_id
|
|
14
|
+
self.score = score
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class VarGroup:
|
|
18
|
+
"""VarGroup"""
|
|
19
|
+
def __init__(self, ids: List[int]) -> None:
|
|
20
|
+
ids.sort()
|
|
21
|
+
self.__ids = ids
|
|
22
|
+
|
|
23
|
+
@property
|
|
24
|
+
def ids(self) -> List[int]:
|
|
25
|
+
"""Returns the IDs"""
|
|
26
|
+
return self.__ids
|
|
27
|
+
|
|
28
|
+
def __str__(self) -> str:
|
|
29
|
+
return f"VarGroup{{ids:{self.__ids}}}"
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class CBScores(BaseData):
|
|
33
|
+
"""CBScores"""
|
|
34
|
+
|
|
35
|
+
def __init__(self, cbs_map: Dict[int, Iterable[ScoredVarId]]) -> None:
|
|
36
|
+
super().__init__()
|
|
37
|
+
self.__values = {cbs_key: self.__extract_var_ids(cbs_value) for cbs_key, cbs_value in cbs_map.items()}
|
|
38
|
+
|
|
39
|
+
@property
|
|
40
|
+
def values(self) -> Dict[int, List[VarGroup]]:
|
|
41
|
+
"""
|
|
42
|
+
Returns the CB variation groups stored by experiment.
|
|
43
|
+
|
|
44
|
+
keys = experiment IDs / values = list of variation IDs ordered descending
|
|
45
|
+
by score (there may be several variation ids with same score)
|
|
46
|
+
"""
|
|
47
|
+
return self.__values
|
|
48
|
+
|
|
49
|
+
@property
|
|
50
|
+
def data_type(self) -> DataType:
|
|
51
|
+
return DataType.CBS
|
|
52
|
+
|
|
53
|
+
@staticmethod
|
|
54
|
+
def __extract_var_ids(scores: Iterable[ScoredVarId]) -> List[VarGroup]:
|
|
55
|
+
grouped: Dict[float, List[int]] = {}
|
|
56
|
+
for score in scores:
|
|
57
|
+
glist = grouped.get(score.score)
|
|
58
|
+
if glist:
|
|
59
|
+
glist.append(score.variation_id)
|
|
60
|
+
else:
|
|
61
|
+
grouped[score.score] = [score.variation_id]
|
|
62
|
+
return [VarGroup(grouped[score]) for score in sorted(grouped, reverse=True)]
|
|
63
|
+
|
|
64
|
+
def __str__(self) -> str:
|
|
65
|
+
values = StringUtils.object_to_string(self.__values)
|
|
66
|
+
return f"CBScores{{values:{values}}}"
|
{kameleoon-client-python-3.9.0 → kameleoon-client-python-3.10.0}/kameleoon/data/manager/visitor.py
RENAMED
|
@@ -5,6 +5,7 @@ from typing import Any, Callable, Optional, Dict, List, Iterator, Iterable, cast
|
|
|
5
5
|
from kameleoon.data.visitor_visits import VisitorVisits
|
|
6
6
|
from kameleoon.data.data import Data
|
|
7
7
|
from kameleoon.data.browser import Browser
|
|
8
|
+
from kameleoon.data.cbscores import CBScores
|
|
8
9
|
from kameleoon.data.conversion import Conversion
|
|
9
10
|
from kameleoon.data.cookie import Cookie
|
|
10
11
|
from kameleoon.data.custom_data import CustomData
|
|
@@ -172,6 +173,13 @@ class Visitor: # pylint: disable=R0904
|
|
|
172
173
|
KameleoonLogger.debug('CALL/RETURN: Visitor.kcs_heat -> (kcs_heat: %s)', kcs_heat)
|
|
173
174
|
return kcs_heat
|
|
174
175
|
|
|
176
|
+
@property
|
|
177
|
+
def cbscores(self) -> Optional[CBScores]:
|
|
178
|
+
"""Returns the CBS data associated with this Visitor."""
|
|
179
|
+
cbs = self._data.cbscores
|
|
180
|
+
KameleoonLogger.debug('CALL/RETURN: Visitor.cbscores -> (cbs: %s)', cbs)
|
|
181
|
+
return cbs
|
|
182
|
+
|
|
175
183
|
@property
|
|
176
184
|
def visitor_visits(self) -> Optional[VisitorVisits]:
|
|
177
185
|
"""Returns the visitor visits data associated with this Visitor."""
|
|
@@ -261,6 +269,7 @@ class Visitor: # pylint: disable=R0904
|
|
|
261
269
|
self.forced_variations: Optional[Dict[int, ForcedExperimentVariation]] = None
|
|
262
270
|
self.simulated_variations: Optional[Dict[str, ForcedFeatureVariation]] = None
|
|
263
271
|
self.kcs_heat: Optional[KcsHeat] = None
|
|
272
|
+
self.cbscores: Optional[CBScores] = None
|
|
264
273
|
self.visitor_visits: Optional[VisitorVisits] = None
|
|
265
274
|
self.mapping_identifier: Optional[str] = None
|
|
266
275
|
self.legal_consent = False
|
|
@@ -403,6 +412,10 @@ class Visitor: # pylint: disable=R0904
|
|
|
403
412
|
def _set_kcs_heat(self, context: DataAddingContext) -> None:
|
|
404
413
|
self._data.kcs_heat = cast(KcsHeat, context.data)
|
|
405
414
|
|
|
415
|
+
def _set_cbscores(self, context: DataAddingContext) -> None:
|
|
416
|
+
if context.overwrite or self._data.cbscores is None:
|
|
417
|
+
self._data.cbscores = cast(CBScores, context.data)
|
|
418
|
+
|
|
406
419
|
def _set_visitor_visits(self, context: DataAddingContext) -> None:
|
|
407
420
|
self._data.visitor_visits = cast(VisitorVisits, context.data)
|
|
408
421
|
|
|
@@ -425,6 +438,7 @@ class Visitor: # pylint: disable=R0904
|
|
|
425
438
|
PageViewVisit: _add_page_view_visit,
|
|
426
439
|
Conversion: _add_conversion,
|
|
427
440
|
KcsHeat: _set_kcs_heat,
|
|
441
|
+
CBScores: _set_cbscores,
|
|
428
442
|
VisitorVisits: _set_visitor_visits,
|
|
429
443
|
AssignedVariation: _add_variation,
|
|
430
444
|
ForcedFeatureVariation: _add_forced_feature_variation,
|