splitio-client 10.3.0rc2__tar.gz → 10.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/PKG-INFO +2 -2
  2. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/setup.py +2 -2
  3. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/api/impressions.py +25 -9
  4. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/client/client.py +235 -139
  5. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/client/config.py +38 -2
  6. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/client/factory.py +24 -13
  7. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/client/input_validator.py +59 -13
  8. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/client/util.py +1 -1
  9. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/engine/evaluator.py +40 -11
  10. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/engine/impressions/adapters.py +16 -0
  11. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/engine/impressions/strategies.py +16 -2
  12. splitio_client-10.5.0/splitio/models/fallback_config.py +81 -0
  13. splitio_client-10.5.0/splitio/models/fallback_treatment.py +34 -0
  14. splitio_client-10.5.0/splitio/models/grammar/matchers/prerequisites.py +38 -0
  15. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/grammar/matchers/rule_based_segment.py +4 -6
  16. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/impressions.py +7 -1
  17. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/splits.py +45 -5
  18. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/push/splitsse.py +1 -1
  19. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/push/sse.py +1 -1
  20. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/push/workers.py +29 -14
  21. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/storage/adapters/redis.py +0 -2
  22. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/storage/pluggable.py +1 -0
  23. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/storage/redis.py +1 -0
  24. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/sync/split.py +15 -5
  25. splitio_client-10.5.0/splitio/version.py +1 -0
  26. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio_client.egg-info/PKG-INFO +2 -2
  27. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio_client.egg-info/SOURCES.txt +3 -0
  28. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio_client.egg-info/requires.txt +2 -2
  29. splitio_client-10.3.0rc2/splitio/version.py +0 -1
  30. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/LICENSE.txt +0 -0
  31. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/README.md +0 -0
  32. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/setup.cfg +0 -0
  33. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/__init__.py +0 -0
  34. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/api/__init__.py +0 -0
  35. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/api/auth.py +0 -0
  36. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/api/client.py +0 -0
  37. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/api/commons.py +0 -0
  38. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/api/events.py +0 -0
  39. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/api/segments.py +0 -0
  40. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/api/splits.py +0 -0
  41. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/api/telemetry.py +0 -0
  42. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/client/__init__.py +0 -0
  43. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/client/key.py +0 -0
  44. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/client/listener.py +0 -0
  45. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/client/localhost.py +0 -0
  46. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/client/manager.py +0 -0
  47. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/engine/__init__.py +0 -0
  48. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/engine/cache/__init__.py +0 -0
  49. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/engine/cache/lru.py +0 -0
  50. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/engine/filters.py +0 -0
  51. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/engine/hashfns/__init__.py +0 -0
  52. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/engine/hashfns/legacy.py +0 -0
  53. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/engine/hashfns/murmur3py.py +0 -0
  54. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/engine/impressions/__init__.py +0 -0
  55. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/engine/impressions/impressions.py +0 -0
  56. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/engine/impressions/manager.py +0 -0
  57. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/engine/impressions/unique_keys_tracker.py +0 -0
  58. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/engine/splitters.py +0 -0
  59. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/engine/telemetry.py +0 -0
  60. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/exceptions.py +0 -0
  61. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/factories.py +0 -0
  62. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/impressions.py +0 -0
  63. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/key.py +0 -0
  64. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/__init__.py +0 -0
  65. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/datatypes.py +0 -0
  66. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/events.py +0 -0
  67. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/grammar/__init__.py +0 -0
  68. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/grammar/condition.py +0 -0
  69. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/grammar/matchers/__init__.py +0 -0
  70. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/grammar/matchers/base.py +0 -0
  71. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/grammar/matchers/keys.py +0 -0
  72. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/grammar/matchers/misc.py +0 -0
  73. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/grammar/matchers/numeric.py +0 -0
  74. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/grammar/matchers/semver.py +0 -0
  75. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/grammar/matchers/sets.py +0 -0
  76. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/grammar/matchers/string.py +0 -0
  77. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/grammar/matchers/utils/__init__.py +0 -0
  78. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/grammar/matchers/utils/utils.py +0 -0
  79. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/grammar/partitions.py +0 -0
  80. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/notification.py +0 -0
  81. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/rule_based_segments.py +0 -0
  82. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/segments.py +0 -0
  83. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/telemetry.py +0 -0
  84. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/models/token.py +0 -0
  85. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/optional/__init__.py +0 -0
  86. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/optional/loaders.py +0 -0
  87. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/push/__init__.py +0 -0
  88. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/push/manager.py +0 -0
  89. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/push/parser.py +0 -0
  90. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/push/processor.py +0 -0
  91. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/push/status_tracker.py +0 -0
  92. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/recorder/__init__.py +0 -0
  93. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/recorder/recorder.py +0 -0
  94. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/spec.py +0 -0
  95. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/storage/__init__.py +0 -0
  96. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/storage/adapters/__init__.py +0 -0
  97. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/storage/adapters/cache_trait.py +0 -0
  98. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/storage/adapters/util.py +0 -0
  99. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/storage/inmemmory.py +0 -0
  100. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/sync/__init__.py +0 -0
  101. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/sync/event.py +0 -0
  102. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/sync/impression.py +0 -0
  103. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/sync/manager.py +0 -0
  104. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/sync/segment.py +0 -0
  105. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/sync/synchronizer.py +0 -0
  106. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/sync/telemetry.py +0 -0
  107. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/sync/unique_keys.py +0 -0
  108. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/sync/util.py +0 -0
  109. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/tasks/__init__.py +0 -0
  110. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/tasks/events_sync.py +0 -0
  111. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/tasks/impressions_sync.py +0 -0
  112. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/tasks/segment_sync.py +0 -0
  113. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/tasks/split_sync.py +0 -0
  114. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/tasks/telemetry_sync.py +0 -0
  115. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/tasks/unique_keys_sync.py +0 -0
  116. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/tasks/util/__init__.py +0 -0
  117. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/tasks/util/asynctask.py +0 -0
  118. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/tasks/util/workerpool.py +0 -0
  119. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/util/__init__.py +0 -0
  120. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/util/backoff.py +0 -0
  121. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/util/decorators.py +0 -0
  122. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/util/storage_helper.py +0 -0
  123. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/util/threadutil.py +0 -0
  124. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio/util/time.py +0 -0
  125. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio_client.egg-info/dependency_links.txt +0 -0
  126. {splitio_client-10.3.0rc2 → splitio_client-10.5.0}/splitio_client.egg-info/top_level.txt +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: splitio_client
