Source code for scikit_quri.backend.sim_estimator

"""Backward-compatible factory for the old ``SimEstimator(use_scaluq=...)`` API.

Prefer constructing :class:`~scikit_quri.backend.QulacsEstimator` or
:class:`~scikit_quri.backend.ScaluqEstimator` directly. ``SimEstimator`` is
kept so that existing call sites (tests, samples, downstream code) continue
to work without modification.
"""

import warnings

from .base_estimator import BaseEstimator
from .qulacs_estimator import QulacsEstimator
from .scaluq_estimator import ScaluqEstimator


[docs]def SimEstimator(use_scaluq: bool = False) -> BaseEstimator: """Construct a simulation estimator. Args: use_scaluq: If True, return a :class:`ScaluqEstimator` (batched scaluq backend). Otherwise return a :class:`QulacsEstimator` (per-sample qulacs backend). Returns: Either a ``QulacsEstimator`` or a ``ScaluqEstimator`` depending on ``use_scaluq``. .. deprecated:: Construct ``QulacsEstimator()`` or ``ScaluqEstimator()`` directly. """ warnings.warn( "SimEstimator is deprecated; use QulacsEstimator() or ScaluqEstimator() directly.", DeprecationWarning, stacklevel=2, ) return ScaluqEstimator() if use_scaluq else QulacsEstimator()