kameleoon-client-python 3.16.1__tar.gz → 3.16.3__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 (183) hide show
  1. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/PKG-INFO +38 -5
  2. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/configuration/data_file.py +1 -1
  3. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/conversion.py +3 -3
  4. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/custom_data.py +3 -2
  5. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/geolocation.py +1 -1
  6. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/manager/visitor_manager.py +32 -9
  7. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/personalization.py +1 -1
  8. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/targeted_segment.py +1 -1
  9. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/helpers/functions.py +1 -1
  10. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/network_manager.py +1 -1
  11. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/sdk_version.py +1 -1
  12. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/storage/cache.py +2 -2
  13. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/targeting_condition.py +1 -1
  14. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/time_elapsed_since_visit_condition.py +0 -1
  15. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/visit_number_total_condition.py +0 -1
  16. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/visitor_new_return_condition.py +0 -1
  17. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon_client_python.egg-info/PKG-INFO +38 -5
  18. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/MANIFEST.in +0 -0
  19. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/README.md +0 -0
  20. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/__init__.py +0 -0
  21. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/client_readiness/__init__.py +0 -0
  22. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/client_readiness/async_readiness.py +0 -0
  23. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/client_readiness/threading_readiness.py +0 -0
  24. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/configuration/__init__.py +0 -0
  25. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/configuration/custom_data_info.py +0 -0
  26. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/configuration/experiment.py +0 -0
  27. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/configuration/feature_flag.py +0 -0
  28. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/configuration/me_group.py +0 -0
  29. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/configuration/rule.py +0 -0
  30. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/configuration/rule_type.py +0 -0
  31. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/configuration/settings.py +0 -0
  32. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/configuration/variable.py +0 -0
  33. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/configuration/variation.py +0 -0
  34. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/configuration/variation_by_exposition.py +0 -0
  35. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/__init__.py +0 -0
  36. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/browser.py +0 -0
  37. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/cbscores.py +0 -0
  38. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/cookie.py +0 -0
  39. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/data.py +0 -0
  40. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/device.py +0 -0
  41. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/kcs_heat.py +0 -0
  42. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/manager/__init__.py +0 -0
  43. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/manager/assigned_variation.py +0 -0
  44. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/manager/forced_experiment_variation.py +0 -0
  45. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/manager/forced_feature_variation.py +0 -0
  46. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/manager/forced_variation.py +0 -0
  47. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/manager/page_view_visit.py +0 -0
  48. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/manager/visitor.py +0 -0
  49. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/manager/visitor_slot.py +0 -0
  50. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/mapping_identifier.py +0 -0
  51. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/operating_system.py +0 -0
  52. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/page_view.py +0 -0
  53. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/unique_identifier.py +0 -0
  54. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/user_agent.py +0 -0
  55. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/data/visitor_visits.py +0 -0
  56. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/defaults.py +0 -0
  57. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/exceptions.py +0 -0
  58. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/helpers/__init__.py +0 -0
  59. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/helpers/domain.py +0 -0
  60. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/helpers/hasher.py +0 -0
  61. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/helpers/logger.py +0 -0
  62. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/helpers/multi_threading.py +0 -0
  63. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/helpers/nonce.py +0 -0
  64. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/helpers/repeat_timer.py +0 -0
  65. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/helpers/scheduler.py +0 -0
  66. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/helpers/string_utils.py +0 -0
  67. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/helpers/visitor_code.py +0 -0
  68. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/hybrid/__init__.py +0 -0
  69. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/hybrid/hybrid_manager.py +0 -0
  70. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/hybrid/hybrid_manager_impl.py +0 -0
  71. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/kameleoon_client.py +0 -0
  72. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/kameleoon_client_config.py +0 -0
  73. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/kameleoon_client_factory.py +0 -0
  74. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/logging/__init__.py +0 -0
  75. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/logging/kameleoon_logger.py +0 -0
  76. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/logging/log_level.py +0 -0
  77. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/logging/logger.py +0 -0
  78. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/managers/__init__.py +0 -0
  79. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/managers/asyncexec/__init__.py +0 -0
  80. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/managers/asyncexec/async_executor.py +0 -0
  81. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/managers/data/__init__.py +0 -0
  82. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/managers/data/data_manager.py +0 -0
  83. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/managers/evaluation/__init__.py +0 -0
  84. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/managers/evaluation/evaluated_experiment.py +0 -0
  85. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/managers/remote_data/__init__.py +0 -0
  86. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/managers/remote_data/remote_data_manager.py +0 -0
  87. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/managers/remote_data/remote_visitor_data.py +0 -0
  88. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/managers/tracking/__init__.py +0 -0
  89. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/managers/tracking/tracking_builder.py +0 -0
  90. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/managers/tracking/tracking_manager.py +0 -0
  91. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/managers/tracking/visitor_tracking_registry.py +0 -0
  92. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/managers/warehouse/__init__.py +0 -0
  93. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/managers/warehouse/warehouse_manager.py +0 -0
  94. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/middleware.py +0 -0
  95. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/__init__.py +0 -0
  96. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/access_token_source.py +0 -0
  97. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/access_token_source_factory.py +0 -0
  98. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/activity_event.py +0 -0
  99. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/cookie/__init__.py +0 -0
  100. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/cookie/cookie_manager.py +0 -0
  101. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/net_provider.py +0 -0
  102. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/net_provider_impl.py +0 -0
  103. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/network_manager_factory.py +0 -0
  104. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/network_manager_factory_impl.py +0 -0
  105. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/network_manager_impl.py +0 -0
  106. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/query_builder.py +0 -0
  107. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/query_encodable.py +0 -0
  108. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/sendable.py +0 -0
  109. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/service_initialize_context.py +0 -0
  110. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/service_initialize_context_impl.py +0 -0
  111. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/services/__init__.py +0 -0
  112. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/services/automation_service.py +0 -0
  113. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/services/automation_service_impl.py +0 -0
  114. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/services/configuration_service.py +0 -0
  115. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/services/configuration_service_impl.py +0 -0
  116. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/services/data_service.py +0 -0
  117. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/services/data_service_impl.py +0 -0
  118. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/services/service.py +0 -0
  119. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/services/service_impl.py +0 -0
  120. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/uri_helper.py +0 -0
  121. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/network/url_provider.py +0 -0
  122. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/real_time/__init__.py +0 -0
  123. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/real_time/real_time_configuration_service.py +0 -0
  124. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/real_time/real_time_event.py +0 -0
  125. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/storage/__init__.py +0 -0
  126. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/storage/cache_factory.py +0 -0
  127. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/storage/cache_factory_impl.py +0 -0
  128. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/storage/cache_impl.py +0 -0
  129. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/__init__.py +0 -0
  130. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/__init__.py +0 -0
  131. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/browser_condition.py +0 -0
  132. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/constants.py +0 -0
  133. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/conversion_condition.py +0 -0
  134. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/cookie_condition.py +0 -0
  135. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/custom_datum.py +0 -0
  136. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/device_condition.py +0 -0
  137. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/exclusive_experiment_condition.py +0 -0
  138. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/geolocation_condition.py +0 -0
  139. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/kcs_heat_range_condition.py +0 -0
  140. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/number_condition.py +0 -0
  141. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/operating_system_condition.py +0 -0
  142. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/page_title_condition.py +0 -0
  143. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/page_url_condition.py +0 -0
  144. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/page_view_number_condition.py +0 -0
  145. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/previous_page_condition.py +0 -0
  146. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/sdk_language_condition.py +0 -0
  147. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/segment_condition.py +0 -0
  148. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/string_value_condition.py +0 -0
  149. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/target_experiment_condition.py +0 -0
  150. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/target_feature_flag_condition.py +0 -0
  151. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/target_personalization_condition.py +0 -0
  152. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/unknown_condition.py +0 -0
  153. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/visit_number_today_condition.py +0 -0
  154. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/conditions/visitor_code_condition.py +0 -0
  155. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/models.py +0 -0
  156. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/targeting_manager.py +0 -0
  157. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/tree_builder.py +0 -0
  158. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/targeting/tree_condition_factory.py +0 -0
  159. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/types/__init__.py +0 -0
  160. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/types/remote_visitor_data_filter.py +0 -0
  161. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/types/variable.py +0 -0
  162. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon/types/variation.py +0 -0
  163. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon_client_python.egg-info/SOURCES.txt +0 -0
  164. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon_client_python.egg-info/dependency_links.txt +0 -0
  165. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon_client_python.egg-info/requires.txt +13 -13
  166. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/kameleoon_client_python.egg-info/top_level.txt +0 -0
  167. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/setup.cfg +0 -0
  168. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/setup.py +0 -0
  169. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/tests/integration/proj/__init__.py +0 -0
  170. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/tests/integration/proj/kameleoon_app/__init__.py +0 -0
  171. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/tests/integration/proj/kameleoon_app/admin.py +0 -0
  172. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/tests/integration/proj/kameleoon_app/apps.py +0 -0
  173. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/tests/integration/proj/kameleoon_app/migrations/__init__.py +0 -0
  174. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/tests/integration/proj/kameleoon_app/models.py +0 -0
  175. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/tests/integration/proj/kameleoon_app/tests.py +0 -0
  176. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/tests/integration/proj/kameleoon_app/views.py +0 -0
  177. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/tests/integration/proj/manage.py +0 -0
  178. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/tests/integration/proj/proj/__init__.py +0 -0
  179. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/tests/integration/proj/proj/asgi.py +0 -0
  180. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/tests/integration/proj/proj/settings.py +0 -0
  181. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/tests/integration/proj/proj/urls.py +0 -0
  182. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/tests/integration/proj/proj/wsgi.py +0 -0
  183. {kameleoon-client-python-3.16.1 → kameleoon_client_python-3.16.3}/tests/resources/config.yml +0 -0