3
- Version: 10.3.0rc2
3
+ Version: 10.5.0
4
4
  Summary: Split.io Python Client
5
5
  Home-page: https://github.com/splitio/python-client
6
- Download-URL: https://github.com/splitio/python-client/tarball/10.3.0-rc2
6
+ Download-URL: https://github.com/splitio/python-client/tarball/10.5.0
7
7
  Author: Patricio Echague, Sebastian Arrubia
8
8
  Author-email: pato@split.io, sebastian@split.io
9
9
  License: Apache License 2.0
@@ -18,7 +18,7 @@ TESTS_REQUIRES = [
18
18
  'aiohttp>=3.8.4',
19
19
  'aiofiles>=23.1.0',
20
20
  'requests-kerberos>=0.15.0',
21
- 'urllib3==2.2.0'
21
+ 'urllib3==2.0.7'
22
22
  ]
23
23
 
24
24
  INSTALL_REQUIRES = [
@@ -45,7 +45,7 @@ setup(
45
45
  tests_require=TESTS_REQUIRES,
46
46
  extras_require={
47
47
  'test': TESTS_REQUIRES,
48
- 'redis': ['redis>=2.10.5'],
48
+ 'redis': ['redis>=2.10.5,<7.0.0'],
49
49
  'uwsgi': ['uwsgi>=2.0.0'],
50
50
  'cpphash': ['mmh3cffi==0.2.1'],
51
51
  'asyncio': ['aiohttp>=3.8.4', 'aiofiles>=23.1.0'],
@@ -30,15 +30,7 @@ class ImpressionsAPIBase(object): # pylint: disable=too-few-public-methods
30
30
  {
31
31
  'f': test_name,
32
32
  'i': [
33
- {
34
- 'k': impression.matching_key,
35
- 't': impression.treatment,
36
- 'm': impression.time,
37
- 'c': impression.change_number,
38
- 'r': impression.label,
39
- 'b': impression.bucketing_key,
40
- 'pt': impression.previous_time
41
- }
33
+ ImpressionsAPIBase._filter_out_null_prop(impression)
42
34
  for impression in imps
43
35
  ]
44
36
  }
@@ -48,6 +40,30 @@ class ImpressionsAPIBase(object): # pylint: disable=too-few-public-methods
48
40
  )
49
41
  ]
50
42
 
43
+ @staticmethod
44
+ def _filter_out_null_prop(impression):
45
+ if impression.properties == None:
46
+ return {
47
+ 'k': impression.matching_key,
48
+ 't': impression.treatment,
49
+ 'm': impression.time,
50
+ 'c': impression.change_number,
51
+ 'r': impression.label,
52
+ 'b': impression.bucketing_key,
53
+ 'pt': impression.previous_time
54
+ }
55
+
56
+ return {
57
+ 'k': impression.matching_key,
58
+ 't': impression.treatment,
59
+ 'm': impression.time,
60
+ 'c': impression.change_number,
61
+ 'r': impression.label,
62
+ 'b': impression.bucketing_key,
63
+ 'pt': impression.previous_time,
64
+ 'properties': impression.properties
65
+ }
66
+
51
67
  @staticmethod
52
68
  def _build_counters(counters):
53
69
  """