Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -767,6 +767,10 @@ internal interface UniffiForeignFutureCompleteVoid : com.sun.jna.Callback {










Expand All @@ -793,6 +797,8 @@ fun uniffi_superposition_core_checksum_func_ffi_eval_config_with_reasoning(
): Short
fun uniffi_superposition_core_checksum_func_ffi_get_applicable_variants(
): Short
fun uniffi_superposition_core_checksum_func_ffi_parse_config_file_with_filters(
): Short
fun uniffi_superposition_core_checksum_func_ffi_parse_json_config(
): Short
fun uniffi_superposition_core_checksum_func_ffi_parse_toml_config(
Expand All @@ -803,6 +809,8 @@ fun uniffi_superposition_core_checksum_method_providercache_filter_config(
): Short
fun uniffi_superposition_core_checksum_method_providercache_filter_experiment(
): Short
fun uniffi_superposition_core_checksum_method_providercache_get_applicable_variants(
): Short
fun uniffi_superposition_core_checksum_method_providercache_init_config(
): Short
fun uniffi_superposition_core_checksum_method_providercache_init_experiments(
Expand Down Expand Up @@ -871,6 +879,8 @@ fun uniffi_superposition_core_fn_method_providercache_filter_config(`ptr`: Point
): RustBufferConfig.ByValue
fun uniffi_superposition_core_fn_method_providercache_filter_experiment(`ptr`: Pointer,`dimensionData`: RustBuffer.ByValue,`prefix`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus,
): RustBuffer.ByValue
fun uniffi_superposition_core_fn_method_providercache_get_applicable_variants(`ptr`: Pointer,`dimensionData`: RustBuffer.ByValue,`prefix`: RustBuffer.ByValue,`targetingKey`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus,
): RustBuffer.ByValue
fun uniffi_superposition_core_fn_method_providercache_init_config(`ptr`: Pointer,`defaultConfig`: RustBuffer.ByValue,`contexts`: RustBuffer.ByValue,`overrides`: RustBuffer.ByValue,`dimensions`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus,
): Unit
fun uniffi_superposition_core_fn_method_providercache_init_experiments(`ptr`: Pointer,`experiments`: RustBuffer.ByValue,`experimentGroups`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus,
Expand All @@ -881,6 +891,8 @@ fun uniffi_superposition_core_fn_func_ffi_eval_config_with_reasoning(`defaultCon
): RustBuffer.ByValue
fun uniffi_superposition_core_fn_func_ffi_get_applicable_variants(`eargs`: RustBuffer.ByValue,`dimensionsInfo`: RustBuffer.ByValue,`queryData`: RustBuffer.ByValue,`prefix`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus,
): RustBuffer.ByValue
fun uniffi_superposition_core_fn_func_ffi_parse_config_file_with_filters(`fileContent`: RustBuffer.ByValue,`format`: RustBuffer.ByValue,`dimensionData`: RustBuffer.ByValue,`prefix`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus,
): RustBufferConfig.ByValue
fun uniffi_superposition_core_fn_func_ffi_parse_json_config(`jsonContent`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus,
): RustBufferConfig.ByValue
fun uniffi_superposition_core_fn_func_ffi_parse_toml_config(`tomlContent`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus,
Expand Down Expand Up @@ -1020,6 +1032,9 @@ private fun uniffiCheckApiChecksums(lib: IntegrityCheckingUniffiLib) {
if (lib.uniffi_superposition_core_checksum_func_ffi_get_applicable_variants() != 58234.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
if (lib.uniffi_superposition_core_checksum_func_ffi_parse_config_file_with_filters() != 63728.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
if (lib.uniffi_superposition_core_checksum_func_ffi_parse_json_config() != 30321.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
Expand All @@ -1035,6 +1050,9 @@ private fun uniffiCheckApiChecksums(lib: IntegrityCheckingUniffiLib) {
if (lib.uniffi_superposition_core_checksum_method_providercache_filter_experiment() != 60575.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
if (lib.uniffi_superposition_core_checksum_method_providercache_get_applicable_variants() != 12269.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
if (lib.uniffi_superposition_core_checksum_method_providercache_init_config() != 28151.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
Expand Down Expand Up @@ -1374,6 +1392,8 @@ public interface ProviderCacheInterface {

fun `filterExperiment`(`dimensionData`: Map<kotlin.String, kotlin.String>?, `prefix`: List<kotlin.String>?): ExperimentConfig

fun `getApplicableVariants`(`dimensionData`: Map<kotlin.String, kotlin.String>?, `prefix`: List<kotlin.String>?, `targetingKey`: kotlin.String): List<kotlin.String>

fun `initConfig`(`defaultConfig`: Map<kotlin.String, kotlin.String>, `contexts`: List<Context>, `overrides`: Map<kotlin.String, Overrides>, `dimensions`: Map<kotlin.String, DimensionInfo>)

fun `initExperiments`(`experiments`: List<FfiExperiment>, `experimentGroups`: List<FfiExperimentGroup>)
Expand Down Expand Up @@ -1510,6 +1530,19 @@ open class ProviderCache: Disposable, AutoCloseable, ProviderCacheInterface



@Throws(OperationException::class)override fun `getApplicableVariants`(`dimensionData`: Map<kotlin.String, kotlin.String>?, `prefix`: List<kotlin.String>?, `targetingKey`: kotlin.String): List<kotlin.String> {
return FfiConverterSequenceString.lift(
callWithPointer {
uniffiRustCallWithError(OperationException) { _status ->
UniffiLib.INSTANCE.uniffi_superposition_core_fn_method_providercache_get_applicable_variants(
it, FfiConverterOptionalMapStringString.lower(`dimensionData`),FfiConverterOptionalSequenceString.lower(`prefix`),FfiConverterString.lower(`targetingKey`),_status)
}
}
)
}



@Throws(OperationException::class)override fun `initConfig`(`defaultConfig`: Map<kotlin.String, kotlin.String>, `contexts`: List<Context>, `overrides`: Map<kotlin.String, Overrides>, `dimensions`: Map<kotlin.String, DimensionInfo>)
=
callWithPointer {
Expand Down Expand Up @@ -2286,6 +2319,16 @@ public object FfiConverterMapStringTypeOverrides: FfiConverterRustBuffer<Map<kot
}


@Throws(OperationException::class) fun `ffiParseConfigFileWithFilters`(`fileContent`: kotlin.String, `format`: kotlin.String, `dimensionData`: Map<kotlin.String, kotlin.String>?, `prefix`: List<kotlin.String>?): Config {
return FfiConverterTypeConfig.lift(
uniffiRustCallWithError(OperationException) { _status ->
UniffiLib.INSTANCE.uniffi_superposition_core_fn_func_ffi_parse_config_file_with_filters(
FfiConverterString.lower(`fileContent`),FfiConverterString.lower(`format`),FfiConverterOptionalMapStringString.lower(`dimensionData`),FfiConverterOptionalSequenceString.lower(`prefix`),_status)
}
)
}


/**
* Parse JSON configuration string
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -501,6 +501,8 @@ def _uniffi_check_api_checksums(lib):
raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
if lib.uniffi_superposition_core_checksum_func_ffi_get_applicable_variants() != 58234:
raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
if lib.uniffi_superposition_core_checksum_func_ffi_parse_config_file_with_filters() != 63728:
raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
if lib.uniffi_superposition_core_checksum_func_ffi_parse_json_config() != 30321:
raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
if lib.uniffi_superposition_core_checksum_func_ffi_parse_toml_config() != 1558:
Expand All @@ -511,6 +513,8 @@ def _uniffi_check_api_checksums(lib):
raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
if lib.uniffi_superposition_core_checksum_method_providercache_filter_experiment() != 60575:
raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
if lib.uniffi_superposition_core_checksum_method_providercache_get_applicable_variants() != 12269:
raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
if lib.uniffi_superposition_core_checksum_method_providercache_init_config() != 28151:
raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
if lib.uniffi_superposition_core_checksum_method_providercache_init_experiments() != 55579:
Expand Down Expand Up @@ -660,6 +664,14 @@ class _UniffiForeignFutureStructVoid(ctypes.Structure):
ctypes.POINTER(_UniffiRustCallStatus),
)
_UniffiLib.uniffi_superposition_core_fn_method_providercache_filter_experiment.restype = _UniffiRustBuffer
_UniffiLib.uniffi_superposition_core_fn_method_providercache_get_applicable_variants.argtypes = (
ctypes.c_void_p,
_UniffiRustBuffer,
_UniffiRustBuffer,
_UniffiRustBuffer,
ctypes.POINTER(_UniffiRustCallStatus),
)
_UniffiLib.uniffi_superposition_core_fn_method_providercache_get_applicable_variants.restype = _UniffiRustBuffer
_UniffiLib.uniffi_superposition_core_fn_method_providercache_init_config.argtypes = (
ctypes.c_void_p,
_UniffiRustBuffer,
Expand Down Expand Up @@ -708,6 +720,14 @@ class _UniffiForeignFutureStructVoid(ctypes.Structure):
ctypes.POINTER(_UniffiRustCallStatus),
)
_UniffiLib.uniffi_superposition_core_fn_func_ffi_get_applicable_variants.restype = _UniffiRustBuffer
_UniffiLib.uniffi_superposition_core_fn_func_ffi_parse_config_file_with_filters.argtypes = (
_UniffiRustBuffer,
_UniffiRustBuffer,
_UniffiRustBuffer,
_UniffiRustBuffer,
ctypes.POINTER(_UniffiRustCallStatus),
)
_UniffiLib.uniffi_superposition_core_fn_func_ffi_parse_config_file_with_filters.restype = _UniffiRustBufferConfig
_UniffiLib.uniffi_superposition_core_fn_func_ffi_parse_json_config.argtypes = (
_UniffiRustBuffer,
ctypes.POINTER(_UniffiRustCallStatus),
Expand Down Expand Up @@ -995,6 +1015,9 @@ class _UniffiForeignFutureStructVoid(ctypes.Structure):
_UniffiLib.uniffi_superposition_core_checksum_func_ffi_get_applicable_variants.argtypes = (
)
_UniffiLib.uniffi_superposition_core_checksum_func_ffi_get_applicable_variants.restype = ctypes.c_uint16
_UniffiLib.uniffi_superposition_core_checksum_func_ffi_parse_config_file_with_filters.argtypes = (
)
_UniffiLib.uniffi_superposition_core_checksum_func_ffi_parse_config_file_with_filters.restype = ctypes.c_uint16
_UniffiLib.uniffi_superposition_core_checksum_func_ffi_parse_json_config.argtypes = (
)
_UniffiLib.uniffi_superposition_core_checksum_func_ffi_parse_json_config.restype = ctypes.c_uint16
Expand All @@ -1010,6 +1033,9 @@ class _UniffiForeignFutureStructVoid(ctypes.Structure):
_UniffiLib.uniffi_superposition_core_checksum_method_providercache_filter_experiment.argtypes = (
)
_UniffiLib.uniffi_superposition_core_checksum_method_providercache_filter_experiment.restype = ctypes.c_uint16
_UniffiLib.uniffi_superposition_core_checksum_method_providercache_get_applicable_variants.argtypes = (
)
_UniffiLib.uniffi_superposition_core_checksum_method_providercache_get_applicable_variants.restype = ctypes.c_uint16
_UniffiLib.uniffi_superposition_core_checksum_method_providercache_init_config.argtypes = (
)
_UniffiLib.uniffi_superposition_core_checksum_method_providercache_init_config.restype = ctypes.c_uint16
Expand Down Expand Up @@ -1723,6 +1749,8 @@ def filter_config(self, dimension_data: "typing.Optional[dict[str, str]]",prefix
raise NotImplementedError
def filter_experiment(self, dimension_data: "typing.Optional[dict[str, str]]",prefix: "typing.Optional[typing.List[str]]"):
raise NotImplementedError
def get_applicable_variants(self, dimension_data: "typing.Optional[dict[str, str]]",prefix: "typing.Optional[typing.List[str]]",targeting_key: "str"):
raise NotImplementedError
def init_config(self, default_config: "dict[str, str]",contexts: "typing.List[Context]",overrides: "dict[str, Overrides]",dimensions: "dict[str, DimensionInfo]"):
raise NotImplementedError
def init_experiments(self, experiments: "typing.List[FfiExperiment]",experiment_groups: "typing.List[FfiExperimentGroup]"):
Expand Down Expand Up @@ -1803,6 +1831,24 @@ def filter_experiment(self, dimension_data: "typing.Optional[dict[str, str]]",pr



def get_applicable_variants(self, dimension_data: "typing.Optional[dict[str, str]]",prefix: "typing.Optional[typing.List[str]]",targeting_key: "str") -> "typing.List[str]":
_UniffiConverterOptionalMapStringString.check_lower(dimension_data)

_UniffiConverterOptionalSequenceString.check_lower(prefix)

_UniffiConverterString.check_lower(targeting_key)

return _UniffiConverterSequenceString.lift(
_uniffi_rust_call_with_error(_UniffiConverterTypeOperationError,_UniffiLib.uniffi_superposition_core_fn_method_providercache_get_applicable_variants,self._uniffi_clone_pointer(),
_UniffiConverterOptionalMapStringString.lower(dimension_data),
_UniffiConverterOptionalSequenceString.lower(prefix),
_UniffiConverterString.lower(targeting_key))
)





def init_config(self, default_config: "dict[str, str]",contexts: "typing.List[Context]",overrides: "dict[str, Overrides]",dimensions: "dict[str, DimensionInfo]") -> None:
_UniffiConverterMapStringString.check_lower(default_config)

Expand Down Expand Up @@ -1964,6 +2010,22 @@ def ffi_get_applicable_variants(eargs: "ExperimentationArgs",dimensions_info: "d
_UniffiConverterOptionalSequenceString.lower(prefix)))


def ffi_parse_config_file_with_filters(file_content: "str",format: "str",dimension_data: "typing.Optional[dict[str, str]]",prefix: "typing.Optional[typing.List[str]]") -> "Config":
_UniffiConverterString.check_lower(file_content)

_UniffiConverterString.check_lower(format)

_UniffiConverterOptionalMapStringString.check_lower(dimension_data)

_UniffiConverterOptionalSequenceString.check_lower(prefix)

return _UniffiConverterTypeConfig.lift(_uniffi_rust_call_with_error(_UniffiConverterTypeOperationError,_UniffiLib.uniffi_superposition_core_fn_func_ffi_parse_config_file_with_filters,
_UniffiConverterString.lower(file_content),
_UniffiConverterString.lower(format),
_UniffiConverterOptionalMapStringString.lower(dimension_data),
_UniffiConverterOptionalSequenceString.lower(prefix)))


def ffi_parse_json_config(json_content: "str") -> "Config":
"""
Parse JSON configuration string
Expand Down Expand Up @@ -2041,6 +2103,7 @@ def ffi_parse_toml_config(toml_content: "str") -> "Config":
"ffi_eval_config",
"ffi_eval_config_with_reasoning",
"ffi_get_applicable_variants",
"ffi_parse_config_file_with_filters",
"ffi_parse_json_config",
"ffi_parse_toml_config",
"ProviderCache",
Expand Down
59 changes: 59 additions & 0 deletions clients/python/provider-sdk-tests/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
[default-configs]
currency = { value = "Rupee", schema = { enum = [
"Rupee",
"Dollar",
"Euro",
], type = "string" } }
price = { value = 10000, schema = { minimum = 0, type = "number" } }


[dimensions]
city = { position = 3, schema = { type = "string" }, type = "REGULAR" }
customers = { position = 1, schema = { definitions = { gold = { in = [
{ var = "name" },
[
"Angit",
"Bhrey",
],
] }, platinum = { in = [
{ var = "name" },
[
"Agush",
"Sauyav",
],
] } }, enum = [
"platinum",
"gold",
"otherwise",
], type = "string" }, type = "LOCAL_COHORT:name" }
name = { position = 2, schema = { type = "string" }, type = "REGULAR" }
variantIds = { position = 0, schema = { pattern = ".*", type = "string" }, type = "REGULAR" }


[[overrides]]
_context_ = { customers = "platinum" }
price = 5000

[[overrides]]
_context_ = { customers = "gold" }
price = 8000

[[overrides]]
_context_ = { name = "karbik" }
price = 1

[[overrides]]
_context_ = { city = "Boston" }
currency = "Dollar"

[[overrides]]
_context_ = { city = "Berlin" }
currency = "Euro"

[[overrides]]
_context_ = { city = "Kolkata", variantIds = "7445772794710855680-test-control" }
price = 8000

[[overrides]]
_context_ = { city = "Kolkata", variantIds = "7445772794710855680-test-experimental" }
price = 7000
Loading
Loading