@@ -1,12 +1,11 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: kameleoon-client-python
3
- Version: 3.16.1
3
+ Version: 3.16.3
4
4
  Summary: Kameleoon Client Python Software Development Kit.
5
5
  Home-page: https://developers.kameleoon.com/python-sdk.html
6
6
  Author: Kameleoon
7
7
  Author-email: sdk@kameleoon.com
8
8
  License: GPLv3
9
- Platform: UNKNOWN
10
9
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
11
10
  Classifier: Programming Language :: Python
12
11
  Classifier: Programming Language :: Python :: 3.8
@@ -16,7 +15,43 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
16
15
  Classifier: Programming Language :: Python :: Implementation :: PyPy
17
16
  Requires-Python: >=3.8.0
18
17
  Description-Content-Type: text/markdown
18
+ Requires-Dist: pyyaml<6.1.0,>=5.4.0
19
+ Requires-Dist: requests<3.0.0,>=2.25
20
+ Requires-Dist: sseclient-py<1.9.0,>=1.7.0
21
+ Requires-Dist: aiohttp<4.0.0,>=3.8.0
19
22
  Provides-Extra: test
23
+ Requires-Dist: wheel==0.36.2; extra == "test"
24
+ Requires-Dist: types-python-dateutil==2.8.2; extra == "test"
25
+ Requires-Dist: types-PyYAML==5.4.3; extra == "test"
26
+ Requires-Dist: pytest-ordering==0.6; extra == "test"
27
+ Requires-Dist: pylint==2.12.*; extra == "test"
28
+ Requires-Dist: sseclient-py<1.9.0,>=1.7.0; extra == "test"
29
+ Requires-Dist: Werkzeug==2.0.1; extra == "test"
30
+ Requires-Dist: Django==3.2.4; extra == "test"
31
+ Requires-Dist: types-requests==2.25.0; extra == "test"
32
+ Requires-Dist: pytest-cov==2.12.1; extra == "test"
33
+ Requires-Dist: aioresponses==0.7.*; extra == "test"
34
+ Requires-Dist: pytest-asyncio==0.21.*; extra == "test"
35
+ Requires-Dist: twine==3.4.1; extra == "test"
36
+ Requires-Dist: aiohttp<4.0.0,>=3.8.0; extra == "test"
37
+ Requires-Dist: requests<3.0.0,>=2.25; extra == "test"
38
+ Requires-Dist: flake8==4.0.1; extra == "test"
39
+ Requires-Dist: pytest-pythonpath==0.7.3; extra == "test"
40
+ Requires-Dist: mypy==0.991; extra == "test"
41
+ Requires-Dist: pytest-django==4.4.0; extra == "test"
42
+ Requires-Dist: freezegun==1.1.0; extra == "test"
43
+ Requires-Dist: pyyaml<6.1.0,>=5.4.0; extra == "test"
44
+ Dynamic: author
45
+ Dynamic: author-email
46
+ Dynamic: classifier
47
+ Dynamic: description
48
+ Dynamic: description-content-type
49
+ Dynamic: home-page
50
+ Dynamic: license
51
+ Dynamic: provides-extra
52
+ Dynamic: requires-dist
53
+ Dynamic: requires-python
54
+ Dynamic: summary
20
55
 
