# hub.solver.openevolve.public_proxy
Generating domain proxies that expose only their public API, while maintaining their characteristics mixins dependencies.
Domain specification
# get_domain_mixin_classes
get_domain_mixin_classes(
obj: typing.Any
) -> tuple[type[skdecide.domains.Domain], ...]
Extract scikit-decide builder mixins from an object or class.
This helper inspects the Method Resolution Order (MRO) of the provided
object and identifies which classes belong to the
:mod:skdecide.builders.domain module.
# Parameters
- obj: The domain instance or class to inspect.
# Returns
A tuple of mixin classes used by the domain.
# create_public_proxy
create_public_proxy(
obj: typing.Any
) -> typing.Any
Create a proxy that exposes only the public API of a domain.
The resulting proxy object inherits from the same scikit-decide mixins as the original object to ensure compatibility with solvers (via isinstance checks).
# Parameters
- obj: The original domain instance to be wrapped.
# Returns
A dynamic proxy object mimicking the domain's capabilities while enforcing public-only access.
# Raises
AttributeError: If access to members starting with '_' is attempted.