kameleoon-client-python 3.17.0__tar.gz → 3.17.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.
Files changed (185) hide show
  1. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/PKG-INFO +17 -17
  2. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/kameleoon_client.py +19 -6
  3. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/managers/remote_data/remote_visitor_data.py +8 -10
  4. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/sdk_version.py +1 -1
  5. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon_client_python.egg-info/PKG-INFO +17 -17
  6. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/MANIFEST.in +0 -0
  7. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/README.md +0 -0
  8. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/__init__.py +0 -0
  9. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/client_readiness/__init__.py +0 -0
  10. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/client_readiness/async_readiness.py +0 -0
  11. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/client_readiness/threading_readiness.py +0 -0
  12. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/configuration/__init__.py +0 -0
  13. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/configuration/consent_blocking_behaviour.py +0 -0
  14. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/configuration/custom_data_info.py +0 -0
  15. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/configuration/data_file.py +0 -0
  16. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/configuration/experiment.py +0 -0
  17. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/configuration/feature_flag.py +0 -0
  18. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/configuration/me_group.py +0 -0
  19. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/configuration/rule.py +0 -0
  20. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/configuration/rule_type.py +0 -0
  21. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/configuration/settings.py +0 -0
  22. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/configuration/variable.py +0 -0
  23. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/configuration/variation.py +0 -0
  24. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/configuration/variation_by_exposition.py +0 -0
  25. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/__init__.py +0 -0
  26. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/browser.py +0 -0
  27. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/cbscores.py +0 -0
  28. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/conversion.py +0 -0
  29. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/cookie.py +0 -0
  30. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/custom_data.py +0 -0
  31. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/data.py +0 -0
  32. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/device.py +0 -0
  33. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/geolocation.py +0 -0
  34. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/kcs_heat.py +0 -0
  35. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/manager/__init__.py +0 -0
  36. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/manager/assigned_variation.py +0 -0
  37. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/manager/forced_experiment_variation.py +0 -0
  38. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/manager/forced_feature_variation.py +0 -0
  39. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/manager/forced_variation.py +0 -0
  40. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/manager/legal_consent.py +0 -0
  41. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/manager/page_view_visit.py +0 -0
  42. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/manager/visitor.py +0 -0
  43. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/manager/visitor_manager.py +0 -0
  44. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/manager/visitor_slot.py +0 -0
  45. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/mapping_identifier.py +0 -0
  46. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/operating_system.py +0 -0
  47. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/page_view.py +0 -0
  48. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/personalization.py +0 -0
  49. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/targeted_segment.py +0 -0
  50. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/unique_identifier.py +0 -0
  51. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/user_agent.py +0 -0
  52. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/data/visitor_visits.py +0 -0
  53. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/defaults.py +0 -0
  54. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/exceptions.py +0 -0
  55. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/helpers/__init__.py +0 -0
  56. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/helpers/domain.py +0 -0
  57. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/helpers/functions.py +0 -0
  58. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/helpers/hasher.py +0 -0
  59. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/helpers/logger.py +0 -0
  60. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/helpers/multi_threading.py +0 -0
  61. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/helpers/nonce.py +0 -0
  62. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/helpers/repeat_timer.py +0 -0
  63. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/helpers/scheduler.py +0 -0
  64. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/helpers/string_utils.py +0 -0
  65. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/helpers/visitor_code.py +0 -0
  66. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/hybrid/__init__.py +0 -0
  67. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/hybrid/hybrid_manager.py +0 -0
  68. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/hybrid/hybrid_manager_impl.py +0 -0
  69. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/kameleoon_client_config.py +0 -0
  70. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/kameleoon_client_factory.py +0 -0
  71. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/logging/__init__.py +0 -0
  72. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/logging/kameleoon_logger.py +0 -0
  73. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/logging/log_level.py +0 -0
  74. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/logging/logger.py +0 -0
  75. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/managers/__init__.py +0 -0
  76. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/managers/asyncexec/__init__.py +0 -0
  77. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/managers/asyncexec/async_executor.py +0 -0
  78. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/managers/data/__init__.py +0 -0
  79. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/managers/data/data_manager.py +0 -0
  80. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/managers/evaluation/__init__.py +0 -0
  81. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/managers/evaluation/evaluated_experiment.py +0 -0
  82. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/managers/remote_data/__init__.py +0 -0
  83. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/managers/remote_data/remote_data_manager.py +0 -0
  84. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/managers/tracking/__init__.py +0 -0
  85. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/managers/tracking/tracking_builder.py +0 -0
  86. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/managers/tracking/tracking_manager.py +0 -0
  87. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/managers/tracking/visitor_tracking_registry.py +0 -0
  88. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/managers/warehouse/__init__.py +0 -0
  89. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/managers/warehouse/warehouse_manager.py +0 -0
  90. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/middleware.py +0 -0
  91. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/__init__.py +0 -0
  92. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/access_token_source.py +0 -0
  93. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/access_token_source_factory.py +0 -0
  94. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/activity_event.py +0 -0
  95. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/cookie/__init__.py +0 -0
  96. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/cookie/cookie_manager.py +0 -0
  97. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/net_provider.py +0 -0
  98. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/net_provider_impl.py +0 -0
  99. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/network_manager.py +0 -0
  100. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/network_manager_factory.py +0 -0
  101. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/network_manager_factory_impl.py +0 -0
  102. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/network_manager_impl.py +0 -0
  103. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/query_builder.py +0 -0
  104. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/query_encodable.py +0 -0
  105. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/sendable.py +0 -0
  106. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/service_initialize_context.py +0 -0
  107. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/service_initialize_context_impl.py +0 -0
  108. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/services/__init__.py +0 -0
  109. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/services/automation_service.py +0 -0
  110. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/services/automation_service_impl.py +0 -0
  111. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/services/configuration_service.py +0 -0
  112. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/services/configuration_service_impl.py +0 -0
  113. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/services/data_service.py +0 -0
  114. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/services/data_service_impl.py +0 -0
  115. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/services/service.py +0 -0
  116. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/services/service_impl.py +0 -0
  117. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/uri_helper.py +0 -0
  118. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/network/url_provider.py +0 -0
  119. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/real_time/__init__.py +0 -0
  120. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/real_time/real_time_configuration_service.py +0 -0
  121. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/real_time/real_time_event.py +0 -0
  122. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/storage/__init__.py +0 -0
  123. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/storage/cache.py +0 -0
  124. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/storage/cache_factory.py +0 -0
  125. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/storage/cache_factory_impl.py +0 -0
  126. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/storage/cache_impl.py +0 -0
  127. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/__init__.py +0 -0
  128. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/__init__.py +0 -0
  129. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/browser_condition.py +0 -0
  130. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/constants.py +0 -0
  131. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/conversion_condition.py +0 -0
  132. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/cookie_condition.py +0 -0
  133. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/custom_datum.py +0 -0
  134. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/device_condition.py +0 -0
  135. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/exclusive_experiment_condition.py +0 -0
  136. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/geolocation_condition.py +0 -0
  137. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/kcs_heat_range_condition.py +0 -0
  138. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/number_condition.py +0 -0
  139. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/operating_system_condition.py +0 -0
  140. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/page_title_condition.py +0 -0
  141. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/page_url_condition.py +0 -0
  142. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/page_view_number_condition.py +0 -0
  143. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/previous_page_condition.py +0 -0
  144. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/sdk_language_condition.py +0 -0
  145. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/segment_condition.py +0 -0
  146. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/string_value_condition.py +0 -0
  147. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/target_experiment_condition.py +0 -0
  148. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/target_feature_flag_condition.py +0 -0
  149. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/target_personalization_condition.py +0 -0
  150. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/targeting_condition.py +0 -0
  151. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/time_elapsed_since_visit_condition.py +0 -0
  152. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/unknown_condition.py +0 -0
  153. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/visit_number_today_condition.py +0 -0
  154. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/visit_number_total_condition.py +0 -0
  155. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/visitor_code_condition.py +0 -0
  156. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/conditions/visitor_new_return_condition.py +0 -0
  157. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/models.py +0 -0
  158. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/targeting_manager.py +0 -0
  159. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/tree_builder.py +0 -0
  160. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/targeting/tree_condition_factory.py +0 -0
  161. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/types/__init__.py +0 -0
  162. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/types/remote_visitor_data_filter.py +0 -0
  163. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/types/variable.py +0 -0
  164. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon/types/variation.py +0 -0
  165. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon_client_python.egg-info/SOURCES.txt +0 -0
  166. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon_client_python.egg-info/dependency_links.txt +0 -0
  167. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon_client_python.egg-info/requires.txt +16 -16
  168. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/kameleoon_client_python.egg-info/top_level.txt +0 -0
  169. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/setup.cfg +0 -0
  170. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/setup.py +0 -0
  171. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/tests/integration/proj/__init__.py +0 -0
  172. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/tests/integration/proj/kameleoon_app/__init__.py +0 -0
  173. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/tests/integration/proj/kameleoon_app/admin.py +0 -0
  174. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/tests/integration/proj/kameleoon_app/apps.py +0 -0
  175. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/tests/integration/proj/kameleoon_app/migrations/__init__.py +0 -0
  176. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/tests/integration/proj/kameleoon_app/models.py +0 -0
  177. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/tests/integration/proj/kameleoon_app/tests.py +0 -0
  178. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/tests/integration/proj/kameleoon_app/views.py +0 -0
  179. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/tests/integration/proj/manage.py +0 -0
  180. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/tests/integration/proj/proj/__init__.py +0 -0
  181. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/tests/integration/proj/proj/asgi.py +0 -0
  182. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/tests/integration/proj/proj/settings.py +0 -0
  183. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/tests/integration/proj/proj/urls.py +0 -0
  184. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/tests/integration/proj/proj/wsgi.py +0 -0
  185. {kameleoon_client_python-3.17.0 → kameleoon_client_python-3.17.1}/tests/resources/config.yml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kameleoon-client-python