21
56
 
22
57
  # Kameleoon Python SDK
@@ -241,5 +276,3 @@ visitor_code = client.get_visitor_code(request.COOKIES)
241
276
  goal_id = 83023
242
277
  client.track_conversion(visitor_code, goal_id)
243
278
  ```
244
-
245
-
@@ -48,7 +48,7 @@ class DataFile:
48
48
  configuration: Dict[str, Any], segments: Dict[int, Segment], cdi: CustomDataInfo
49
49
  ) -> Dict[str, FeatureFlag]:
50
50
  return {
51
- (ff := FeatureFlag(jobj, segments, cdi)).feature_key: ff # pylint: disable=C0103
51
+ (ff := FeatureFlag(jobj, segments, cdi)).feature_key: ff
52
52
  for jobj in configuration.get("featureFlags") or []
53
53
  }
54
54
 
@@ -44,7 +44,7 @@ class Conversion(Data, DuplicationSafeSendableBase):
44
44
  self.__goal_id = goal_id
45
45
  self.__revenue = revenue
46
46
  self.__negative = negative
47
- self.__metadata = metadata
47
+ self._metadata = metadata
48
48
 
49
49
  @property
50
50
  def goal_id(self) -> int:
@@ -64,7 +64,7 @@ class Conversion(Data, DuplicationSafeSendableBase):
64
64
  @property
65
65
  def metadata(self) -> Optional[Iterable[CustomData]]:
66
66
  """Returns metadata"""
67
- return self.__metadata
67
+ return self._metadata
68
68
 
69
69
  @property
70
70
  def data_type(self) -> DataType:
@@ -97,5 +97,5 @@ class Conversion(Data, DuplicationSafeSendableBase):
97
97
  f"Conversion{{goal_id:{self.__goal_id},"
98
98
  f"revenue:{self.__revenue},"
99
99
  f"negative:{self.__negative},"
100
- f"metadata:{StringUtils.object_to_string(self.__metadata)}}}"
100
+ f"metadata:{StringUtils.object_to_string(self._metadata)}}}"
101
101
  )
@@ -11,6 +11,7 @@ class CustomData(Data, DuplicationUnsafeSendableBase):
11
11
  """Custom data"""
12
12
 
13
13
  EVENT_TYPE = "customData"
14
+ UNDEFINED_INDEX = -1
14
15
 
15
16
  def __init__(self, index_or_name: Union[int, str], *args: str, overwrite=True) -> None:
16
17
  """
@@ -29,7 +30,7 @@ class CustomData(Data, DuplicationUnsafeSendableBase):
29
30
  self.__index = index_or_name
30
31
  self._name = None
31
32
  else:
32
- self.__index = -1
33
+ self.__index = self.UNDEFINED_INDEX
33
34
  self._name = index_or_name
34
35
  self.__values = args
35
36
  self.__overwrite = overwrite
@@ -41,7 +42,7 @@ class CustomData(Data, DuplicationUnsafeSendableBase):
41
42
  return custom_data
42
43
 
43
44
  @property
44
- def id(self) -> int: # pylint: disable=C0103
45
+ def id(self) -> int:
45
46
  """
46
47
  Deprecated. Please use `index` instead.
47
48
 
@@ -10,7 +10,7 @@ from kameleoon.network.query_builder import QueryBuilder, QueryParam, QueryParam
10
10
  class Geolocation(Data, DuplicationUnsafeSendableBase):
11
11
  """Geolocation data"""
12
12
 
13
- EVENT_TYPE = "staticData"
13
+ EVENT_TYPE = "geolocation"
14
14
 
15
15
  # pylint: disable=R0913
16
16
  def __init__(
@@ -3,7 +3,7 @@ import collections
3
3
  import time
4
4
  from typing import Any, Dict, Iterator, List, Optional
5
5
  from kameleoon.configuration.custom_data_info import CustomDataInfo
6
- from kameleoon.data import CustomData
6
+ from kameleoon.data import Conversion, CustomData
7
7
  from kameleoon.data.mapping_identifier import MappingIdentifier
8
8
  from kameleoon.data.manager.visitor import Visitor
9
9
  from kameleoon.data.manager.visitor_slot import VisitorSlot
@@ -77,9 +77,10 @@ class VisitorManager:
77
77
  data_to_add: List[Any] = [None] * len(args)
78
78
  for i, data in enumerate(args):
79
79
  if isinstance(data, CustomData):
80
- data_to_add[i] = self.__process_custom_data(visitor_code, visitor, custom_data_info, data)
81
- else:
82
- data_to_add[i] = data
80
+ data = self.__process_custom_data(visitor_code, visitor, custom_data_info, data)
81
+ elif isinstance(data, Conversion):
82
+ data = self.__process_conversion(data, custom_data_info)
83
+ data_to_add[i] = data
83
84
  visitor.add_data(*data_to_add)
84
85
  KameleoonLogger.debug("RETURN: VisitorManager.add_data(visitor_code: %s, args: %s) -> (visitor)",
85
86
  visitor_code, args)
@@ -89,11 +90,11 @@ class VisitorManager:
89
90
  self, visitor_code: str, visitor: Visitor, custom_data_info: CustomDataInfo, custom_data: CustomData
90
91
  ) -> Optional[CustomData]:
91
92
  """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)
93
+ if mapped_cd := self.__try_map_custom_data_index_by_name(custom_data, custom_data_info):
94
+ custom_data = mapped_cd
95
+ else:
96
+ KameleoonLogger.error("%s is invalid and will be ignored", custom_data)
97
+ return None
97
98
  # We shouldn't send custom data with local only type
98
99
  if custom_data_info.is_local_only(custom_data.index):
99
100
  custom_data.mark_as_sent()
@@ -113,6 +114,28 @@ class VisitorManager:
113
114
  return MappingIdentifier(custom_data)
114
115
  return custom_data
115
116
 
117
+ @staticmethod
118
+ def __process_conversion(conversion: Conversion, cdi: CustomDataInfo) -> Conversion:
119
+ if conversion.metadata:
120
+ metadata = []
121
+ for cd in conversion.metadata:
122
+ mapped_cd = VisitorManager.__try_map_custom_data_index_by_name(cd, cdi)
123
+ if mapped_cd:
124
+ metadata.append(mapped_cd)
125
+ else:
126
+ KameleoonLogger.warning("Conversion metadata %s is invalid", cd)
127
+ conversion._metadata = metadata
128
+ return conversion
129
+
130
+ @staticmethod
131
+ def __try_map_custom_data_index_by_name(custom_data: CustomData, cdi: CustomDataInfo) -> Optional[CustomData]:
132
+ if custom_data.index != CustomData.UNDEFINED_INDEX:
133
+ return custom_data
134
+ if custom_data.name is None:
135
+ return None
136
+ cd_index = cdi.get_custom_data_index_by_name(custom_data.name)
137
+ return custom_data._named_to_indexed(cd_index) if cd_index is not None else None
138
+
116
139
  def __purge(self) -> None:
117
140
  KameleoonLogger.debug("CALL: VisitorManager.__purge()")
118
141
  expired_time = time.time() - self.__expiration_period
@@ -13,7 +13,7 @@ class Personalization(BaseData):
13
13
  self.__variation_id = variation_id
14
14
 
15
15
  @property
16
- def id(self) -> int: # pylint: disable=C0103
16
+ def id(self) -> int:
17
17
  """Returns personalization ID"""
18
18
  return self.__id
19
19
 
@@ -13,7 +13,7 @@ class TargetedSegment(BaseData, DuplicationUnsafeSendableBase):
13
13
  self.__id = id_
14
14
 
15
15
  @property
16
- def id(self) -> int: # pylint: disable=C0103
16
+ def id(self) -> int:
17
17
  """Returns the segment ID."""
18
18
  return self.__id
19
19
 
@@ -16,7 +16,7 @@ def get_size(obj) -> float:
16
16
  return sum([sys.getsizeof(v) + sys.getsizeof(k) for k, v in obj.items()])
17
17
 
18
18
 
19
- E = TypeVar('E', bound=Enum) # pylint: disable=C0103
19
+ E = TypeVar('E', bound=Enum)
20
20
 
21
21
 
22
22
  def enum_from_literal(literal: str, enum_type: Type[E], default_value: E) -> E:
@@ -7,7 +7,7 @@ from kameleoon.network.service_initialize_context import ServiceInitializeContex
7
7
  from kameleoon.network.services.service import Service
8
8
 
9
9
 
10
- S = TypeVar("S", bound=Service) # pylint: disable=C0103
10
+ S = TypeVar("S", bound=Service)
11
11
 
12
12
 
13
13
  class NetworkManager:
@@ -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, 16, 1)
7
+ version_info = (3, 16, 3)
8
8
  __version__ = ".".join(str(v) for v in version_info) # uses in scripts
9
9
 
10
10
 
@@ -3,8 +3,8 @@
3
3
  from typing import TypeVar, Generic, Optional
4
4
 
5
5
 
6
- K = TypeVar("K") # pylint: disable=C0103
7
- V = TypeVar("V") # pylint: disable=C0103
6
+ K = TypeVar("K")
7
+ V = TypeVar("V")
8
8
 
9
9
 
10
10
  class Cache(Generic[K, V]):
@@ -6,7 +6,7 @@ from typing import Any, TypeVar, Union, Dict, Optional
6
6
 
7
7
  from kameleoon.data.data import Data
8
8
 
9
- T = TypeVar("T", bound=Data) # pylint: disable=C0103
9
+ T = TypeVar("T", bound=Data)
10
10
 
11
11
 
12
12
  class TargetingConditionType(Enum):
@@ -14,7 +14,6 @@ class TimeElapsedSinceVisitCondition(NumberCondition):
14
14
  super().__init__(json_condition, "countInMillis")
15
15
  self.__is_first_visit = self.type == TargetingConditionType.FIRST_VISIT.name
16
16
 
17
- # pylint: disable=C0103
18
17
  def check(self, data: Any) -> bool:
19
18
  visitor_visits, ok = VisitorVisits.get_visitor_visits(data)
20
19
  return ok and (self._condition_value is not None) and self.__check(visitor_visits)
@@ -12,7 +12,6 @@ class VisitNumberTotalCondition(NumberCondition):
12
12
  def __init__(self, json_condition: Dict[str, Union[str, int, Any]]):
13
13
  super().__init__(json_condition, "visitCount")
14
14
 
15
- # pylint: disable=C0103
16
15
  def check(self, data: Any) -> bool:
17
16
  visitor_visits, ok = VisitorVisits.get_visitor_visits(data)
18
17
  if ok and (self._condition_value is not None):
@@ -25,7 +25,6 @@ class VisitorNewReturnCondition(TargetingCondition):
25
25
  except KeyError as ex:
26
26
  KameleoonLogger.error("%s has wrong JSON structure: %s", self.__class__, ex)
27
27
 
28
- # pylint: disable=C0103
29
28
  def check(self, data: Any) -> bool:
30
29
  visitor_visits, ok = VisitorVisits.get_visitor_visits(data)
31
30
  if ok:
@@ -1,12 +1,11 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: kameleoon-client-python
3
- Version: 3.16.1
3
+ Version: 3.16.3
4
4
  Summary: Kameleoon Client Python Software Development Kit.
5
5
  Home-page: https://developers.kameleoon.com/python-sdk.html
6
6
  Author: Kameleoon
7
7
  Author-email: sdk@kameleoon.com
8
8
  License: GPLv3
9
- Platform: UNKNOWN
10
9
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
11
10
  Classifier: Programming Language :: Python
12
11
  Classifier: Programming Language :: Python :: 3.8
@@ -16,7 +15,43 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
16
15
  Classifier: Programming Language :: Python :: Implementation :: PyPy
17
16
  Requires-Python: >=3.8.0
18
17
  Description-Content-Type: text/markdown
18
+ Requires-Dist: pyyaml<6.1.0,>=5.4.0
19
+ Requires-Dist: requests<3.0.0,>=2.25
20
+ Requires-Dist: sseclient-py<1.9.0,>=1.7.0
21
+ Requires-Dist: aiohttp<4.0.0,>=3.8.0
19
22
  Provides-Extra: test
23
+ Requires-Dist: wheel==0.36.2; extra == "test"
24
+ Requires-Dist: types-python-dateutil==2.8.2; extra == "test"
25
+ Requires-Dist: types-PyYAML==5.4.3; extra == "test"
26
+ Requires-Dist: pytest-ordering==0.6; extra == "test"
27
+ Requires-Dist: pylint==2.12.*; extra == "test"
28
+ Requires-Dist: sseclient-py<1.9.0,>=1.7.0; extra == "test"
29
+ Requires-Dist: Werkzeug==2.0.1; extra == "test"
30
+ Requires-Dist: Django==3.2.4; extra == "test"
31
+ Requires-Dist: types-requests==2.25.0; extra == "test"
32
+ Requires-Dist: pytest-cov==2.12.1; extra == "test"
33
+ Requires-Dist: aioresponses==0.7.*; extra == "test"
34
+ Requires-Dist: pytest-asyncio==0.21.*; extra == "test"
35
+ Requires-Dist: twine==3.4.1; extra == "test"
36
+ Requires-Dist: aiohttp<4.0.0,>=3.8.0; extra == "test"
37
+ Requires-Dist: requests<3.0.0,>=2.25; extra == "test"
38
+ Requires-Dist: flake8==4.0.1; extra == "test"
39
+ Requires-Dist: pytest-pythonpath==0.7.3; extra == "test"
40
+ Requires-Dist: mypy==0.991; extra == "test"
41
+ Requires-Dist: pytest-django==4.4.0; extra == "test"
42
+ Requires-Dist: freezegun==1.1.0; extra == "test"
43
+ Requires-Dist: pyyaml<6.1.0,>=5.4.0; extra == "test"
44
+ Dynamic: author
45
+ Dynamic: author-email
46
+ Dynamic: classifier
47
+ Dynamic: description
48
+ Dynamic: description-content-type
49
+ Dynamic: home-page
50
+ Dynamic: license
51
+ Dynamic: provides-extra
52
+ Dynamic: requires-dist
53
+ Dynamic: requires-python
54
+ Dynamic: summary
20
55
 
21
56
 
22
57
  # Kameleoon Python SDK
@@ -241,5 +276,3 @@ visitor_code = client.get_visitor_code(request.COOKIES)
241
276
  goal_id = 83023
242
277
  client.track_conversion(visitor_code, goal_id)
243
278
  ```
