kameleoon-client-python 3.15.0__tar.gz → 3.16.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.15.0 → kameleoon-client-python-3.16.0}/PKG-INFO +1 -1
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/configuration/custom_data_info.py +8 -1
- kameleoon-client-python-3.16.0/kameleoon/data/custom_data.py +90 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/manager/visitor.py +4 -2
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/manager/visitor_manager.py +8 -3
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/mapping_identifier.py +2 -1
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/managers/remote_data/remote_visitor_data.py +1 -1
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/middleware.py +0 -1
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/sdk_version.py +1 -1
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/targeting_manager.py +1 -1
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon_client_python.egg-info/PKG-INFO +1 -1
- kameleoon-client-python-3.15.0/kameleoon/data/custom_data.py +0 -58
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/MANIFEST.in +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/README.md +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/client_readiness/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/client_readiness/async_readiness.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/client_readiness/threading_readiness.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/configuration/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/configuration/data_file.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/configuration/experiment.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/configuration/feature_flag.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/configuration/me_group.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/configuration/rule.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/configuration/rule_type.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/configuration/settings.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/configuration/variable.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/configuration/variation.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/configuration/variation_by_exposition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/browser.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/cbscores.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/conversion.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/cookie.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/data.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/device.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/geolocation.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/kcs_heat.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/manager/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/manager/assigned_variation.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/manager/forced_experiment_variation.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/manager/forced_feature_variation.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/manager/forced_variation.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/manager/page_view_visit.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/manager/visitor_slot.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/operating_system.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/page_view.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/personalization.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/targeted_segment.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/unique_identifier.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/user_agent.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/visitor_visits.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/defaults.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/exceptions.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/helpers/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/helpers/domain.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/helpers/functions.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/helpers/hasher.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/helpers/logger.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/helpers/multi_threading.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/helpers/nonce.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/helpers/repeat_timer.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/helpers/scheduler.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/helpers/string_utils.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/helpers/visitor_code.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/hybrid/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/hybrid/hybrid_manager.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/hybrid/hybrid_manager_impl.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/kameleoon_client.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/kameleoon_client_config.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/kameleoon_client_factory.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/logging/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/logging/kameleoon_logger.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/logging/log_level.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/logging/logger.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/managers/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/managers/asyncexec/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/managers/asyncexec/async_executor.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/managers/data/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/managers/data/data_manager.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/managers/evaluation/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/managers/evaluation/evaluated_experiment.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/managers/remote_data/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/managers/remote_data/remote_data_manager.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/managers/tracking/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/managers/tracking/tracking_builder.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/managers/tracking/tracking_manager.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/managers/tracking/visitor_tracking_registry.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/managers/warehouse/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/managers/warehouse/warehouse_manager.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/access_token_source.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/access_token_source_factory.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/activity_event.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/cookie/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/cookie/cookie_manager.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/net_provider.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/net_provider_impl.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/network_manager.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/network_manager_factory.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/network_manager_factory_impl.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/network_manager_impl.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/query_builder.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/query_encodable.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/sendable.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/service_initialize_context.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/service_initialize_context_impl.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/services/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/services/automation_service.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/services/automation_service_impl.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/services/configuration_service.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/services/configuration_service_impl.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/services/data_service.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/services/data_service_impl.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/services/service.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/services/service_impl.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/uri_helper.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/url_provider.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/real_time/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/real_time/real_time_configuration_service.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/real_time/real_time_event.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/storage/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/storage/cache.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/storage/cache_factory.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/storage/cache_factory_impl.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/storage/cache_impl.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/browser_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/constants.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/conversion_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/cookie_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/custom_datum.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/device_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/exclusive_experiment_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/geolocation_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/kcs_heat_range_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/number_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/operating_system_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/page_title_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/page_url_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/page_view_number_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/previous_page_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/sdk_language_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/segment_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/string_value_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/target_experiment_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/target_feature_flag_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/target_personalization_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/targeting_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/time_elapsed_since_visit_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/unknown_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/visit_number_today_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/visit_number_total_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/visitor_code_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/conditions/visitor_new_return_condition.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/models.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/tree_builder.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/tree_condition_factory.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/types/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/types/remote_visitor_data_filter.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/types/variable.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/types/variation.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon_client_python.egg-info/SOURCES.txt +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon_client_python.egg-info/dependency_links.txt +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon_client_python.egg-info/requires.txt +14 -14
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon_client_python.egg-info/top_level.txt +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/setup.cfg +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/setup.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/tests/integration/proj/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/tests/integration/proj/kameleoon_app/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/tests/integration/proj/kameleoon_app/admin.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/tests/integration/proj/kameleoon_app/apps.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/tests/integration/proj/kameleoon_app/migrations/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/tests/integration/proj/kameleoon_app/models.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/tests/integration/proj/kameleoon_app/tests.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/tests/integration/proj/kameleoon_app/views.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/tests/integration/proj/manage.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/tests/integration/proj/proj/__init__.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/tests/integration/proj/proj/asgi.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/tests/integration/proj/proj/settings.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/tests/integration/proj/proj/urls.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/tests/integration/proj/proj/wsgi.py +0 -0
- {kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/tests/resources/config.yml +0 -0
|
@@ -18,6 +18,7 @@ class CustomDataInfo:
|
|
|
18
18
|
self.__local_only = set()
|
|
19
19
|
self.__visitor_scope = set()
|
|
20
20
|
self.__custom_data_index_by_id = {}
|
|
21
|
+
self.__custom_data_index_by_name = {}
|
|
21
22
|
if custom_data is not None:
|
|
22
23
|
for data in custom_data:
|
|
23
24
|
index = data.get("index")
|
|
@@ -29,6 +30,8 @@ class CustomDataInfo:
|
|
|
29
30
|
self.__visitor_scope.add(index)
|
|
30
31
|
if (id_ := data.get("id")) is not None:
|
|
31
32
|
self.__custom_data_index_by_id[id_] = index
|
|
33
|
+
if (name := data.get("name")) is not None:
|
|
34
|
+
self.__custom_data_index_by_name[name] = index
|
|
32
35
|
if data.get("isMappingIdentifier"):
|
|
33
36
|
if bool(self.__mapping_identifier_index is not None):
|
|
34
37
|
KameleoonLogger.warning(
|
|
@@ -55,5 +58,9 @@ class CustomDataInfo:
|
|
|
55
58
|
return self.__mapping_identifier_index
|
|
56
59
|
|
|
57
60
|
def get_custom_data_index_by_id(self, custom_data_id: int) -> Optional[int]:
|
|
58
|
-
"""Get corresponding custom data
|
|
61
|
+
"""Get corresponding custom data index by custom data id"""
|
|
59
62
|
return self.__custom_data_index_by_id.get(custom_data_id)
|
|
63
|
+
|
|
64
|
+
def get_custom_data_index_by_name(self, custom_data_name: str) -> Optional[int]:
|
|
65
|
+
"""Get corresponding custom data index by custom data name"""
|
|
66
|
+
return self.__custom_data_index_by_name.get(custom_data_name)
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"""Custom data"""
|
|
2
|
+
|
|
3
|
+
import json
|
|
4
|
+
from typing import Optional, Tuple, Union
|
|
5
|
+
from kameleoon.data.data import Data, DataType
|
|
6
|
+
from kameleoon.network.sendable import DuplicationUnsafeSendableBase
|
|
7
|
+
from kameleoon.network.query_builder import QueryBuilder, QueryParam, QueryParams
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class CustomData(Data, DuplicationUnsafeSendableBase):
|
|
11
|
+
"""Custom data"""
|
|
12
|
+
|
|
13
|
+
EVENT_TYPE = "customData"
|
|
14
|
+
|
|
15
|
+
def __init__(self, index_or_name: Union[int, str], *args: str, overwrite=True) -> None:
|
|
16
|
+
"""
|
|
17
|
+
:param index_or_name: Index or Name of the custom data. This field is mandatory.
|
|
18
|
+
:type index_or_name: Union[int, str]
|
|
19
|
+
:param args: Values of the custom data to be stored. This field is mandatory.
|
|
20
|
+
:type args: *str
|
|
21
|
+
:param overwrite: Flag to explicitly control how the values are stored and how they appear in reports.
|
|
22
|
+
This field is optional, `True` by default.
|
|
23
|
+
:type overwrite: bool
|
|
24
|
+
"""
|
|
25
|
+
# pylint: disable=invalid-name,redefined-builtin
|
|
26
|
+
super().__init__()
|
|
27
|
+
# pylint: disable=W0511
|
|
28
|
+
if isinstance(index_or_name, int):
|
|
29
|
+
self.__index = index_or_name
|
|
30
|
+
self._name = None
|
|
31
|
+
else:
|
|
32
|
+
self.__index = -1
|
|
33
|
+
self._name = index_or_name
|
|
34
|
+
self.__values = args
|
|
35
|
+
self.__overwrite = overwrite
|
|
36
|
+
|
|
37
|
+
def _named_to_indexed(self, index: int) -> "CustomData":
|
|
38
|
+
"""Makes an indexed Custom Data instance based on the current instance"""
|
|
39
|
+
custom_data = CustomData(index, *self.__values, overwrite=self.__overwrite)
|
|
40
|
+
custom_data._name = self._name
|
|
41
|
+
return custom_data
|
|
42
|
+
|
|
43
|
+
@property
|
|
44
|
+
def id(self) -> int: # pylint: disable=C0103
|
|
45
|
+
"""
|
|
46
|
+
Deprecated. Please use `index` instead.
|
|
47
|
+
|
|
48
|
+
Returns index
|
|
49
|
+
"""
|
|
50
|
+
return self.__index
|
|
51
|
+
|
|
52
|
+
@property
|
|
53
|
+
def index(self) -> int:
|
|
54
|
+
"""Returns index"""
|
|
55
|
+
return self.__index
|
|
56
|
+
|
|
57
|
+
@property
|
|
58
|
+
def name(self) -> Optional[str]:
|
|
59
|
+
"""Returns name"""
|
|
60
|
+
return self._name
|
|
61
|
+
|
|
62
|
+
@property
|
|
63
|
+
def values(self) -> Tuple[str, ...]:
|
|
64
|
+
"""Returns values"""
|
|
65
|
+
return self.__values
|
|
66
|
+
|
|
67
|
+
@property
|
|
68
|
+
def overwrite(self) -> bool:
|
|
69
|
+
"""Returns overwrite"""
|
|
70
|
+
return self.__overwrite
|
|
71
|
+
|
|
72
|
+
@property
|
|
73
|
+
def data_type(self) -> DataType:
|
|
74
|
+
return DataType.CUSTOM_DATA
|
|
75
|
+
|
|
76
|
+
def _add_query_params(self, query_builder: QueryBuilder) -> None:
|
|
77
|
+
str_values = json.dumps({v: 1 for v in self.__values}, separators=(",", ":"))
|
|
78
|
+
query_builder.extend(
|
|
79
|
+
QueryParam(QueryParams.EVENT_TYPE, self.EVENT_TYPE, False),
|
|
80
|
+
QueryParam(QueryParams.INDEX, str(self.id), False),
|
|
81
|
+
QueryParam(QueryParams.VALUES_COUNT_MAP, str_values),
|
|
82
|
+
QueryParam(QueryParams.OVERWRITE, "true" if self.__overwrite else "false", False),
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
def __str__(self):
|
|
86
|
+
return (
|
|
87
|
+
"CustomData{"
|
|
88
|
+
f"index:{self.__index},name:'{self._name}',values:{self.__values},overwrite:{self.__overwrite}"
|
|
89
|
+
"}"
|
|
90
|
+
)
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/manager/visitor.py
RENAMED
|
@@ -227,6 +227,8 @@ class Visitor: # pylint: disable=R0904
|
|
|
227
227
|
KameleoonLogger.debug('CALL: Visitor.add_data(args: %s, overwrite: %s)', args, overwrite)
|
|
228
228
|
with self._data.lock:
|
|
229
229
|
for data in args:
|
|
230
|
+
if data is None:
|
|
231
|
+
continue
|
|
230
232
|
data_type = type(data)
|
|
231
233
|
data_adder = self.DATA_ADDERS.get(data_type)
|
|
232
234
|
if data_adder:
|
|
@@ -424,8 +426,8 @@ class Visitor: # pylint: disable=R0904
|
|
|
424
426
|
custom_data = cast(CustomData, context.data)
|
|
425
427
|
if self._data.custom_data_dict is None:
|
|
426
428
|
self._data.custom_data_dict = {}
|
|
427
|
-
if context.overwrite or custom_data.
|
|
428
|
-
self._data.custom_data_dict[custom_data.
|
|
429
|
+
if context.overwrite or custom_data.index not in self._data.custom_data_dict:
|
|
430
|
+
self._data.custom_data_dict[custom_data.index] = custom_data
|
|
429
431
|
|
|
430
432
|
def _add_page_view(self, context: DataAddingContext) -> None:
|
|
431
433
|
page_view = cast(PageView, context.data)
|
|
@@ -87,15 +87,20 @@ class VisitorManager:
|
|
|
87
87
|
|
|
88
88
|
def __process_custom_data(
|
|
89
89
|
self, visitor_code: str, visitor: Visitor, custom_data_info: CustomDataInfo, custom_data: CustomData
|
|
90
|
-
) -> CustomData:
|
|
90
|
+
) -> Optional[CustomData]:
|
|
91
91
|
"""Processes custom data, potentially modifying or mapping it based on certain conditions."""
|
|
92
|
+
if custom_data.name is not None:
|
|
93
|
+
cd_index = custom_data_info.get_custom_data_index_by_name(custom_data.name)
|
|
94
|
+
if cd_index is None:
|
|
95
|
+
return None
|
|
96
|
+
custom_data = custom_data._named_to_indexed(cd_index)
|
|
92
97
|
# We shouldn't send custom data with local only type
|
|
93
|
-
if custom_data_info.is_local_only(custom_data.
|
|
98
|
+
if custom_data_info.is_local_only(custom_data.index):
|
|
94
99
|
custom_data.mark_as_sent()
|
|
95
100
|
# If mappingIdentifier is passed, we should link anonymous visitor with real unique userId.
|
|
96
101
|
# After authorization, customer must be able to continue work with userId, but hash for variation
|
|
97
102
|
# should be calculated based on anonymous visitor code, that's why set MappingIdentifier to visitor.
|
|
98
|
-
if custom_data_info.is_mapping_identifier(custom_data.
|
|
103
|
+
if custom_data_info.is_mapping_identifier(custom_data.index) and custom_data.values and custom_data.values[0]:
|
|
99
104
|
visitor.mapping_identifier = visitor_code
|
|
100
105
|
user_id = custom_data.values[0]
|
|
101
106
|
if visitor_code != user_id:
|
|
@@ -6,7 +6,8 @@ from kameleoon.network.query_builder import QueryBuilder, QueryParam, QueryParam
|
|
|
6
6
|
class MappingIdentifier(CustomData):
|
|
7
7
|
"""Mapping identifier"""
|
|
8
8
|
def __init__(self, custom_data: CustomData) -> None:
|
|
9
|
-
super().__init__(custom_data.
|
|
9
|
+
super().__init__(custom_data.index, *custom_data.values, overwrite=custom_data.overwrite)
|
|
10
|
+
self._name = custom_data.name
|
|
10
11
|
|
|
11
12
|
@property
|
|
12
13
|
def unsent(self) -> bool:
|
|
@@ -103,7 +103,7 @@ class RemoteVisitorData:
|
|
|
103
103
|
"""Marks data as sent based on the provided `custom_data_info`."""
|
|
104
104
|
if self.__custom_data_dict:
|
|
105
105
|
for data in self.__custom_data_dict.values():
|
|
106
|
-
if custom_data_info is None or not custom_data_info.is_visitor_scope(data.
|
|
106
|
+
if custom_data_info is None or not custom_data_info.is_visitor_scope(data.index):
|
|
107
107
|
data.mark_as_sent()
|
|
108
108
|
if self.__experiments:
|
|
109
109
|
for experiment in self.__experiments.values():
|
|
@@ -32,7 +32,6 @@ class KameleoonWSGIMiddleware:
|
|
|
32
32
|
environ["HTTP_COOKIE"] = f"{VISITOR_CODE_COOKIE}={visitor_code}"
|
|
33
33
|
|
|
34
34
|
def _custom_start_response(status, headers, exc_info=None):
|
|
35
|
-
# pylint: disable=W0212
|
|
36
35
|
self._client._cookie_manager.update(visitor_code, self._client._is_consent_given(visitor_code), cookies)
|
|
37
36
|
headers.append(("Set-Cookie", cookies.output(header="")))
|
|
38
37
|
return start_response(status, headers, exc_info)
|
|
@@ -53,7 +53,7 @@ class TargetingManager:
|
|
|
53
53
|
visitor_code: str,
|
|
54
54
|
campaign_id: Optional[int],
|
|
55
55
|
):
|
|
56
|
-
# pylint: disable=E1101
|
|
56
|
+
# pylint: disable=E1101
|
|
57
57
|
KameleoonLogger.debug(
|
|
58
58
|
"CALL: TargetingManager.__get_condition_data(condition_type_literal: %s, visitor, visitor_code: %s, "
|
|
59
59
|
"campaign_id: %s)", condition_type_literal, visitor_code, campaign_id
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"""Custom data"""
|
|
2
|
-
|
|
3
|
-
import json
|
|
4
|
-
from typing import Tuple
|
|
5
|
-
from kameleoon.data.data import Data, DataType
|
|
6
|
-
from kameleoon.network.sendable import DuplicationUnsafeSendableBase
|
|
7
|
-
from kameleoon.network.query_builder import QueryBuilder, QueryParam, QueryParams
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class CustomData(Data, DuplicationUnsafeSendableBase):
|
|
11
|
-
"""Custom data"""
|
|
12
|
-
|
|
13
|
-
EVENT_TYPE = "customData"
|
|
14
|
-
|
|
15
|
-
def __init__(self, id: int, *args: str) -> None:
|
|
16
|
-
"""
|
|
17
|
-
:param id: Index / ID of the custom data to be stored. This field is mandatory.
|
|
18
|
-
:type id: int
|
|
19
|
-
:param `*args`: Values of the custom data to be stored. This field is optional.
|
|
20
|
-
:type `*args`: str
|
|
21
|
-
|
|
22
|
-
Example:
|
|
23
|
-
|
|
24
|
-
.. code-block:: python3
|
|
25
|
-
|
|
26
|
-
kameleoon_client.add_data(visitor_code, CustomData(123, "some-value"))
|
|
27
|
-
"""
|
|
28
|
-
# pylint: disable=invalid-name,redefined-builtin
|
|
29
|
-
super().__init__()
|
|
30
|
-
# pylint: disable=W0511
|
|
31
|
-
self.__id = id
|
|
32
|
-
self.__values = args
|
|
33
|
-
|
|
34
|
-
@property
|
|
35
|
-
def id(self) -> int: # pylint: disable=C0103
|
|
36
|
-
"""Returns ID"""
|
|
37
|
-
return self.__id
|
|
38
|
-
|
|
39
|
-
@property
|
|
40
|
-
def values(self) -> Tuple[str, ...]:
|
|
41
|
-
"""Stored values."""
|
|
42
|
-
return self.__values
|
|
43
|
-
|
|
44
|
-
@property
|
|
45
|
-
def data_type(self) -> DataType:
|
|
46
|
-
return DataType.CUSTOM_DATA
|
|
47
|
-
|
|
48
|
-
def _add_query_params(self, query_builder: QueryBuilder) -> None:
|
|
49
|
-
str_values = json.dumps({v: 1 for v in self.__values}, separators=(",", ":"))
|
|
50
|
-
query_builder.extend(
|
|
51
|
-
QueryParam(QueryParams.EVENT_TYPE, self.EVENT_TYPE, False),
|
|
52
|
-
QueryParam(QueryParams.INDEX, str(self.id), False),
|
|
53
|
-
QueryParam(QueryParams.VALUES_COUNT_MAP, str_values),
|
|
54
|
-
QueryParam(QueryParams.OVERWRITE, "true", False),
|
|
55
|
-
)
|
|
56
|
-
|
|
57
|
-
def __str__(self):
|
|
58
|
-
return f"CustomData{{id:{self.__id},values:{self.__values}}}"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/configuration/rule.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/cbscores.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/conversion.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/geolocation.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/kcs_heat.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/manager/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/operating_system.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/page_view.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/personalization.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/targeted_segment.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/user_agent.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/data/visitor_visits.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/helpers/__init__.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/helpers/domain.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/helpers/functions.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/helpers/hasher.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/helpers/logger.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/helpers/nonce.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/helpers/repeat_timer.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/helpers/scheduler.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/helpers/string_utils.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/helpers/visitor_code.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/hybrid/__init__.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/hybrid/hybrid_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/kameleoon_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/logging/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/logging/log_level.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/logging/logger.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/managers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/net_provider.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/query_builder.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/sendable.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/uri_helper.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/network/url_provider.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/real_time/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/storage/__init__.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/storage/cache.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/storage/cache_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/storage/cache_impl.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/targeting/models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/types/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/types/variable.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/kameleoon/types/variation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -4,24 +4,24 @@ sseclient-py<1.9.0,>=1.7.0
|
|
|
4
4
|
aiohttp<4.0.0,>=3.8.0
|
|
5
5
|
|
|
6
6
|
[test]
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
wheel==0.36.2
|
|
8
|
+
pytest-pythonpath==0.7.3
|
|
9
|
+
pytest-django==4.4.0
|
|
9
10
|
types-python-dateutil==2.8.2
|
|
10
|
-
aiohttp<4.0.0,>=3.8.0
|
|
11
|
-
pyyaml<6.1.0,>=5.4.0
|
|
12
11
|
Werkzeug==2.0.1
|
|
13
|
-
freezegun==1.1.0
|
|
14
|
-
pytest-cov==2.12.1
|
|
15
|
-
types-requests==2.25.0
|
|
16
|
-
pytest-django==4.4.0
|
|
17
12
|
pytest-asyncio==0.21.*
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
Django==3.2.4
|
|
13
|
+
types-requests==2.25.0
|
|
14
|
+
pyyaml<6.1.0,>=5.4.0
|
|
15
|
+
twine==3.4.1
|
|
16
|
+
pytest-cov==2.12.1
|
|
23
17
|
mypy==0.991
|
|
18
|
+
aiohttp<4.0.0,>=3.8.0
|
|
19
|
+
flake8==4.0.1
|
|
20
|
+
aioresponses==0.7.*
|
|
24
21
|
requests<3.0.0,>=2.25
|
|
25
22
|
sseclient-py<1.9.0,>=1.7.0
|
|
26
|
-
|
|
23
|
+
freezegun==1.1.0
|
|
27
24
|
pytest-ordering==0.6
|
|
25
|
+
pylint==2.12.*
|
|
26
|
+
Django==3.2.4
|
|
27
|
+
types-PyYAML==5.4.3
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/tests/integration/proj/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/tests/integration/proj/manage.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.15.0 → kameleoon-client-python-3.16.0}/tests/resources/config.yml
RENAMED
|
File without changes
|