3
- Version: 3.17.0
3
+ Version: 3.17.1
4
4
  Summary: Kameleoon Client Python Software Development Kit.
5
5
  Home-page: https://developers.kameleoon.com/python-sdk.html
6
6
  Author: Kameleoon
@@ -20,27 +20,27 @@ Requires-Dist: requests<3.0.0,>=2.25
20
20
  Requires-Dist: sseclient-py<1.9.0,>=1.7.0
21
21
  Requires-Dist: aiohttp<4.0.0,>=3.8.0
22
22
  Provides-Extra: test
23
- Requires-Dist: pytest-asyncio==0.21.*; extra == "test"
24
- Requires-Dist: aiohttp<4.0.0,>=3.8.0; extra == "test"
23
+ Requires-Dist: flake8==4.0.1; extra == "test"
25
24
  Requires-Dist: freezegun==1.1.0; extra == "test"
26
- Requires-Dist: twine==3.4.1; extra == "test"
27
- Requires-Dist: wheel==0.36.2; extra == "test"
28
- Requires-Dist: Werkzeug==2.0.1; extra == "test"
29
- Requires-Dist: mypy==0.991; extra == "test"
30
- Requires-Dist: pytest-ordering==0.6; extra == "test"
31
- Requires-Dist: pytest-cov==2.12.1; extra == "test"
32
- Requires-Dist: sseclient-py<1.9.0,>=1.7.0; extra == "test"
25
+ Requires-Dist: types-requests==2.25.0; extra == "test"
26
+ Requires-Dist: pytest-asyncio==0.21.*; extra == "test"
27
+ Requires-Dist: types-python-dateutil==2.8.2; extra == "test"
28
+ Requires-Dist: pytest-pythonpath==0.7.3; extra == "test"
33
29
  Requires-Dist: aioresponses==0.7.*; extra == "test"
