def _experimental_method(
        flag: Feature,
        enabled: Callable,
        disabled: Callable,
        freeze: bool = False,
    ) -> Callable:
        """Select between two methods based on the status of a feature flag.

        The selection happens after the method is called. Freezes the flag if
        the `freeze` parameter is set.

        Example:
            ```python
            class MyClass(_WithExperimentalSettings, ...):
                ...
                def my_method_default(self, ...): ...
                def my_method_experimental(self, ...): ...
                ...
                my_method = MyClass._experimental_method(
                    flag=Feature.OTEL_TRACING,
                    enabled=my_method_experimental,
                    disabled=my_method_default
                )
                ```
        """

        @functools.wraps(enabled)  # or disabled
        def wrapper(self: _WithExperimentalSettings, *args, **kwargs):
            if self.experimental_feature(flag, freeze=freeze):
                return enabled(*args, **kwargs)

            return disabled(*args, **kwargs)

        return wrapper
Select between two methods based on the status of a feature flag.

        The selection happens after the method is called. Freezes the flag if
        the `freeze` parameter is set.

        Example:
            ```python
            class MyClass(_WithExperimentalSettings, ...):
                ...
                def my_method_default(self, ...): ...
                def my_method_experimental(self, ...): ...
                ...
                my_method = MyClass._experimental_method(
                    flag=Feature.OTEL_TRACING,
                    enabled=my_method_experimental,
                    disabled=my_method_default
                )
                ```
        
src/core/trulens/core/experimental/__init__.py