# hub.solver.openevolve.public_proxy

Generating domain proxies that expose only their public API, while maintaining their characteristics mixins dependencies.

Domain specification

Domain

# 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.