34
- Requires-Dist: pytest-django==4.4.0; extra == "test"
35
- Requires-Dist: Django==3.2.4; extra == "test"
30
+ Requires-Dist: wheel==0.36.2; extra == "test"
36
31
  Requires-Dist: requests<3.0.0,>=2.25; extra == "test"
37
- Requires-Dist: flake8==4.0.1; extra == "test"
32
+ Requires-Dist: twine==3.4.1; extra == "test"
33
+ Requires-Dist: pytest-django==4.4.0; extra == "test"
34
+ Requires-Dist: types-PyYAML==5.4.3; extra == "test"
38
35
  Requires-Dist: pyyaml<6.1.0,>=5.4.0; extra == "test"
36
+ Requires-Dist: pytest-cov==2.12.1; extra == "test"
37
+ Requires-Dist: pytest-ordering==0.6; extra == "test"
38
+ Requires-Dist: sseclient-py<1.9.0,>=1.7.0; extra == "test"
39
+ Requires-Dist: Werkzeug==2.0.1; extra == "test"
39
40
  Requires-Dist: pylint==2.12.*; extra == "test"
40
- Requires-Dist: types-PyYAML==5.4.3; extra == "test"
41
- Requires-Dist: pytest-pythonpath==0.7.3; extra == "test"
42
- Requires-Dist: types-requests==2.25.0; extra == "test"
43
- Requires-Dist: types-python-dateutil==2.8.2; extra == "test"
41
+ Requires-Dist: Django==3.2.4; extra == "test"
42
+ Requires-Dist: mypy==0.991; extra == "test"
43
+ Requires-Dist: aiohttp<4.0.0,>=3.8.0; extra == "test"
44
44
  Dynamic: author
