oai-statsig-python-core 0.32.0rc7__tar.gz → 0.34.0rc4__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 (493) hide show
  1. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/Cargo.lock +24 -42
  2. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/Cargo.toml +1 -1
  3. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/PKG-INFO +9 -4
  4. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/py_src/statsig_python_core/statsig_python_core.pyi +2 -2
  5. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/py_src/statsig_python_core/typed_config.py +1 -1
  6. {oai_statsig_python_core-0.32.0rc7/statsig-pyo3 → oai_statsig_python_core-0.34.0rc4/statsig-grpc}/README.md +8 -3
  7. {oai_statsig_python_core-0.32.0rc7/statsig-grpc → oai_statsig_python_core-0.34.0rc4/statsig-pyo3}/README.md +8 -3
  8. oai_statsig_python_core-0.34.0rc4/statsig-pyo3/requirements-typing.txt +3 -0
  9. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/src/statsig_options_py.rs +1 -1
  10. oai_statsig_python_core-0.34.0rc4/statsig-pyo3/tests/test_id_list_updates.py +211 -0
  11. oai_statsig_python_core-0.34.0rc4/statsig-pyo3/tests/test_output_logger_gc.py +75 -0
  12. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_typed_config.py +42 -1
  13. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/Cargo.toml +8 -3
  14. oai_statsig_python_core-0.34.0rc4/statsig-rust/benches/evaluation/case_sensitive_target_bench.rs +146 -0
  15. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/__tests__/statsig_options_tests.rs +3 -3
  16. oai_statsig_python_core-0.34.0rc4/statsig-rust/src/evaluation/__tests__/array_optimization_bench.rs +966 -0
  17. oai_statsig_python_core-0.34.0rc4/statsig-rust/src/evaluation/__tests__/array_optimization_tests.rs +1069 -0
  18. oai_statsig_python_core-0.34.0rc4/statsig-rust/src/evaluation/__tests__/case_sensitive_target_spellings_tests.rs +549 -0
  19. oai_statsig_python_core-0.34.0rc4/statsig-rust/src/evaluation/__tests__/mod.rs +5 -0
  20. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/cmab_evaluator.rs +6 -6
  21. oai_statsig_python_core-0.34.0rc4/statsig-rust/src/evaluation/comparisons/compare_arrays.rs +332 -0
  22. oai_statsig_python_core-0.34.0rc4/statsig-rust/src/evaluation/comparisons/compare_case_sensitive_strings_in_array.rs +32 -0
  23. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/comparisons/mod.rs +6 -0
  24. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/evaluator.rs +5 -6
  25. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/evaluator_value.rs +170 -12
  26. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging_adapter/statsig_local_file_event_logging_adapter.rs +2 -2
  27. oai_statsig_python_core-0.34.0rc4/statsig-rust/src/id_lists_adapter/compact_id_list_tests.rs +182 -0
  28. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/id_lists_adapter/id_list.rs +16 -19
  29. oai_statsig_python_core-0.34.0rc4/statsig-rust/src/id_lists_adapter/id_list_cursor_tests.rs +227 -0
  30. oai_statsig_python_core-0.34.0rc4/statsig-rust/src/id_lists_adapter/id_list_fallback_range_tests.rs +252 -0
  31. oai_statsig_python_core-0.34.0rc4/statsig-rust/src/id_lists_adapter/id_list_ids.rs +80 -0
  32. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/id_lists_adapter/id_list_propagation.rs +2 -1
  33. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/id_lists_adapter/id_list_propagation_tests.rs +5 -4
  34. oai_statsig_python_core-0.34.0rc4/statsig-rust/src/id_lists_adapter/id_lists_memory_benchmark.rs +215 -0
  35. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/id_lists_adapter/mod.rs +7 -0
  36. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/id_lists_adapter/statsig_http_id_lists_adapter.rs +121 -19
  37. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/interned_values/interned_store.rs +42 -6
  38. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/networking/__tests__/net_provider_reqwest_http2_tests.rs +13 -8
  39. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/networking/__tests__/network_client_http2_tests.rs +3 -3
  40. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/networking/http2.rs +1 -1
  41. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/output_logger.rs +131 -46
  42. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/scoped_evaluation_request.rs +7 -7
  43. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/sdk_diagnostics/diagnostics.rs +3 -3
  44. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/spec_store.rs +21 -6
  45. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_adapter/__tests__/remote_config_value_hydrator_tests.rs +67 -16
  46. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_adapter/remote_config_value_hydrator/mod.rs +2 -1
  47. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_adapter/remote_config_value_hydrator/protobuf.rs +236 -14
  48. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_response/proto_specs.rs +220 -61
  49. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_response/proto_stream_reader.rs +7 -5
  50. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_response/spec_types.rs +26 -8
  51. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/statsig_options.rs +2 -2
  52. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/user/random_user_id.rs +13 -15
  53. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/user/user_value.rs +9 -0
  54. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/utils/mod.rs +2 -0
  55. oai_statsig_python_core-0.34.0rc4/statsig-rust/src/utils/random.rs +21 -0
  56. oai_statsig_python_core-0.34.0rc4/statsig-rust/tests/fork_random.rs +52 -0
  57. oai_statsig_python_core-0.34.0rc4/statsig-rust/tests/id_list_storage_api_tests.rs +26 -0
  58. oai_statsig_python_core-0.34.0rc4/statsig-rust/tests/output_logger_reentrancy_tests.rs +292 -0
  59. oai_statsig_python_core-0.34.0rc4/statsig-rust/tests/verified_remote_value_reuse_tests.rs +855 -0
  60. oai_statsig_python_core-0.32.0rc7/statsig-pyo3/requirements-typing.txt +0 -3
  61. oai_statsig_python_core-0.32.0rc7/statsig-rust/src/evaluation/__tests__/mod.rs +0 -2
  62. oai_statsig_python_core-0.32.0rc7/statsig-rust/src/evaluation/comparisons/compare_arrays.rs +0 -126
  63. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/py_src/statsig_python_core/__init__.py +0 -0
  64. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/py_src/statsig_python_core/_frozen_json.py +0 -0
  65. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/py_src/statsig_python_core/data_store.py +0 -0
  66. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/py_src/statsig_python_core/error_boundary.py +0 -0
  67. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/py_src/statsig_python_core/evaluation_cache.py +0 -0
  68. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/py_src/statsig_python_core/event_logging_adapter.py +0 -0
  69. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/py_src/statsig_python_core/observability_client.py +0 -0
  70. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/py_src/statsig_python_core/output_logger_provider.py +0 -0
  71. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/py_src/statsig_python_core/persistent_storage.py +0 -0
  72. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/py_src/statsig_python_core/py.typed +0 -0
  73. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/py_src/statsig_python_core/requirements.txt +0 -0
  74. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/py_src/statsig_python_core/statsig.py +0 -0
  75. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/py_src/statsig_python_core/statsig_types.py +0 -0
  76. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/pyproject.toml +0 -0
  77. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-grpc/Cargo.toml +0 -0
  78. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-grpc/build.rs +0 -0
  79. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-grpc/src/lib.rs +0 -0
  80. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-grpc/src/mock_forward_proxy.rs +0 -0
  81. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-grpc/src/protos/statsig_forward_proxy.proto +0 -0
  82. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-grpc/src/statsig_forward_proxy.rs +0 -0
  83. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-grpc/src/statsig_grpc_client.rs +0 -0
  84. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-grpc/src/statsig_grpc_err.rs +0 -0
  85. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/.github/workflows/CI.yml +0 -0
  86. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/.gitignore +0 -0
  87. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/Cargo.toml +0 -0
  88. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/benchmarks/dynamic_config_value_cache_benchmark.py +0 -0
  89. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/benchmarks/native_context_allocations.c +0 -0
  90. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/benchmarks/native_context_benchmark.py +0 -0
  91. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/benchmarks/summarize_native_context_allocations.py +0 -0
  92. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/benchmarks/user_creation_benchmark.py +0 -0
  93. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/benchmarks/user_memory_benchmark.py +0 -0
  94. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/benchmarks/wrapper_native_context_benchmark.py +0 -0
  95. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/src/bin/stub_gen.rs +0 -0
  96. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/src/data_store_base_py.rs +0 -0
  97. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/src/event_logging_adapter_base_py.rs +0 -0
  98. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/src/interned_store_py.rs +0 -0
  99. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/src/lib.rs +0 -0
  100. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/src/observability_client_base_py.rs +0 -0
  101. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/src/output_logger_provider_base_py.rs +0 -0
  102. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/src/pyo_utils.rs +0 -0
  103. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/src/raw_evaluation_compat_py.rs +0 -0
  104. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/src/safe_gil.rs +0 -0
  105. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/src/statsig_base_py.rs +0 -0
  106. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/src/statsig_metadata_py.rs +0 -0
  107. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/src/statsig_persistent_storage_override_adapter_py.rs +0 -0
  108. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/src/statsig_types_py.rs +0 -0
  109. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/src/statsig_user_context_py.rs +0 -0
  110. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/src/statsig_user_py.rs +0 -0
  111. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/src/typed_config_py/tests.rs +0 -0
  112. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/src/typed_config_py.rs +0 -0
  113. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/src/unit_id_py.rs +0 -0
  114. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/src/valid_primitives_py.rs +0 -0
  115. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/event_listener_reentrancy_subprocess.py +0 -0
  116. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/fork_callback_runner.py +0 -0
  117. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/fork_runner.py +0 -0
  118. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/mock_output_logger.py +0 -0
  119. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/mock_scrapi.py +0 -0
  120. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/profile_util.py +0 -0
  121. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/shutdown_sub_proc.py +0 -0
  122. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_bulk_evaluate_gcir_parity.py +0 -0
  123. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_data_store.py +0 -0
  124. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_error_boundary.py +0 -0
  125. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_evaluation_cache.py +0 -0
  126. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_evaluation_cache_integration.py +0 -0
  127. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_evaluation_cache_pyo3.py +0 -0
  128. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_event_logging_adapter.py +0 -0
  129. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_experiment_group_targeting_exposures.py +0 -0
  130. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_experiment_serialization.py +0 -0
  131. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_exposure_logging.py +0 -0
  132. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_feature_gate_parts.py +0 -0
  133. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_feature_gate_serialization.py +0 -0
  134. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_fork_callback.py +0 -0
  135. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_forking.py +0 -0
  136. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_frozen_json.py +0 -0
  137. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_get_dynamic_config.py +0 -0
  138. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_initialize_with_details.py +0 -0
  139. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_interned_store_preload.py +0 -0
  140. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_layer_param_exposure_sampling.py +0 -0
  141. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_layer_serialization.py +0 -0
  142. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_native_context_allocations.py +0 -0
  143. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_native_context_benchmark.py +0 -0
  144. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_native_user_context.py +0 -0
  145. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_observability_client.py +0 -0
  146. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_output_logger_provider.py +0 -0
  147. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_override_adapter.py +0 -0
  148. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_partial_rollout_boost.py +0 -0
  149. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_performance.py +0 -0
  150. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_sdk_event_emitter.py +0 -0
  151. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_sec_expo_as_primary.py +0 -0
  152. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_shared_statsig.py +0 -0
  153. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_shutdown.py +0 -0
  154. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_statsig.py +0 -0
  155. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_statsig_options.py +0 -0
  156. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_statsig_user.py +0 -0
  157. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_statsig_user_json_serialization.py +0 -0
  158. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_statsig_user_none_fields.py +0 -0
  159. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_statsig_user_pickle.py +0 -0
  160. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_typed_config_native.py +0 -0
  161. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/test_user_exposure_e2e.py +0 -0
  162. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/tests/utils.py +0 -0
  163. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-pyo3/typing_tests/typed_config.py +0 -0
  164. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/build.rs +0 -0
  165. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/resources/ip_supalite.table +0 -0
  166. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/resources/ua_parser_regex.yaml +0 -0
  167. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/resources/ua_parser_regex_lite.yaml +0 -0
  168. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/__tests__/interned_string_tests.rs +0 -0
  169. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/__tests__/mod.rs +0 -0
  170. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/__tests__/spec_store_tests.rs +0 -0
  171. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/__tests__/user_value_tests.rs +0 -0
  172. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/compression/compression_helper.rs +0 -0
  173. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/compression/mod.rs +0 -0
  174. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/console_capture/console_capture_handler.rs +0 -0
  175. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/console_capture/console_capture_instances.rs +0 -0
  176. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/console_capture/console_capture_options.rs +0 -0
  177. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/console_capture/console_log_line_levels.rs +0 -0
  178. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/console_capture/mod.rs +0 -0
  179. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/data_store_interface.rs +0 -0
  180. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/dcs_str.rs +0 -0
  181. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/__tests__/dynamic_returnable_tests.rs +0 -0
  182. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/__tests__/rkyv_value_tests.rs +0 -0
  183. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/comparisons/compare_numbers.rs +0 -0
  184. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/comparisons/compare_str_with_regex.rs +0 -0
  185. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/comparisons/compare_strings_in_array.rs +0 -0
  186. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/comparisons/compare_time.rs +0 -0
  187. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/comparisons/compare_versions.rs +0 -0
  188. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/country_lookup.rs +0 -0
  189. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/dynamic_returnable.rs +0 -0
  190. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/dynamic_string.rs +0 -0
  191. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/dynamic_value.rs +0 -0
  192. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/evaluation_data.rs +0 -0
  193. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/evaluation_details.rs +0 -0
  194. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/evaluation_types.rs +0 -0
  195. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/evaluation_types_initialize_v2.rs +0 -0
  196. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/evaluation_types_v2.rs +0 -0
  197. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/evaluator_context.rs +0 -0
  198. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/evaluator_result.rs +0 -0
  199. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/get_unit_id.rs +0 -0
  200. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/mod.rs +0 -0
  201. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/rkyv_value.rs +0 -0
  202. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/secondary_exposure_key.rs +0 -0
  203. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/user_agent_parsing/first_party_ua_parser.rs +0 -0
  204. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/user_agent_parsing/mod.rs +0 -0
  205. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/user_agent_parsing/statsig_uaparser/__tests__/mod.rs +0 -0
  206. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/user_agent_parsing/statsig_uaparser/__tests__/test_helpers.rs +0 -0
  207. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/user_agent_parsing/statsig_uaparser/__tests__/test_tokenizer.rs +0 -0
  208. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/user_agent_parsing/statsig_uaparser/__tests__/test_tokenizer_performance.rs +0 -0
  209. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/user_agent_parsing/statsig_uaparser/__tests__/test_ua_parser_browser.rs +0 -0
  210. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/user_agent_parsing/statsig_uaparser/__tests__/test_ua_parser_os.rs +0 -0
  211. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/user_agent_parsing/statsig_uaparser/mod.rs +0 -0
  212. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/user_agent_parsing/statsig_uaparser/tokenizer.rs +0 -0
  213. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/user_agent_parsing/statsig_uaparser/ua_parser.rs +0 -0
  214. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/user_agent_parsing/statsig_uaparser/window_iter.rs +0 -0
  215. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/user_agent_parsing/third_party_ua_parser.rs +0 -0
  216. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation/user_agent_parsing/ua_parser.rs +0 -0
  217. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/evaluation_fixture_client.rs +0 -0
  218. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_emitter/statsig_event_emitter_tests.rs +0 -0
  219. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging/delayed_exposure_store.rs +0 -0
  220. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging/event_logger.rs +0 -0
  221. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging/event_logger_constants.rs +0 -0
  222. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging/event_logger_ops_stats.rs +0 -0
  223. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging/event_queue/batch.rs +0 -0
  224. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging/event_queue/mod.rs +0 -0
  225. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging/event_queue/queue.rs +0 -0
  226. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging/event_queue/queued_config_expo.rs +0 -0
  227. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging/event_queue/queued_event.rs +0 -0
  228. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging/event_queue/queued_experiment_expo.rs +0 -0
  229. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging/event_queue/queued_expo.rs +0 -0
  230. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging/event_queue/queued_gate_expo.rs +0 -0
  231. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging/event_queue/queued_layer_param_expo.rs +0 -0
  232. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging/event_queue/queued_passthrough.rs +0 -0
  233. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging/event_queue/queued_secondary_expo.rs +0 -0
  234. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging/exposure_sampling.rs +0 -0
  235. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging/exposure_utils.rs +0 -0
  236. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging/flush_interval.rs +0 -0
  237. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging/flush_type.rs +0 -0
  238. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging/mod.rs +0 -0
  239. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging/sec_expo_as_primary_experiment.rs +0 -0
  240. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging/statsig_event.rs +0 -0
  241. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging/statsig_event_internal.rs +0 -0
  242. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging_adapter/event_logging_adapter_trait.rs +0 -0
  243. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging_adapter/log_event_payload.rs +0 -0
  244. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging_adapter/mod.rs +0 -0
  245. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/event_logging_adapter/statsig_http_event_logging_adapter.rs +0 -0
  246. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/gcir/dynamic_configs_processor.rs +0 -0
  247. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/gcir/evaluation_plan.rs +0 -0
  248. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/gcir/feature_gates_processor.rs +0 -0
  249. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/gcir/gcir_formatter.rs +0 -0
  250. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/gcir/gcir_options.rs +0 -0
  251. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/gcir/gcir_process_iter.rs +0 -0
  252. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/gcir/layer_configs_processor.rs +0 -0
  253. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/gcir/mod.rs +0 -0
  254. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/gcir/param_stores_processor.rs +0 -0
  255. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/gcir/secondary_exposure_hashing.rs +0 -0
  256. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/gcir/stringify_sec_exposures.rs +0 -0
  257. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/gcir/target_app_id_utils.rs +0 -0
  258. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/gcir/timing.rs +0 -0
  259. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/global_configs.rs +0 -0
  260. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/hashing/ahash.rs +0 -0
  261. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/hashing/djb2.rs +0 -0
  262. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/hashing/hash_util.rs +0 -0
  263. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/hashing/memo_sha_256.rs +0 -0
  264. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/hashing/mod.rs +0 -0
  265. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/id_lists_adapter/id_list_download_concurrency_tests.rs +0 -0
  266. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/id_lists_adapter/id_lists_adapter_trait.rs +0 -0
  267. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/id_lists_adapter/id_lists_refresh_tests.rs +0 -0
  268. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/init_details.rs +0 -0
  269. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/initialize_evaluations_response.rs +0 -0
  270. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/initialize_response.rs +0 -0
  271. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/initialize_v2_response.rs +0 -0
  272. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/instance_registry.rs +0 -0
  273. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/interned_string.rs +0 -0
  274. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/interned_values/__tests__/interned_store_eval_value_tests.rs +0 -0
  275. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/interned_values/__tests__/interned_store_mmap_fetch_tests.rs +0 -0
  276. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/interned_values/__tests__/interned_store_mmap_v2_tests.rs +0 -0
  277. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/interned_values/__tests__/interned_store_preload_remote_tests.rs +0 -0
  278. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/interned_values/__tests__/interned_store_returnable_tests.rs +0 -0
  279. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/interned_values/__tests__/interned_store_string_tests.rs +0 -0
  280. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/interned_values/__tests__/mod.rs +0 -0
  281. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/interned_values/interned_store/mmap_artifact.rs +0 -0
  282. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/interned_values/interned_store/mmap_manifest.rs +0 -0
  283. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/interned_values/interned_store/mmap_reader/materialize.rs +0 -0
  284. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/interned_values/interned_store/mmap_reader/memory.rs +0 -0
  285. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/interned_values/interned_store/mmap_reader.rs +0 -0
  286. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/interned_values/interned_store/mmap_writer.rs +0 -0
  287. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/interned_values/mmap_data_v2/evaluator_value.rs +0 -0
  288. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/interned_values/mmap_data_v2/spec.rs +0 -0
  289. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/interned_values/mmap_data_v2/spec_content_hash.rs +0 -0
  290. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/interned_values/mmap_data_v2.rs +0 -0
  291. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/interned_values/mmap_sync.rs +0 -0
  292. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/interned_values/mod.rs +0 -0
  293. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/lib.rs +0 -0
  294. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/logging_utils.rs +0 -0
  295. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/macros.rs +0 -0
  296. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/networking/__tests__/http2_test_helpers.rs +0 -0
  297. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/networking/__tests__/mod.rs +0 -0
  298. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/networking/__tests__/network_client_latency_tests.rs +0 -0
  299. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/networking/__tests__/response_data_tests.rs +0 -0
  300. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/networking/http_types.rs +0 -0
  301. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/networking/mod.rs +0 -0
  302. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/networking/network_client.rs +0 -0
  303. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/networking/network_error.rs +0 -0
  304. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/networking/providers/mod.rs +0 -0
  305. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/networking/providers/net_provider_global.rs +0 -0
  306. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/networking/providers/net_provider_noop.rs +0 -0
  307. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/networking/providers/net_provider_reqwest.rs +0 -0
  308. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/networking/proxy_config.rs +0 -0
  309. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/networking/statsig_url.rs +0 -0
  310. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/observability/console_capture_observer.rs +0 -0
  311. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/observability/diagnostics_observer.rs +0 -0
  312. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/observability/mod.rs +0 -0
  313. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/observability/observability_client_adapter.rs +0 -0
  314. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/observability/ops_stats.rs +0 -0
  315. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/observability/sdk_errors_observer.rs +0 -0
  316. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/output_policy.rs +0 -0
  317. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/override_adapter/mod.rs +0 -0
  318. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/override_adapter/override_adapter_trait.rs +0 -0
  319. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/override_adapter/statsig_local_override_adapter.rs +0 -0
  320. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/persistent_storage/__tests__/mod.rs +0 -0
  321. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/persistent_storage/__tests__/sticky_values_serialization_tests.rs +0 -0
  322. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/persistent_storage/mod.rs +0 -0
  323. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/persistent_storage/persistent_storage_trait.rs +0 -0
  324. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/persistent_storage/persistent_values_manager.rs +0 -0
  325. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/scoped_id_list_membership_service.rs +0 -0
  326. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/scoped_snapshot_registry.rs +0 -0
  327. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/sdk_diagnostics/diagnostics_utils.rs +0 -0
  328. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/sdk_diagnostics/marker.rs +0 -0
  329. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/sdk_diagnostics/mod.rs +0 -0
  330. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/sdk_event_emitter/event_emitter.rs +0 -0
  331. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/sdk_event_emitter/event_emitter_tests.rs +0 -0
  332. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/sdk_event_emitter/event_types.rs +0 -0
  333. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/sdk_event_emitter/mod.rs +0 -0
  334. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/snapshot_evaluation_session.rs +0 -0
  335. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_adapter/__tests__/hydration_phase_tests.rs +0 -0
  336. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_adapter/config_spec_background_sync_metrics.rs +0 -0
  337. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_adapter/mod.rs +0 -0
  338. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_adapter/remote_config_value_hydrator/download.rs +0 -0
  339. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_adapter/remote_config_value_hydrator/errors.rs +0 -0
  340. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_adapter/remote_config_value_hydrator/json.rs +0 -0
  341. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_adapter/remote_config_value_hydrator/metadata.rs +0 -0
  342. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_adapter/remote_config_value_hydrator/telemetry.rs +0 -0
  343. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_adapter/response_format.rs +0 -0
  344. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_adapter/scoped_source_specs_adapter.rs +0 -0
  345. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_adapter/specs_adapter_trait.rs +0 -0
  346. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_adapter/statsig_bootstrap_specs_adapter.rs +0 -0
  347. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_adapter/statsig_customized_specs_adapter.rs +0 -0
  348. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_adapter/statsig_data_store_specs_adapter.rs +0 -0
  349. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_adapter/statsig_grpc_specs_adapter.rs +0 -0
  350. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_adapter/statsig_http_specs_adapter.rs +0 -0
  351. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_adapter/statsig_local_file_specs_adapter.rs +0 -0
  352. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_response/__tests__/mod.rs +0 -0
  353. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_response/__tests__/proto_specs_syncing_tests.rs +0 -0
  354. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_response/__tests__/proto_specs_tests.rs +0 -0
  355. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_response/__tests__/proto_specs_unknown_tests.rs +0 -0
  356. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_response/__tests__/proto_specs_vs_json_tests.rs +0 -0
  357. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_response/__tests__/proto_stream_reader_tests.rs +0 -0
  358. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_response/cmab_types.rs +0 -0
  359. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_response/explicit_params.rs +0 -0
  360. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_response/mod.rs +0 -0
  361. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_response/param_store_types.rs +0 -0
  362. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_response/parse_options.rs +0 -0
  363. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_response/proto_compression.rs +0 -0
  364. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_response/proto_specs/parser.rs +0 -0
  365. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_response/specs_hash_map.rs +0 -0
  366. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/specs_response/statsig_config_specs.rs +0 -0
  367. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/statsig/typed_config_tests.rs +0 -0
  368. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/statsig.rs +0 -0
  369. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/statsig_core_api_options.rs +0 -0
  370. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/statsig_err.rs +0 -0
  371. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/statsig_global.rs +0 -0
  372. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/statsig_metadata.rs +0 -0
  373. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/statsig_runtime.rs +0 -0
  374. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/statsig_type_factories.rs +0 -0
  375. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/statsig_types.rs +0 -0
  376. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/statsig_types_raw.rs +0 -0
  377. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/typed_config/tests.rs +0 -0
  378. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/typed_config.rs +0 -0
  379. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/user/fast_statsig_user.rs +0 -0
  380. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/user/into_optional.rs +0 -0
  381. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/user/mod.rs +0 -0
  382. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/user/prepared_user.rs +0 -0
  383. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/user/statsig_user.rs +0 -0
  384. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/user/statsig_user_builder.rs +0 -0
  385. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/user/statsig_user_internal.rs +0 -0
  386. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/user/statsig_user_loggable.rs +0 -0
  387. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/user/unit_id.rs +0 -0
  388. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/user/user_data.rs +0 -0
  389. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/src/value_parsing.rs +0 -0
  390. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/check_gate_tests.rs +0 -0
  391. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/customized_specs_adapter_tests.rs +0 -0
  392. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/big_number_dcs.json +0 -0
  393. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/check_gate_perf_dcs.json +0 -0
  394. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/company_id_list +0 -0
  395. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/dcs_error.json +0 -0
  396. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/dcs_missing_gates.json +0 -0
  397. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/dcs_non_case_sensitive.json +0 -0
  398. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/dcs_user_agent_versions.json +0 -0
  399. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/dcs_with_analytical_exposure_sampling.json +0 -0
  400. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/dcs_with_checksum.json +0 -0
  401. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/dcs_with_sampling.json +0 -0
  402. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/dcs_with_sdk_configs.json +0 -0
  403. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/demo_proj_dcs.json +0 -0
  404. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/demo_proj_dcs.pb.br +0 -0
  405. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/eval_proj_dcs.json +0 -0
  406. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/eval_proj_dcs.pb.br +0 -0
  407. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/experiment_group_condition.pb.br +0 -0
  408. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/get_id_lists.json +0 -0
  409. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/perf_proj_dcs.json +0 -0
  410. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/perf_proj_dcs.pb.br +0 -0
  411. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/shared_dict_dict_only.json +0 -0
  412. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/shared_dict_original_dcs.json +0 -0
  413. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/shared_dict_response_uncompressed.json +0 -0
  414. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/shared_dict_response_with_dict.json +0 -0
  415. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/shared_dict_response_without_dict.json +0 -0
  416. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/test_must_pass_user_agents.txt +0 -0
  417. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/test_user_agents.txt +0 -0
  418. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/ua_string_cases.json +0 -0
  419. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data/unknown_enum.pb.br +0 -0
  420. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data_store_bytes_adapter_tests.rs +0 -0
  421. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data_store_json_bytes_tests.rs +0 -0
  422. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data_store_json_only_no_bytes_methods_tests.rs +0 -0
  423. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data_store_lock_tests.rs +0 -0
  424. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/data_store_proto_bytes_tests.rs +0 -0
  425. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/delayed_exposure_bench.rs +0 -0
  426. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/direct_gcir_tests.rs +0 -0
  427. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/dynamic_string_tests.rs +0 -0
  428. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/dynamic_value_tests.rs +0 -0
  429. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/evaluation_details_tests.rs +0 -0
  430. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/evaluator_value_tests.rs +0 -0
  431. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/event_logger_failing_flush_tests.rs +0 -0
  432. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/event_logger_flush_tests.rs +0 -0
  433. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/event_logger_high_qps_tests.rs +0 -0
  434. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/event_logger_usage_tests.rs +0 -0
  435. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/expected_evaluation_tests.rs +0 -0
  436. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/exposure_sampling_key_tests.rs +0 -0
  437. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/exposure_tests.rs +0 -0
  438. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/flushing_tests.rs +0 -0
  439. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/gate_inversion_eval_tests.rs +0 -0
  440. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/gcir_plan_expansion_bench.rs +0 -0
  441. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/gcir_tests.rs +0 -0
  442. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/global_configs_test.rs +0 -0
  443. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/grpc_specs_adapter_tests.rs +0 -0
  444. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/hash_util_evaluation_hash_tests.rs +0 -0
  445. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/http_specs_adapter_tests.rs +0 -0
  446. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/initialize_timeout_test.rs +0 -0
  447. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/instance_registry_tests.rs +0 -0
  448. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/interner_contention_bench.rs +0 -0
  449. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/layer_serialization_tests.rs +0 -0
  450. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/list_methods_tests.rs +0 -0
  451. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/network_client_streaming_tests.rs +0 -0
  452. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/network_client_tests.rs +0 -0
  453. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/network_failure_tests.rs +0 -0
  454. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/observability_client_usage_tests.rs +0 -0
  455. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/output_logger_tests.rs +0 -0
  456. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/override_adapter_tests.rs +0 -0
  457. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/perf_tests.rs +0 -0
  458. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/proto_specs_usage_tests.rs +0 -0
  459. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/protobuf_copy_bench.rs +0 -0
  460. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/remote_config_preload_hydration_tests.rs +0 -0
  461. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/remote_config_value_hydration_tests.rs +0 -0
  462. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/spec_store_lock_tests.rs +0 -0
  463. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/spec_types_tests.rs +0 -0
  464. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/statsig_disable_network_tests.rs +0 -0
  465. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/statsig_environment_tests.rs +0 -0
  466. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/statsig_event_emitter_usage_test.rs +0 -0
  467. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/statsig_global_tests.rs +0 -0
  468. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/statsig_local_file_event_logging_adapter_tests.rs +0 -0
  469. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/statsig_local_file_specs_adapter_tests.rs +0 -0
  470. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/statsig_options_tests.rs +0 -0
  471. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/statsig_shared_tests.rs +0 -0
  472. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/statsig_tests.rs +0 -0
  473. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/statsig_user_builder_tests.rs +0 -0
  474. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/statsig_user_field_accessor_tests.rs +0 -0
  475. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/statsig_user_internal_tests.rs +0 -0
  476. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/statsig_user_loggable_tests.rs +0 -0
  477. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/statsig_user_tests.rs +0 -0
  478. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/substring_search_bench.rs +0 -0
  479. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/syncing_network_failure_tests.rs +0 -0
  480. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/typed_getters_tests.rs +0 -0
  481. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/ua_parser_util_test.rs +0 -0
  482. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/user_agent_tests_first_party.rs +0 -0
  483. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/user_json_tests.rs +0 -0
  484. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/utils/env_var_guard.rs +0 -0
  485. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/utils/helpers.rs +0 -0
  486. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/utils/mock_data_store.rs +0 -0
  487. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/utils/mock_event_logging_adapter.rs +0 -0
  488. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/utils/mock_log_provider.rs +0 -0
  489. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/utils/mock_observability_client.rs +0 -0
  490. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/utils/mock_scrapi.rs +0 -0
  491. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/utils/mock_specs_adapter.rs +0 -0
  492. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/utils/mock_specs_listener.rs +0 -0
  493. {oai_statsig_python_core-0.32.0rc7 → oai_statsig_python_core-0.34.0rc4}/statsig-rust/tests/utils/mod.rs +0 -0
