kameleoon-client-python 3.5.0__tar.gz → 3.6.1__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.5.0 → kameleoon-client-python-3.6.1}/PKG-INFO +1 -1
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/manager/page_view_visit.py +9 -2
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/manager/visitor.py +6 -1
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/helpers/domain.py +6 -3
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/managers/remote_data/remote_data_manager.py +13 -13
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/managers/remote_data/remote_visitor_data.py +8 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/sdk_version.py +1 -1
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/page_title_condition.py +3 -5
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/page_url_condition.py +3 -7
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/types/remote_visitor_data_filter.py +8 -1
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon_client_python.egg-info/PKG-INFO +1 -1
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/MANIFEST.in +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/README.md +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/client_readiness/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/client_readiness/async_readiness.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/client_readiness/threading_readiness.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/configuration/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/configuration/custom_data_info.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/configuration/data_file.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/configuration/feature_flag.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/configuration/rule.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/configuration/rule_type.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/configuration/settings.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/configuration/variable.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/configuration/variation.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/configuration/variation_by_exposition.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/browser.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/conversion.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/cookie.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/custom_data.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/data.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/device.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/geolocation.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/kcs_heat.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/manager/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/manager/assigned_variation.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/manager/visitor_manager.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/manager/visitor_slot.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/mapping_identifier.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/operating_system.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/page_view.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/unique_identifier.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/user_agent.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/visitor_visits.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/defaults.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/exceptions.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/helpers/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/helpers/functions.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/helpers/logger.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/helpers/multi_threading.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/helpers/nonce.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/helpers/repeat_timer.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/helpers/scheduler.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/helpers/string_utils.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/helpers/visitor_code.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/hybrid/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/hybrid/hybrid_manager.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/hybrid/hybrid_manager_impl.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/kameleoon_client.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/kameleoon_client_config.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/kameleoon_client_factory.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/logging/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/logging/kameleoon_logger.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/logging/log_level.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/logging/logger.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/managers/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/managers/asyncexec/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/managers/asyncexec/async_executor.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/managers/data/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/managers/data/data_manager.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/managers/remote_data/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/managers/tracking/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/managers/tracking/tracking_builder.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/managers/tracking/tracking_manager.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/managers/tracking/visitor_tracking_registry.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/managers/warehouse/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/managers/warehouse/warehouse_manager.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/middleware.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/access_token_source.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/access_token_source_factory.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/activity_event.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/cookie/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/cookie/cookie_manager.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/net_provider.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/net_provider_impl.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/network_manager.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/network_manager_factory.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/network_manager_factory_impl.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/network_manager_impl.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/query_builder.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/query_encodable.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/sendable.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/service_initialize_context.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/service_initialize_context_impl.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/services/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/services/automation_service.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/services/automation_service_impl.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/services/configuration_service.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/services/configuration_service_impl.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/services/data_service.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/services/data_service_impl.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/services/service.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/services/service_impl.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/uri_helper.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/url_provider.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/real_time/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/real_time/real_time_configuration_service.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/real_time/real_time_event.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/storage/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/storage/cache.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/storage/cache_factory.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/storage/cache_factory_impl.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/storage/cache_impl.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/browser_condition.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/constants.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/conversion_condition.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/cookie_condition.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/custom_datum.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/device_condition.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/exclusive_feature_flag_condition.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/geolocation_condition.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/kcs_heat_range_condition.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/number_condition.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/operating_system_condition.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/page_view_number_condition.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/previous_page_condition.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/sdk_language_condition.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/segment_condition.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/string_value_condition.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/target_feature_flag_condition.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/targeting_condition.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/time_elapsed_since_visit_condition.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/unknown_condition.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/visit_number_today_condition.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/visit_number_total_condition.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/visitor_code_condition.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/conditions/visitor_new_return_condition.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/models.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/targeting_manager.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/tree_builder.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/tree_condition_factory.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/types/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/types/variable.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/types/variation.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon_client_python.egg-info/SOURCES.txt +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon_client_python.egg-info/dependency_links.txt +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon_client_python.egg-info/requires.txt +14 -14
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon_client_python.egg-info/top_level.txt +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/setup.cfg +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/setup.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/tests/integration/proj/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/tests/integration/proj/kameleoon_app/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/tests/integration/proj/kameleoon_app/admin.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/tests/integration/proj/kameleoon_app/apps.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/tests/integration/proj/kameleoon_app/migrations/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/tests/integration/proj/kameleoon_app/models.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/tests/integration/proj/kameleoon_app/tests.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/tests/integration/proj/kameleoon_app/views.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/tests/integration/proj/manage.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/tests/integration/proj/proj/__init__.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/tests/integration/proj/proj/asgi.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/tests/integration/proj/proj/settings.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/tests/integration/proj/proj/urls.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/tests/integration/proj/proj/wsgi.py +0 -0
- {kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/tests/resources/config.yml +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"""Page view visit"""
|
|
2
|
+
|
|
2
3
|
import time
|
|
3
4
|
from typing import Optional
|
|
4
5
|
from kameleoon.data import DataType
|
|
@@ -8,6 +9,7 @@ from kameleoon.data.page_view import PageView
|
|
|
8
9
|
|
|
9
10
|
class PageViewVisit(BaseData):
|
|
10
11
|
"""Page view visit"""
|
|
12
|
+
|
|
11
13
|
def __init__(self, page_view: PageView, count=1, last_timestamp: Optional[int] = None) -> None:
|
|
12
14
|
super().__init__()
|
|
13
15
|
self.page_view = page_view
|
|
@@ -18,6 +20,7 @@ class PageViewVisit(BaseData):
|
|
|
18
20
|
"""Overwrites the current PageView with a new PageView and increments the visit count."""
|
|
19
21
|
self.page_view = new_page_view
|
|
20
22
|
self.count += 1
|
|
23
|
+
self.last_timestamp = int(time.time() * 1000)
|
|
21
24
|
|
|
22
25
|
def merge(self, page_view_visit) -> None:
|
|
23
26
|
"""Merges the visit data from another PageViewVisit instance into this one."""
|
|
@@ -33,8 +36,12 @@ class PageViewVisit(BaseData):
|
|
|
33
36
|
return DataType.PAGE_VIEW_VISIT
|
|
34
37
|
|
|
35
38
|
def __eq__(self, other: object) -> bool:
|
|
36
|
-
return
|
|
37
|
-
|
|
39
|
+
return (
|
|
40
|
+
isinstance(other, PageViewVisit)
|
|
41
|
+
and (other.page_view == self.page_view)
|
|
42
|
+
and (other.count == self.count)
|
|
43
|
+
and (other.last_timestamp == self.last_timestamp)
|
|
44
|
+
)
|
|
38
45
|
|
|
39
46
|
def __str__(self):
|
|
40
47
|
return (
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/manager/visitor.py
RENAMED
|
@@ -174,7 +174,12 @@ class Visitor:
|
|
|
174
174
|
@mapping_identifier.setter
|
|
175
175
|
def mapping_identifier(self, value: str):
|
|
176
176
|
"""Sets the mapping identifier for this Visitor."""
|
|
177
|
-
self._data.mapping_identifier
|
|
177
|
+
if self._data.mapping_identifier:
|
|
178
|
+
return
|
|
179
|
+
with self._data.lock:
|
|
180
|
+
if self._data.mapping_identifier:
|
|
181
|
+
return
|
|
182
|
+
self._data.mapping_identifier = value
|
|
178
183
|
KameleoonLogger.debug("CALL/RETURN: Visitor.mapping_identifier <- (mapping_identifier: %s)", value)
|
|
179
184
|
|
|
180
185
|
@property
|
|
@@ -9,6 +9,7 @@ REGEX_DOMAIN = (
|
|
|
9
9
|
r"^(\.?(([a-zA-Z\d][a-zA-Z\d-]*[a-zA-Z\d])|[a-zA-Z\d]))"
|
|
10
10
|
r"(\.(([a-zA-Z\d][a-zA-Z\d-]*[a-zA-Z\d])|[a-zA-Z\d])){1,126}$"
|
|
11
11
|
)
|
|
12
|
+
LOCALHOST = "localhost"
|
|
12
13
|
|
|
13
14
|
|
|
14
15
|
def validate_top_level_domain(top_level_domain: str) -> str:
|
|
@@ -35,8 +36,10 @@ def validate_top_level_domain(top_level_domain: str) -> str:
|
|
|
35
36
|
protocol, top_level_domain)
|
|
36
37
|
break
|
|
37
38
|
|
|
38
|
-
if not re.match(REGEX_DOMAIN, top_level_domain):
|
|
39
|
-
KameleoonLogger.error(
|
|
40
|
-
|
|
39
|
+
if not re.match(REGEX_DOMAIN, top_level_domain) and top_level_domain != LOCALHOST:
|
|
40
|
+
KameleoonLogger.error(
|
|
41
|
+
f"The top-level domain '{top_level_domain}' is invalid. The value has been set as provided, but it does "
|
|
42
|
+
f"not meet the required format for proper SDK functionality. Please check the domain for correctness.")
|
|
43
|
+
return top_level_domain
|
|
41
44
|
|
|
42
45
|
return top_level_domain
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"""Remote data"""
|
|
2
2
|
from typing import Optional, Any, List
|
|
3
|
-
from kameleoon.configuration.custom_data_info import CustomDataInfo
|
|
4
3
|
from kameleoon.data import Data
|
|
5
|
-
from kameleoon.data.data import BaseData
|
|
6
4
|
from kameleoon.data.manager.visitor_manager import VisitorManager
|
|
7
5
|
from kameleoon.logging.kameleoon_logger import KameleoonLogger
|
|
8
6
|
from kameleoon.managers.data.data_manager import DataManager
|
|
@@ -53,33 +51,35 @@ class RemoteDataManager:
|
|
|
53
51
|
data_filter = RemoteVisitorDataFilter()
|
|
54
52
|
service: DataService = self._network_manager.get_service(DataService)
|
|
55
53
|
response = await service.get_remote_visitor_data(visitor_code, data_filter, is_unique_identifier, timeout)
|
|
56
|
-
visitor_data = self.__handle_remote_visitor_data_response(response, visitor_code, add_data)
|
|
54
|
+
visitor_data = self.__handle_remote_visitor_data_response(response, visitor_code, add_data, data_filter)
|
|
57
55
|
KameleoonLogger.debug(
|
|
58
56
|
"CALL: RemoteDataManager.get_visitor_data(visitor_code: %s, add_data: %s, data_filter: %s, timeout: %s) "
|
|
59
57
|
"-> (visitor_data: %s)", visitor_code, add_data, data_filter, timeout, visitor_data)
|
|
60
58
|
return visitor_data
|
|
61
59
|
|
|
62
60
|
def __handle_remote_visitor_data_response(
|
|
63
|
-
self, response: Response, visitor_code: str, add_data: bool
|
|
61
|
+
self, response: Response, visitor_code: str, add_data: bool, data_filter: RemoteVisitorDataFilter
|
|
64
62
|
) -> List[Data]:
|
|
65
63
|
if response.content is None:
|
|
66
64
|
return []
|
|
67
65
|
custom_data_info = self._data_manager.data_file.custom_data_info
|
|
68
|
-
|
|
66
|
+
remote_visitor_data = RemoteDataManager.__parse_remote_visitor_data(response.content)
|
|
67
|
+
remote_visitor_data.mark_data_as_sent(custom_data_info)
|
|
68
|
+
data_to_add = remote_visitor_data.collect_data_to_add()
|
|
69
69
|
if add_data and data_to_add:
|
|
70
70
|
# Cannot use `VisitorManager.add_data` because it could use remote visitor data for mapping.
|
|
71
71
|
visitor = self._visitor_manager.get_or_create_visitor(visitor_code)
|
|
72
72
|
visitor.add_data(*data_to_add, overwrite=False)
|
|
73
|
-
|
|
73
|
+
if data_filter.visitor_code and remote_visitor_data.visitor_code:
|
|
74
|
+
# We apply visitor code from the latest visit fetched from Data API
|
|
75
|
+
visitor = self._visitor_manager.get_or_create_visitor(visitor_code)
|
|
76
|
+
visitor.mapping_identifier = remote_visitor_data.visitor_code
|
|
77
|
+
return remote_visitor_data.collect_data_to_return()
|
|
74
78
|
|
|
75
79
|
@staticmethod
|
|
76
|
-
def __parse_remote_visitor_data(
|
|
77
|
-
custom_data_info: CustomDataInfo, raw: Any
|
|
78
|
-
) -> tuple[List[BaseData], List[Data]]:
|
|
80
|
+
def __parse_remote_visitor_data(raw: Any) -> RemoteVisitorData:
|
|
79
81
|
try:
|
|
80
|
-
|
|
81
|
-
remote_visitor_data.mark_data_as_sent(custom_data_info)
|
|
82
|
-
return remote_visitor_data.collect_data_to_add(), remote_visitor_data.collect_data_to_return()
|
|
82
|
+
return RemoteVisitorData(raw)
|
|
83
83
|
except Exception as ex: # pylint: disable=W0703
|
|
84
84
|
KameleoonLogger.error("Parsing of remote visitor data failed: %s", ex)
|
|
85
|
-
return
|
|
85
|
+
return RemoteVisitorData({})
|
|
@@ -38,6 +38,7 @@ class RemoteVisitorData:
|
|
|
38
38
|
self.__experiments: Optional[Dict[int, AssignedVariation]] = None
|
|
39
39
|
self.__conversions: Optional[List[Conversion]] = None
|
|
40
40
|
self.__previous_visitor_visits: Optional[VisitorVisits] = None
|
|
41
|
+
self.__visitor_code: Optional[str] = None
|
|
41
42
|
current_visit = json.get("currentVisit")
|
|
42
43
|
if current_visit is not None:
|
|
43
44
|
self.__parse_visit(current_visit)
|
|
@@ -100,7 +101,14 @@ class RemoteVisitorData:
|
|
|
100
101
|
for conversion in self.__conversions:
|
|
101
102
|
conversion.mark_as_sent()
|
|
102
103
|
|
|
104
|
+
@property
|
|
105
|
+
def visitor_code(self) -> Optional[str]:
|
|
106
|
+
"""Returns the `visitorCode` from the most recent visit"""
|
|
107
|
+
return self.__visitor_code
|
|
108
|
+
|
|
103
109
|
def __parse_visit(self, json_visit: Dict[str, Any]) -> None:
|
|
110
|
+
if (self.__visitor_code is None) and isinstance(visitor_code := json_visit.get("visitorCode"), str):
|
|
111
|
+
self.__visitor_code = visitor_code
|
|
104
112
|
custom_data_events = json_visit.get("customDataEvents")
|
|
105
113
|
if custom_data_events:
|
|
106
114
|
self.__parse_custom_data(custom_data_events)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
""" condition"""
|
|
2
|
+
|
|
2
3
|
from typing import Any, Union, Dict
|
|
3
4
|
from kameleoon.data.manager.page_view_visit import PageViewVisit
|
|
4
5
|
from kameleoon.targeting.conditions.string_value_condition import StringValueCondition
|
|
@@ -14,8 +15,5 @@ class PageTitleCondition(StringValueCondition):
|
|
|
14
15
|
return isinstance(data, dict) and self.__check(data)
|
|
15
16
|
|
|
16
17
|
def __check(self, page_view_visits: Dict[str, PageViewVisit]) -> bool:
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
visit.page_view.title)
|
|
20
|
-
for visit in page_view_visits.values()
|
|
21
|
-
)
|
|
18
|
+
latest = max(page_view_visits.values(), key=lambda visit: visit.last_timestamp, default=None)
|
|
19
|
+
return latest is not None and latest.page_view.title is not None and self._check(latest.page_view.title)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
""" condition"""
|
|
2
|
+
|
|
2
3
|
from typing import Any, Union, Dict
|
|
3
4
|
from kameleoon.data.manager.page_view_visit import PageViewVisit
|
|
4
|
-
from kameleoon.targeting.conditions.constants import TargetingOperator
|
|
5
5
|
from kameleoon.targeting.conditions.string_value_condition import StringValueCondition
|
|
6
6
|
|
|
7
7
|
|
|
@@ -15,9 +15,5 @@ class PageUrlCondition(StringValueCondition):
|
|
|
15
15
|
return isinstance(data, dict) and self.__check(data)
|
|
16
16
|
|
|
17
17
|
def __check(self, page_view_visits: Dict[str, PageViewVisit]) -> bool:
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
return any(
|
|
21
|
-
isinstance(visit, PageViewVisit) and self._check(visit.page_view.url)
|
|
22
|
-
for visit in page_view_visits.values()
|
|
23
|
-
)
|
|
18
|
+
latest = max(page_view_visits.values(), key=lambda visit: visit.last_timestamp, default=None)
|
|
19
|
+
return latest is not None and self._check(latest.page_view.url)
|
|
@@ -18,6 +18,7 @@ class RemoteVisitorDataFilter:
|
|
|
18
18
|
conversions=False,
|
|
19
19
|
experiments=False,
|
|
20
20
|
kcs=False,
|
|
21
|
+
visitor_code=True,
|
|
21
22
|
) -> None:
|
|
22
23
|
self._previous_visit_amount = previous_visit_amount
|
|
23
24
|
self._current_visit = current_visit
|
|
@@ -30,6 +31,7 @@ class RemoteVisitorDataFilter:
|
|
|
30
31
|
self._conversions = conversions
|
|
31
32
|
self._experiments = experiments
|
|
32
33
|
self._kcs = kcs
|
|
34
|
+
self._visitor_code = visitor_code
|
|
33
35
|
|
|
34
36
|
@property
|
|
35
37
|
def previous_visit_amount(self) -> int:
|
|
@@ -86,10 +88,15 @@ class RemoteVisitorDataFilter:
|
|
|
86
88
|
"""True if KCS heat data will be retrieved"""
|
|
87
89
|
return self._kcs
|
|
88
90
|
|
|
91
|
+
@property
|
|
92
|
+
def visitor_code(self) -> bool:
|
|
93
|
+
"""True if the `visitorCode` from the most recent visit will be retrieved and used for the current visit"""
|
|
94
|
+
return self._visitor_code
|
|
95
|
+
|
|
89
96
|
def __str__(self):
|
|
90
97
|
return (f"RemoteVisitorDataFilter{{previous_visit_amount:{self._previous_visit_amount},"
|
|
91
98
|
f"current_visit:{self._current_visit},custom_data:{self._custom_data},"
|
|
92
99
|
f"page_views:{self._page_views}, geolocation:{self._geolocation},"
|
|
93
100
|
f"device:{self._device},browser:{self._browser},"
|
|
94
101
|
f"operating_system:{self._operating_system},conversions:{self._conversions},"
|
|
95
|
-
f"experiments:{self._experiments},kcs:{self._kcs}}}")
|
|
102
|
+
f"experiments:{self._experiments},kcs:{self._kcs},visitor_code:{self._visitor_code}}}")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/configuration/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/configuration/data_file.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/configuration/rule.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/configuration/rule_type.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/configuration/settings.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/configuration/variable.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/configuration/variation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/conversion.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/custom_data.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/geolocation.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/manager/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/mapping_identifier.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/operating_system.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/unique_identifier.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/user_agent.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/data/visitor_visits.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/helpers/__init__.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/helpers/functions.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/helpers/multi_threading.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/helpers/repeat_timer.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/helpers/scheduler.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/helpers/string_utils.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/helpers/visitor_code.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/hybrid/__init__.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/hybrid/hybrid_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/kameleoon_client.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/kameleoon_client_config.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/logging/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/logging/log_level.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/managers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/managers/data/__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
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/activity_event.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/cookie/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/net_provider.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/network_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/query_builder.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/query_encodable.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/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.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/uri_helper.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/network/url_provider.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/real_time/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/storage/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/storage/cache_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/storage/cache_impl.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/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
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/models.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/kameleoon/targeting/tree_builder.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/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
|
-
freezegun==1.1.0
|
|
8
|
-
pytest-ordering==0.6
|
|
9
|
-
pytest-django==4.4.0
|
|
10
|
-
requests<3.0.0,>=2.25
|
|
11
7
|
Django==3.2.4
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
mypy==0.991
|
|
15
|
-
flake8==4.0.1
|
|
8
|
+
types-PyYAML==5.4.3
|
|
9
|
+
wheel==0.36.2
|
|
16
10
|
pyyaml<6.1.0,>=5.4.0
|
|
11
|
+
freezegun==1.1.0
|
|
17
12
|
pytest-cov==2.12.1
|
|
18
|
-
wheel==0.36.2
|
|
19
|
-
types-PyYAML==5.4.3
|
|
20
13
|
aiohttp<4.0.0,>=3.8.0
|
|
21
|
-
|
|
22
|
-
pytest-pythonpath==0.7.3
|
|
23
|
-
types-python-dateutil==2.8.2
|
|
14
|
+
aioresponses==0.7.*
|
|
24
15
|
twine==3.4.1
|
|
16
|
+
flake8==4.0.1
|
|
17
|
+
pytest-ordering==0.6
|
|
25
18
|
sseclient-py<1.9.0,>=1.7.0
|
|
26
|
-
|
|
19
|
+
pytest-asyncio==0.21.*
|
|
20
|
+
types-python-dateutil==2.8.2
|
|
21
|
+
pytest-pythonpath==0.7.3
|
|
22
|
+
requests<3.0.0,>=2.25
|
|
23
|
+
pytest-django==4.4.0
|
|
24
|
+
pylint==2.12.*
|
|
25
|
+
Werkzeug==2.0.1
|
|
27
26
|
types-requests==2.25.0
|
|
27
|
+
mypy==0.991
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/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.5.0 → kameleoon-client-python-3.6.1}/tests/integration/proj/manage.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/tests/integration/proj/proj/asgi.py
RENAMED
|
File without changes
|
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/tests/integration/proj/proj/urls.py
RENAMED
|
File without changes
|
{kameleoon-client-python-3.5.0 → kameleoon-client-python-3.6.1}/tests/integration/proj/proj/wsgi.py
RENAMED
|
File without changes
|
|
File without changes
|