244
-
245
-
@@ -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
- aioresponses==0.7.*
7
+ wheel==0.36.2
8
+ types-python-dateutil==2.8.2
8
9
  types-PyYAML==5.4.3
10
+ pytest-ordering==0.6
11
+ pylint==2.12.*
9
12
  sseclient-py<1.9.0,>=1.7.0
13
+ Werkzeug==2.0.1
10
14
  Django==3.2.4
11
- pytest-ordering==0.6
12
- mypy==0.991
13
- pytest-asyncio==0.21.*
14
- types-python-dateutil==2.8.2
15
+ types-requests==2.25.0
15
16
  pytest-cov==2.12.1
16
- pytest-django==4.4.0
17
+ aioresponses==0.7.*
18
+ pytest-asyncio==0.21.*
17
19
  twine==3.4.1
18
- pyyaml<6.1.0,>=5.4.0
19
- wheel==0.36.2
20
- pytest-pythonpath==0.7.3
21
- requests<3.0.0,>=2.25
22
- pylint==2.12.*
23
- types-requests==2.25.0
24
20
  aiohttp<4.0.0,>=3.8.0
21
+ requests<3.0.0,>=2.25
25
22
  flake8==4.0.1
26
- Werkzeug==2.0.1
23
+ pytest-pythonpath==0.7.3
24
+ mypy==0.991
25
+ pytest-django==4.4.0
27
26
  freezegun==1.1.0
27
+ pyyaml<6.1.0,>=5.4.0