45
45
  Dynamic: author-email
46
46
  Dynamic: classifier
@@ -757,6 +757,11 @@ class KameleoonClient:
757
757
  save,
758
758
  bucketing_cd_index,
759
759
  )
760
+ consent, blocking_behaviour = self.__get_consent_and_blocking_behaviour(visitor)
761
+ if consent == LegalConsent.NOT_GIVEN and blocking_behaviour == ConsentBlockingBehaviour.COMPLETELY_BLOCKED:
762
+ raise FeatureEnvironmentDisabled(
763
+ "Evaluation for a holdout is blocked because visitor's consent was not provided."
764
+ )
760
765
  is_not_in_holdout = True
761
766
  code_for_hash = self.__get_code_for_hash(visitor, visitor_code, bucketing_cd_index)
762
767
  variation_hash = Hasher.obtain(code_for_hash, holdout.id_)
@@ -1695,11 +1700,7 @@ class KameleoonClient:
1695
1700
  feature_flag,
1696
1701
  )
1697
1702
  visitor = self._visitor_manager.get_visitor(visitor_code)
1698
- datafile = self._data_manager.data_file
1699
- if datafile.settings.is_consent_required:
1700
- consent = visitor.legal_consent if visitor else LegalConsent.UNKNOWN
1701
- else:
1702
- consent = LegalConsent.GIVEN
1703
+ consent, blocking_behaviour = self.__get_consent_and_blocking_behaviour(visitor)
1703
1704
  code_for_hash = self.__get_code_for_hash(visitor, visitor_code, feature_flag.bucketing_custom_data_index)
1704
1705
  eval_exp = None
1705
1706
  for rule in feature_flag.rules:
@@ -1722,7 +1723,6 @@ class KameleoonClient:
1722
1723
  if hash_rule <= rule.exposition:
1723
1724
  # Checking if the evaluation is blocked due to the consent policy
1724
1725
  if (consent == LegalConsent.NOT_GIVEN) and rule.is_experimentation:
1725
- blocking_behaviour = datafile.settings.blocking_behaviour_if_consent_not_given
1726
1726
  if blocking_behaviour == ConsentBlockingBehaviour.PARTIALLY_BLOCKED:
1727
1727
  break
1728
1728
  raise FeatureEnvironmentDisabled(
@@ -1757,6 +1757,19 @@ class KameleoonClient:
1757
1757
  )
1758
1758
  return eval_exp
1759
1759
 
1760
+ def __get_consent_and_blocking_behaviour(
1761
+ self,
1762
+ visitor: Optional[Visitor],
1763
+ ) -> Tuple[LegalConsent, ConsentBlockingBehaviour]:
1764
+ datafile = self._data_manager.data_file
1765
+ if datafile.settings.is_consent_required:
1766
+ consent = visitor.legal_consent if visitor else LegalConsent.UNKNOWN
1767
+ else:
1768
+ consent = LegalConsent.GIVEN
1769
+ behaviour = datafile.settings.blocking_behaviour_if_consent_not_given
1770
+
1771
+ return consent, behaviour
1772
+
1760
1773
  @staticmethod
1761
1774
  def __calculate_variation_key(eval_exp: Optional[EvaluatedExperiment], default_value: str) -> str:
