Skip to content

is_trusted

yohou_mlflow.is_trusted(type_name, extra_trusted_types=(), extra_trusted_prefixes=())

Return whether one fully qualified type name passes the trust policy.

Parameters

Name Type Description Default
type_name str

Fully qualified type name, as reported by skops.io.get_untrusted_types.

required
extra_trusted_types iterable of str

Exact type names the caller trusts in addition to the built-in policy.

()
extra_trusted_prefixes iterable of str

Module prefixes the caller trusts, each ending in ".".

()

Returns

Type Description
bool

True when the name matches the built-in policy or the caller's additions.

Raises

Type Description
ValueError

If a prefix is not a module path ending in ".".

Examples

>>> is_trusted("yohou.point.reduction.PointReductionForecaster")
True
>>> is_trusted("lightgbm.sklearn.LGBMRegressor")
False
>>> is_trusted("lightgbm.sklearn.LGBMRegressor", ["lightgbm.sklearn.LGBMRegressor"])
True
>>> is_trusted("mypkg.features.Lags", extra_trusted_prefixes=["mypkg."])
True

Source Code

Source code in src/yohou_mlflow/_trust.py
def is_trusted(
    type_name: str, extra_trusted_types: Iterable[str] = (), extra_trusted_prefixes: Iterable[str] = ()
) -> bool:
    """Return whether one fully qualified type name passes the trust policy.

    Parameters
    ----------
    type_name : str
        Fully qualified type name, as reported by ``skops.io.get_untrusted_types``.
    extra_trusted_types : iterable of str, default=()
        Exact type names the caller trusts in addition to the built-in policy.
    extra_trusted_prefixes : iterable of str, default=()
        Module prefixes the caller trusts, each ending in ``"."``.

    Returns
    -------
    bool
        ``True`` when the name matches the built-in policy or the caller's additions.

    Raises
    ------
    ValueError
        If a prefix is not a module path ending in ``"."``.

    Examples
    --------
    >>> is_trusted("yohou.point.reduction.PointReductionForecaster")
    True
    >>> is_trusted("lightgbm.sklearn.LGBMRegressor")
    False
    >>> is_trusted("lightgbm.sklearn.LGBMRegressor", ["lightgbm.sklearn.LGBMRegressor"])
    True
    >>> is_trusted("mypkg.features.Lags", extra_trusted_prefixes=["mypkg."])
    True
    """
    return _is_trusted(type_name, frozenset(extra_trusted_types), validate_prefixes(extra_trusted_prefixes))