@@ -498,8 +498,8 @@ dependencies = [
498
498
  "compression-core",
499
499
  "flate2",
500
500
  "memchr",
501
- "zstd 0.14.0",
502
- "zstd-safe 8.0.0",
501
+ "zstd",
502
+ "zstd-safe",
503
503
  ]
504
504
 
505
505
  [[package]]
@@ -1692,9 +1692,9 @@ dependencies = [
1692
1692
 
1693
1693
  [[package]]
1694
1694
  name = "napi"
1695
- version = "3.12.4"
1695
+ version = "3.13.0"
1696
1696
  source = "registry+https://github.com/rust-lang/crates.io-index"
1697
- checksum = "3d2c1d080c842ec1347ebf3cfb9347c15f8c2262f143cc30eea41ddf1c7da720"
1697
+ checksum = "3b12638855cec016784a7e17cc4ecbdee7ca8b0a3456aa50640d0ee5ed1a42f8"
1698
1698
  dependencies = [
1699
1699
  "anyhow",
1700
1700
  "bitflags 2.13.2",
@@ -1712,15 +1712,15 @@ dependencies = [
1712
1712
 
1713
1713
  [[package]]
1714
1714
  name = "napi-build"
1715
- version = "2.4.2"
1715
+ version = "2.5.0"
1716
1716
  source = "registry+https://github.com/rust-lang/crates.io-index"
1717
- checksum = "860e7c40864f95cfb83cde99f9ebadd88ef3d9bdccd7dd2cee0cc96a2dd4ffa7"
1717
+ checksum = "0941983559cd62bfa7f04646a16428967a847365adeef27711e4e3927046bbed"
1718
1718
 
1719
1719
  [[package]]
1720
1720
  name = "napi-derive"
1721
- version = "3.6.5"
1721
+ version = "3.6.9"
1722
1722
  source = "registry+https://github.com/rust-lang/crates.io-index"
1723
- checksum = "350057056a30368aa76c11a0d406b0aa61321710be2c36656ab4f6efe0b785a2"
1723
+ checksum = "6b1d232c24dc6754979b27efdf2047a5849efc7c92c1245de87e6bedbb9f5c3c"
1724
1724
  dependencies = [
1725
1725
  "convert_case 0.12.0",
1726
1726
  "ctor",
@@ -1732,9 +1732,9 @@ dependencies = [
1732
1732
 
1733
1733
  [[package]]
1734
1734
  name = "napi-derive-backend"
1735
- version = "6.1.3"
1735
+ version = "6.1.4"
1736
1736
  source = "registry+https://github.com/rust-lang/crates.io-index"
1737
- checksum = "4c1c87a71568f3fe5c736b10878ff55064b250bb4ea4b48c8055713e07b9e463"
1737
+ checksum = "fd6856fe1686867da90ed0dc292d7c0c87a695eb7c578b913360f33619ee01e3"
1738
1738
  dependencies = [
1739
1739
  "convert_case 0.12.0",
1740
1740
  "proc-macro2",
@@ -1745,9 +1745,9 @@ dependencies = [
1745
1745
 
1746
1746
  [[package]]
1747
1747
  name = "napi-sys"
1748
- version = "3.3.1"
1748
+ version = "3.3.2"
1749
1749
  source = "registry+https://github.com/rust-lang/crates.io-index"
1750
- checksum = "4d29a242104e456960e6c6479847570be731c1a92b8f8c05ddfb5439e5c09915"
1750
+ checksum = "6801fc65ba4d7035636e93635e281113f00410401a237dcd4f55b1565ead2115"
1751
1751
  dependencies = [
1752
1752
  "libloading",
1753
1753
  ]
@@ -1853,7 +1853,7 @@ dependencies = [
1853
1853
 
1854
1854
  [[package]]
1855
1855
  name = "oai-statsig-grpc"
1856
- version = "0.32.0-rc.7"
1856
+ version = "0.34.0-rc.4"
1857
1857
  dependencies = [
1858
1858
  "async-trait",
1859
1859
  "chrono",
@@ -1869,7 +1869,7 @@ dependencies = [
1869
1869
 
1870
1870
  [[package]]
1871
1871
  name = "oai-statsig-rust"
1872
- version = "0.32.0-rc.7"
1872
+ version = "0.34.0-rc.4"
1873
1873
  dependencies = [
1874
1874
  "ahash",
1875
1875
  "arc-swap",
@@ -1899,7 +1899,7 @@ dependencies = [
1899
1899
  "percent-encoding",
1900
1900
  "pin-project-lite",
1901
1901
  "prost",
1902
- "rand 0.8.8",
1902
+ "rand 0.10.3",
1903
1903
  "reqwest",
1904
1904
  "rkyv",
1905
1905
  "rusty-fork",
@@ -1919,7 +1919,7 @@ dependencies = [
1919
1919
  "uuid",
1920
1920
  "windows-sys 0.61.2",
1921
1921
  "wiremock",
1922
- "zstd 0.13.3",
1922
+ "zstd",
1923
1923
  ]
1924
1924
 
1925
1925
  [[package]]
@@ -2373,7 +2373,7 @@ dependencies = [
2373
2373
  "bytes",
2374
2374
  "getrandom 0.4.3",
2375
2375
  "lru-slab",
2376
- "rand 0.10.2",
2376
+ "rand 0.10.3",
2377
2377
  "rand_pcg",
2378
2378
  "ring",
2379
2379
  "rustc-hash 2.1.3",
@@ -2453,9 +2453,9 @@ dependencies = [
2453
2453
 
2454
2454
  [[package]]
2455
2455
  name = "rand"
2456
- version = "0.10.2"
2456
+ version = "0.10.3"
2457
2457
  source = "registry+https://github.com/rust-lang/crates.io-index"
2458
- checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80"
2458
+ checksum = "65c9fb96cbc91e3478eaae79a69fcd3f1ae4ad052e471fe6732fff548984b4af"
2459
2459
  dependencies = [
2460
2460
  "chacha20",
2461
2461
  "getrandom 0.4.3",
@@ -3102,7 +3102,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
3102
3102
 
3103
3103
  [[package]]
3104
3104
  name = "statsig-node"
3105
- version = "0.32.0-rc.7"
3105
+ version = "0.34.0-rc.4"
3106
3106
  dependencies = [
3107
3107
  "async-trait",
3108
3108
  "napi",
@@ -3117,7 +3117,7 @@ dependencies = [
3117
3117
 
3118
3118
  [[package]]
3119
3119
  name = "statsig-pyo3"
3120
- version = "0.32.0-rc.7"
3120
+ version = "0.34.0-rc.4"
3121
3121
  dependencies = [
3122
3122
  "async-trait",
3123
3123
  "lazy_static",
@@ -3132,7 +3132,7 @@ dependencies = [
3132
3132
 
3133
3133
  [[package]]
3134
3134
  name = "statsig_ffi"
3135
- version = "0.32.0-rc.7"
3135
+ version = "0.34.0-rc.4"
3136
3136
  dependencies = [
3137
3137
  "async-trait",
3138
3138
  "cbindgen",
@@ -3793,7 +3793,7 @@ checksum = "2ef6dac1e96601b4fb3acccccff2139741fcb757cb9a36089bf5be91cfb285ce"
3793
3793
  dependencies = [
3794
3794
  "getrandom 0.4.3",
3795
3795
  "js-sys",
3796
- "rand 0.10.2",
3796
+ "rand 0.10.3",
3797
3797
  "wasm-bindgen",
3798
3798
  ]
3799
3799
 
@@ -4347,31 +4347,13 @@ version = "1.0.23"
4347
4347
  source = "registry+https://github.com/rust-lang/crates.io-index"
4348
4348
  checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
4349
4349
 
4350
- [[package]]
4351
- name = "zstd"
4352
- version = "0.13.3"
4353
- source = "registry+https://github.com/rust-lang/crates.io-index"
4354
- checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a"
4355
- dependencies = [
4356
- "zstd-safe 7.3.0",
4357
- ]
4358
-
4359
4350
  [[package]]
4360
4351
  name = "zstd"
4361
4352
  version = "0.14.0"
4362
4353
  source = "registry+https://github.com/rust-lang/crates.io-index"
4363
4354
  checksum = "bf06bd8162af0734b344780deb55b42a2429ae430870d13fcc12f238e880fe6e"
4364
4355
  dependencies = [
4365
- "zstd-safe 8.0.0",
4366
- ]
4367
-
4368
- [[package]]
4369
- name = "zstd-safe"
4370
- version = "7.3.0"
4371
- source = "registry+https://github.com/rust-lang/crates.io-index"
4372
- checksum = "64d80649ab6db9d9f6f9c80a40becd948eda4714a0a5ac8c4d157a32231c7882"
4373
- dependencies = [
4374
- "zstd-sys",
4356
+ "zstd-safe",
4375
4357
  ]
4376
4358
 
4377
4359
  [[package]]
@@ -26,7 +26,7 @@ exclude = [
26
26
  [workspace.package]
27
27
  edition = "2021"
28
28
  license = "ISC"
29
- version = "0.32.0-rc.7"
29
+ version = "0.34.0-rc.4"
30
30
  homepage = "https://statsig.com/"
31
31
  authors = ["Statsig", "Daniel Loomb <daniel@statsig.com>"]
32
32
  readme = "README.md"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: oai_statsig_python_core
3
- Version: 0.32.0rc7
3
+ Version: 0.34.0rc4
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: Implementation :: CPython
6
6
  Classifier: Programming Language :: Python :: Implementation :: PyPy
@@ -67,9 +67,14 @@ explicit `:443`. Fallback sends no request or SDK credentials to other manifest
67
67
  origins; the original request error is returned. Fallback does not follow redirects.
68
68
  Custom network providers must implement `send_without_redirects`; otherwise the
69
69
  fallback returns an error without sending a request. Fallback preserves the URL's
70
- path and query, the file identity, and the byte offset for incremental updates.
71
- Each destination uses its own range protocol: a `range` query for the OpenAI CDN, or `Range` and
72
- `statsig-id-list-file-size` headers for other hosts.
70
+ path and query except for legacy `range` parameters. It sends `Range`,
71
+ `statsig-id-list-file-size`, and `Accept-Encoding: identity` headers, preserving
72
+ the file identity and byte offset for incremental updates. A `206` response must
73
+ have a valid `Content-Range` matching the requested offset and cover the advertised
74
+ file size. If the CDN returns a full `200` response, the SDK applies only the bytes
75
+ after that offset. Stale or inconsistent responses use the remaining retry budget
76
+ without publishing the refresh. Direct CDN downloads that do not use fallback
77
+ retain the existing `range` query protocol.
73
78
 
74
79
  Set `fallback_to_statsig_api` to `Some(false)` or leave it unset to keep file
75
80
  downloads strictly on the selected destination. There is no second attempt when
@@ -359,12 +359,12 @@ class StatsigOptions:
359
359
  @property
360
360
  def prefer_http2(self) -> typing.Optional[builtins.bool]:
361
361
  r"""
362
- Prefer HTTP/2 while allowing HTTP/1.1. Unset enables it; False restores the existing transport.
362
+ Prefer HTTP/2 while allowing HTTP/1.1. Disabled by default; True opts in.
363
363
  """
364
364
  @prefer_http2.setter
365
365
  def prefer_http2(self, value: typing.Optional[builtins.bool]) -> None:
366
366
  r"""
367
- Prefer HTTP/2 while allowing HTTP/1.1. Unset enables it; False restores the existing transport.
367
+ Prefer HTTP/2 while allowing HTTP/1.1. Disabled by default; True opts in.
368
368
  """
369
369
  @property
370
370
  def event_logging_flush_interval_ms(self) -> typing.Optional[builtins.int]: ...
@@ -122,7 +122,7 @@ class _TypedConfigs:
122
122
  from google.protobuf.json_format import ParseDict
123
123
 
124
124
  try:
125
- value = ParseDict(raw["value"], message_type())
125
+ value = ParseDict(raw["value"], message_type(), ignore_unknown_fields=True)
126
126
  except Exception as error:
127
127
  raise TypedConfigConversionError(
128
128
  f"Failed to convert typed config {name!r}"
@@ -45,9 +45,14 @@ explicit `:443`. Fallback sends no request or SDK credentials to other manifest
45
45
  origins; the original request error is returned. Fallback does not follow redirects.
46
46
  Custom network providers must implement `send_without_redirects`; otherwise the
47
47
  fallback returns an error without sending a request. Fallback preserves the URL's
48
- path and query, the file identity, and the byte offset for incremental updates.
49
- Each destination uses its own range protocol: a `range` query for the OpenAI CDN, or `Range` and
50
- `statsig-id-list-file-size` headers for other hosts.
48
+ path and query except for legacy `range` parameters. It sends `Range`,
49
+ `statsig-id-list-file-size`, and `Accept-Encoding: identity` headers, preserving
50
+ the file identity and byte offset for incremental updates. A `206` response must
51
+ have a valid `Content-Range` matching the requested offset and cover the advertised
52
+ file size. If the CDN returns a full `200` response, the SDK applies only the bytes
53
+ after that offset. Stale or inconsistent responses use the remaining retry budget
54
+ without publishing the refresh. Direct CDN downloads that do not use fallback
55
+ retain the existing `range` query protocol.
51
56
 
52
57
  Set `fallback_to_statsig_api` to `Some(false)` or leave it unset to keep file
53
58
  downloads strictly on the selected destination. There is no second attempt when
@@ -45,9 +45,14 @@ explicit `:443`. Fallback sends no request or SDK credentials to other manifest
45
45
  origins; the original request error is returned. Fallback does not follow redirects.
46
46
  Custom network providers must implement `send_without_redirects`; otherwise the
47
47
  fallback returns an error without sending a request. Fallback preserves the URL's
48
- path and query, the file identity, and the byte offset for incremental updates.
49
- Each destination uses its own range protocol: a `range` query for the OpenAI CDN, or `Range` and
50
- `statsig-id-list-file-size` headers for other hosts.
48
+ path and query except for legacy `range` parameters. It sends `Range`,
49
+ `statsig-id-list-file-size`, and `Accept-Encoding: identity` headers, preserving
50
+ the file identity and byte offset for incremental updates. A `206` response must
51
+ have a valid `Content-Range` matching the requested offset and cover the advertised
52
+ file size. If the CDN returns a full `200` response, the SDK applies only the bytes
53
+ after that offset. Stale or inconsistent responses use the remaining retry budget
54
+ without publishing the refresh. Direct CDN downloads that do not use fallback
55
+ retain the existing `range` query protocol.
51
56
 
52
57
  Set `fallback_to_statsig_api` to `Some(false)` or leave it unset to keep file
53
58
  downloads strictly on the selected destination. There is no second attempt when
@@ -0,0 +1,3 @@
1
+ mypy==2.3.1
2
+ types-requests==2.33.0.20260906
3
+ types-protobuf==6.32.1.20260221
@@ -128,7 +128,7 @@ pub struct StatsigOptionsPy {
128
128
  pub disable_network: Option<bool>,
129
129
  #[pyo3(get, set)]
130
130
  pub log_event_connection_reuse: Option<bool>,
131
- /// Prefer HTTP/2 while allowing HTTP/1.1. Unset enables it; False restores the existing transport.
131
+ /// Prefer HTTP/2 while allowing HTTP/1.1. Disabled by default; True opts in.
132
132
  #[pyo3(get, set)]
133
133
  pub prefer_http2: Option<bool>,
134
134
  #[pyo3(get, set)]
@@ -0,0 +1,211 @@
1
+ """ID-list file updates through the actual Python binding and Rust evaluator.
2
+
3
+ Only HTTP responses are local fixtures. The SDK's polling, range downloads,
4
+ membership storage, publication and evaluation all run normally.
5
+ """
6
+
7
+ import base64
8
+ import hashlib
9
+ import json
10
+ from threading import Lock
11
+ from time import monotonic, sleep
12
+
13
+ import pytest
14
+ from statsig_python_core import (
15
+ DynamicConfigEvaluationOptions,
16
+ EvaluationCache,
17
+ FeatureGateEvaluationOptions,
18
+ Statsig,
19
+ StatsigOptions,
20
+ StatsigUser,
21
+ StatsigUserContext,
22
+ )
23
+ from werkzeug import Response
24
+
25
+
26
+ def _member_key(user_id):
27
+ return base64.b64encode(hashlib.sha256(user_id.encode()).digest()).decode()[:8]
28
+
29
+
30
+ def _specs():
31
+ rule = {
32
+ "name": "member",
33
+ "id": "member",
34
+ "salt": "member",
35
+ "conditions": ["member"],
36
+ "passPercentage": 100,
37
+ "returnValue": True,
38
+ "idType": "userID",
39
+ }
40
+ gate = {
41
+ "type": "feature_gate",
42
+ "entity": "feature_gate",
43
+ "salt": "member",
44
+ "enabled": True,
45
+ "defaultValue": False,
46
+ "idType": "userID",
47
+ "version": 1,
48
+ "rules": [rule],
49
+ }
50
+ config = {
51
+ **gate,
52
+ "type": "dynamic_config",
53
+ "entity": "dynamic_config",
54
+ "defaultValue": {"member": False},
55
+ "rules": [{**rule, "returnValue": {"member": True}}],
56
+ }
57
+ return {
58
+ "time": 1_800_000_100_001,
59
+ "has_updates": True,
60
+ "feature_gates": {"membership": gate},
61
+ "dynamic_configs": {"membership": config},
62
+ "layer_configs": {},
63
+ "experiment_to_layer": {},
64
+ "condition_map": {
65
+ "member": {
66
+ "type": "unit_id",
67
+ "operator": "in_segment_list",
68
+ "targetValue": "members",
69
+ "idType": "userID",
70
+ }
71
+ },
72
+ }
73
+
74
+
75
+ @pytest.mark.parametrize(
76
+ "use_evaluation_cache", [False, True], ids=["uncached", "cached"]
77
+ )
78
+ def test_membership_append_remove_and_new_file_reset(httpserver, use_evaluation_cache):
79
+ specs = _specs()
80
+ # Real targeting hashes are eight ASCII bytes. Include fallback parser keys
81
+ # in the same file; direct non-eight-byte membership is covered in Rust.
82
+ initial = (
83
+ f"+{_member_key('alice')}\n+{_member_key('steady')}\n"
84
+ "+short\n+longer-than-eight\n+🙂\n"
85
+ ).encode()
86
+ files = {"first": initial}
87
+ current = {"file_id": "first", "creation_time": 1}
88
+ downloads = []
89
+ lock = Lock()
90
+
91
+ httpserver.expect_request("/v2/download_config_specs").respond_with_json(specs)
92
+ httpserver.expect_request("/v1/log_event").respond_with_json({"success": True})
93
+
94
+ def manifest(_request):
95
+ with lock:
96
+ file_id = current["file_id"]
97
+ body = {
98
+ "members": {
99
+ "name": "members",
100
+ "url": httpserver.url_for(f"/members/{file_id}"),
101
+ "size": len(files[file_id]),
102
+ "creationTime": current["creation_time"],
103
+ "fileID": file_id,
104
+ }
105
+ }
106
+ return Response(json.dumps(body), mimetype="application/json")
107
+
108
+ def download(request):
109
+ file_id = request.path.rsplit("/", 1)[1]
110
+ range_header = request.headers["Range"]
111
+ assert range_header.startswith("bytes=") and range_header.endswith("-")
112
+ start = int(range_header[len("bytes=") : -1])
113
+ size = int(request.headers["statsig-id-list-file-size"])
114
+ with lock:
115
+ data = files[file_id][start:size]
116
+ downloads.append((file_id, start, size))
117
+ assert data
118
+ return Response(
119
+ data,
120
+ status=206,
121
+ mimetype="text/plain",
122
+ headers={"Content-Range": f"bytes {start}-{start + len(data) - 1}/{size}"},
123
+ )
124
+
125
+ httpserver.expect_request("/v1/get_id_lists").respond_with_handler(manifest)
126
+ for file_id in ("first", "replacement"):
127
+ httpserver.expect_request(f"/members/{file_id}").respond_with_handler(download)
128
+
129
+ sdk = Statsig(
130
+ "secret-local-id-list-test",
131
+ StatsigOptions(
132
+ specs_url=httpserver.url_for("/v2/download_config_specs"),
133
+ id_lists_url=httpserver.url_for("/v1/get_id_lists"),
134
+ log_event_url=httpserver.url_for("/v1/log_event"),
135
+ specs_sync_interval_ms=60_000,
136
+ id_lists_sync_interval_ms=1000,
137
+ enable_id_lists=True,
138
+ fallback_to_statsig_api=False,
139
+ output_log_level="none",
140
+ evaluation_cache=EvaluationCache() if use_evaluation_cache else None,
141
+ ),
142
+ )
143
+ context = StatsigUserContext(custom={"fixture": "id-list-updates"})
144
+ gate_options = FeatureGateEvaluationOptions(disable_exposure_logging=True)
145
+ config_options = DynamicConfigEvaluationOptions(disable_exposure_logging=True)
146
+
147
+ def membership(user_id):
148
+ user = StatsigUser(user_id)
149
+ return (
150
+ sdk.get_feature_gate(user, "membership", gate_options).value,
151
+ sdk.get_feature_gate_with_context(
152
+ context, "membership", user_id=user_id, options=gate_options
153
+ ).value,
154
+ sdk.get_dynamic_config(user, "membership", config_options).value["member"],
155
+ )
156
+
157
+ def wait_for(expected):
158
+ deadline = monotonic() + 10
159
+ while True:
160
+ actual = {user_id: membership(user_id) for user_id in expected}
161
+ if all(actual[user_id] == (value,) * 3 for user_id, value in expected.items()):
162
+ return
163
+ assert monotonic() < deadline, actual
164
+ sleep(0.02)
165
+
166
+ try:
167
+ assert sdk.initialize().wait(10) and sdk.is_initialized()
168
+ wait_for({"alice": True, "bob": False, "steady": True})
169
+ old_member = sdk.get_dynamic_config(
170
+ StatsigUser("alice"), "membership", config_options
171
+ )
172
+ old_nonmember = sdk.get_feature_gate(
173
+ StatsigUser("bob"), "membership", gate_options
174
+ )
175
+
176
+ first_delta = f"+{_member_key('bob')}\n-{_member_key('alice')}\n".encode()
177
+ with lock:
178
+ files["first"] += first_delta
179
+ wait_for({"alice": False, "bob": True, "steady": True})
180
+ with lock:
181
+ assert ("first", len(initial), len(initial) + len(first_delta)) in downloads
182
+
183
+ second_delta = f"-{_member_key('bob')}\n+{_member_key('alice')}\n".encode()
184
+ with lock:
185
+ previous_size = len(files["first"])
186
+ files["first"] += second_delta
187
+ wait_for({"alice": True, "bob": False, "steady": True})
188
+ with lock:
189
+ assert ("first", previous_size, previous_size + len(second_delta)) in downloads
190
+
191
+ # A new file identity must replace membership, even when its content is
192
+ # shorter. This does not exercise same-file creation-time replay.
193
+ replacement = f"+{_member_key('bob')}\n".encode()
194
+ with lock:
195
+ files["replacement"] = replacement
196
+ current.update(file_id="replacement", creation_time=2)
197
+ wait_for({"alice": False, "bob": True, "steady": False})
198
+ with lock:
199
+ assert ("replacement", 0, len(replacement)) in downloads
200
+
201
+ # Public evaluation results are retained snapshots. User contexts own
202
+ # targeting metadata, not old SDK snapshots, and saw every update above.
203
+ assert old_member.value == {"member": True}
204
+ assert old_nonmember.value is False
205
+ assert old_member.details.lcut == specs["time"]
206
+ assert (
207
+ sdk.get_feature_gate(StatsigUser("bob"), "membership").details.lcut
208
+ == specs["time"]
209
+ )
210
+ finally:
211
+ assert sdk.shutdown().wait(10)
@@ -0,0 +1,75 @@
1
+ import gc
2
+ import weakref
3
+
4
+ from statsig_python_core import (
5
+ OutputLoggerProvider,
6
+ SpecAdapterConfig,
7
+ Statsig,
8
+ StatsigOptions,
9
+ )
10
+
11
+
12
+ class CollectingLogger(OutputLoggerProvider):
13
+ def __init__(self):
14
+ super().__init__()
15
+ self.collect_on_warning = False
16
+ self.in_warning = False
17
+ self.collected = None
18
+ self.shutdowns = 0
19
+ self.shutdown_during_warning = False
20
+
21
+ def warn(self, tag, message):
22
+ if not self.collect_on_warning:
23
+ return
24
+ self.collect_on_warning = False
25
+ self.in_warning = True
26
+ try:
27
+ self.collected = gc.collect()
28
+ finally:
29
+ self.in_warning = False
30
+
31
+ def shutdown(self):
32
+ self.shutdowns += 1
33
+ self.shutdown_during_warning |= self.in_warning
34
+
35
+
36
+ def test_collecting_retired_sdk_in_logger_callback_completes_shutdown():
37
+ gc.collect()
38
+ automatic_gc = gc.isenabled()
39
+ gc.disable()
40
+ logger = CollectingLogger()
41
+ options = StatsigOptions(
42
+ disable_network=True,
43
+ disable_all_logging=True,
44
+ output_log_level="warn",
45
+ output_logger_provider=logger,
46
+ spec_adapter_configs=[
47
+ SpecAdapterConfig("network_http", specs_url="http://127.0.0.1:1/specs")
48
+ ],
49
+ )
50
+ current = None
51
+ try:
52
+ retired = Statsig("secret-offline-logger-test", options)
53
+ retired.shutdown().wait()
54
+ retired_ref = weakref.ref(retired)
55
+ # Model an SDK retained by a Python cycle until the next logger callback.
56
+ cycle = [retired]
57
+ cycle.append(cycle)
58
+ del retired, cycle
59
+
60
+ current = Statsig("secret-offline-logger-test", options)
61
+ shutdowns_before_warning = logger.shutdowns
62
+ logger.collect_on_warning = True
63
+ current.initialize_with_details().result()
64
+
65
+ assert logger.collected is not None and logger.collected > 0
66
+ assert retired_ref() is None
67
+ assert logger.shutdowns == shutdowns_before_warning + 1
68
+ assert not logger.shutdown_during_warning
69
+ finally:
70
+ if current is not None:
71
+ current.shutdown().wait()
72
+ del current
73
+ gc.collect()
74
+ if automatic_gc:
75
+ gc.enable()
@@ -274,9 +274,50 @@ def test_unavailable_never_substitutes_previous_value(sdk, payload_state):
274
274
  assert sdk.get().value == {}
275
275
 
276
276
 
277
+ def test_conversion_ignores_unknown_fields_and_enum_names(sdk):
278
+ sdk.raw = selected(
279
+ 2,
280
+ {
281
+ "number": 7,
282
+ "type": "NEW_UNKNOWN_ENUM_VALUE",
283
+ "newField": {"enabled": True},
284
+ "options": {"deprecated": True, "newNestedField": 42},
285
+ },
286
+ )
287
+
288
+ result = sdk.get(message_type=FieldDescriptorProto)
289
+
290
+ assert result.value == FieldDescriptorProto(number=7, options={"deprecated": True})
291
+ assert result.details.version == 2
292
+
293
+
294
+ def test_callback_conversion_ignores_unknown_fields(sdk):
295
+ callbacks = Queue()
296
+ sdk.raw = selected(1, {"number": 1, "newField": True})
297
+ sdk.register(callbacks.put, message_type=FieldDescriptorProto)
298
+ assert sdk._typed_configs.observers[0].revision == 1
299
+ assert callbacks.empty()
300
+
301
+ sdk.publish(
302
+ selected(
303
+ 2,
304
+ {
305
+ "number": 2,
306
+ "newField": True,
307
+ "options": {"deprecated": True, "newNestedField": 42},
308
+ },
309
+ )
310
+ )
311
+ result = callbacks.get(timeout=5)
312
+ assert result.value == FieldDescriptorProto(number=2, options={"deprecated": True})
313
+ assert result.details.version == 2
314
+ sdk.wait_for_observation()
315
+ assert sdk._typed_configs.observers[0].error is None
316
+
317
+
277
318
  def test_conversion_failure_is_explicit_with_cause_for_each_user(sdk):
278
319
  sdk.get()
279
- sdk.raw = selected(2, {"number": "invalid"})
320
+ sdk.raw = selected(2, {"number": "invalid", "newField": True})
280
321
  for user in (sdk.user, StatsigUser("other")):
281
322
  with pytest.raises(TypedConfigConversionError) as caught:
282
323
  sdk.get(user=user, message_type=FieldDescriptorProto)