1762
1775
  KameleoonLogger.debug(
@@ -50,15 +50,15 @@ class RemoteVisitorData:
50
50
  self.__visitor_code: Optional[str] = None
51
51
  current_visit = json.get("currentVisit")
52
52
  if current_visit is not None:
53
- self.__parse_visit(current_visit, False)
53
+ self.__parse_visit(current_visit, 0)
54
54
  previous_visits = json.get("previousVisits")
55
55
  if previous_visits:
56
56
  prev_visits = []
57
- for visit in previous_visits:
57
+ for i, visit in enumerate(previous_visits):
58
58
  time_started = visit.get("timeStarted", 0)
59
59
  time_last_event = visit.get("timeLastEvent", time_started)
60
60
  prev_visits.append(VisitorVisits.Visit(time_started, time_last_event))
61
- self.__parse_visit(visit, True)
61
+ self.__parse_visit(visit, i + 1)
62
62
  if len(prev_visits) > 0:
63
63
  self.__visitor_visits = VisitorVisits(prev_visits, self.__visit_number)
64
64
  self.__kcs_heat = self.__parse_kcs_heat(json.get("kcs"))
@@ -123,7 +123,7 @@ class RemoteVisitorData:
123
123
  """Returns the `visitorCode` from the most recent visit"""
124
124
  return self.__visitor_code
125
125
 
126
- def __parse_visit(self, json_visit: Dict[str, Any], is_prev_visit: bool) -> None:
126
+ def __parse_visit(self, json_visit: Dict[str, Any], visit_offset: int) -> None:
127
127
  if (self.__visitor_code is None) and isinstance(visitor_code := json_visit.get("visitorCode"), str):
128
128
  self.__visitor_code = visitor_code
129
129
  custom_data_events = json_visit.get("customDataEvents")
@@ -143,7 +143,7 @@ class RemoteVisitorData:
143
143
  self.__parse_geolocation(geolocation_events[-1])
144
144
  static_data_event = json_visit.get("staticDataEvent")
145
145
  if static_data_event:
146
- self.__parse_static_data(static_data_event, is_prev_visit)
146
+ self.__parse_static_data(static_data_event, visit_offset)
147
147
  personalization_events = json_visit.get("personalizationEvents")
148
148
  if personalization_events:
149
149
  self.__parse_personalizations(personalization_events)
@@ -209,15 +209,13 @@ class RemoteVisitorData:
209
209
  if country is not None:
210
210
  self.__geolocation = Geolocation(country, data.get("region"), data.get("city"))
211
211
 
212
- def __parse_static_data(self, static_data_event: Dict[str, Any], is_prev_visit: bool) -> None:
212
+ def __parse_static_data(self, static_data_event: Dict[str, Any], visit_offset: int) -> None:
213
213
  if self.__device and self.__browser and self.__operating_system:
214
214
  return
215
215
  data = static_data_event.get("data")
216
216
  if data is not None:
217
- if self.__visit_number == 0:
218
- self.__visit_number = data.get("visitNumber", 0)
219
- if is_prev_visit and (self.__visit_number > 0):
220
- self.__visit_number += 1
217
+ if (self.__visit_number == 0) and (remote_visit_number := data.get("visitNumber")):
218
+ self.__visit_number = remote_visit_number + visit_offset
221
219
  if self.__filter.device and (self.__device is None):
222
220
  device_type = enum_from_name_literal(data.get("deviceType"), DeviceType, None)
223
221
  if device_type is not None:
@@ -4,7 +4,7 @@ from typing import Optional, Tuple
4
4
 
5
5
  from kameleoon.logging.kameleoon_logger import KameleoonLogger
6
6
 
7
- version_info = (3, 17, 0)
7
+ version_info = (3, 17, 1)
8
8
  __version__ = ".".join(str(v) for v in version_info) # uses in scripts
9
9
 
10
10
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kameleoon-client-python
3
- Version: 3.17.0
3
+ Version: 3.17.1
4
4
  Summary: Kameleoon Client Python Software Development Kit.
5
5
  Home-page: https://developers.kameleoon.com/python-sdk.html
6
6
  Author: Kameleoon
@@ -20,27 +20,27 @@ Requires-Dist: requests<3.0.0,>=2.25
20
20
  Requires-Dist: sseclient-py<1.9.0,>=1.7.0
21
21
  Requires-Dist: aiohttp<4.0.0,>=3.8.0
22
22
  Provides-Extra: test
23
- Requires-Dist: pytest-asyncio==0.21.*; extra == "test"
24
- Requires-Dist: aiohttp<4.0.0,>=3.8.0; extra == "test"
23
+ Requires-Dist: flake8==4.0.1; extra == "test"
25
24
  Requires-Dist: freezegun==1.1.0; extra == "test"
26
- Requires-Dist: twine==3.4.1; extra == "test"
27
- Requires-Dist: wheel==0.36.2; extra == "test"
28
- Requires-Dist: Werkzeug==2.0.1; extra == "test"
29
- Requires-Dist: mypy==0.991; extra == "test"
30
- Requires-Dist: pytest-ordering==0.6; extra == "test"
31
- Requires-Dist: pytest-cov==2.12.1; extra == "test"
32
- Requires-Dist: sseclient-py<1.9.0,>=1.7.0; extra == "test"
25
+ Requires-Dist: types-requests==2.25.0; extra == "test"
26
+ Requires-Dist: pytest-asyncio==0.21.*; extra == "test"
27
+ Requires-Dist: types-python-dateutil==2.8.2; extra == "test"
28
+ Requires-Dist: pytest-pythonpath==0.7.3; extra == "test"
33
29
  Requires-Dist: aioresponses==0.7.*; extra == "test"
34
- Requires-Dist: pytest-django==4.4.0; extra == "test"
35
- Requires-Dist: Django==3.2.4; extra == "test"
30
+ Requires-Dist: wheel==0.36.2; extra == "test"
36
31
  Requires-Dist: requests<3.0.0,>=2.25; extra == "test"
37
- Requires-Dist: flake8==4.0.1; extra == "test"
32
+ Requires-Dist: twine==3.4.1; extra == "test"
33
+ Requires-Dist: pytest-django==4.4.0; extra == "test"
34
+ Requires-Dist: types-PyYAML==5.4.3; extra == "test"
38
35
  Requires-Dist: pyyaml<6.1.0,>=5.4.0; extra == "test"
36
+ Requires-Dist: pytest-cov==2.12.1; extra == "test"
37
+ Requires-Dist: pytest-ordering==0.6; extra == "test"
38
+ Requires-Dist: sseclient-py<1.9.0,>=1.7.0; extra == "test"
39
+ Requires-Dist: Werkzeug==2.0.1; extra == "test"
39
40
  Requires-Dist: pylint==2.12.*; extra == "test"
40
- Requires-Dist: types-PyYAML==5.4.3; extra == "test"
41
- Requires-Dist: pytest-pythonpath==0.7.3; extra == "test"
42
- Requires-Dist: types-requests==2.25.0; extra == "test"
43
- Requires-Dist: types-python-dateutil==2.8.2; extra == "test"
41
+ Requires-Dist: Django==3.2.4; extra == "test"
42
+ Requires-Dist: mypy==0.991; extra == "test"
43
+ Requires-Dist: aiohttp<4.0.0,>=3.8.0; extra == "test"
44
44
  Dynamic: author
45
45
  Dynamic: author-email
46
46
  Dynamic: classifier
@@ -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
- pytest-asyncio==0.21.*
8
- aiohttp<4.0.0,>=3.8.0
7
+ flake8==4.0.1
9
8
  freezegun==1.1.0
10
- twine==3.4.1
11
- wheel==0.36.2
12
- Werkzeug==2.0.1
13
- mypy==0.991
14
- pytest-ordering==0.6
15
- pytest-cov==2.12.1
16
- sseclient-py<1.9.0,>=1.7.0
9
+ types-requests==2.25.0
10
+ pytest-asyncio==0.21.*
11
+ types-python-dateutil==2.8.2
12
+ pytest-pythonpath==0.7.3
17
13
  aioresponses==0.7.*
18
- pytest-django==4.4.0
19
- Django==3.2.4
14
+ wheel==0.36.2
20
15
  requests<3.0.0,>=2.25
21
- flake8==4.0.1
16
+ twine==3.4.1
17
+ pytest-django==4.4.0
18
+ types-PyYAML==5.4.3
22
19
  pyyaml<6.1.0,>=5.4.0
20
+ pytest-cov==2.12.1
21
+ pytest-ordering==0.6
22
+ sseclient-py<1.9.0,>=1.7.0
23
+ Werkzeug==2.0.1
23
24
  pylint==2.12.*
24
- types-PyYAML==5.4.3
25
- pytest-pythonpath==0.7.3
26
- types-requests==2.25.0
27
- types-python-dateutil==2.8.2
25
+ Django==3.2.4
26
+ mypy==0.991
27
+ aiohttp<4.0.0,>=3.8.0