Source code for asterion.utils

import os
import numpyro.distributions as dist

from typing import Optional, Iterable
from .typing import DistLike

PACKAGE_DIR = os.path.dirname(os.path.abspath(__file__))


[docs]def distribution( value: DistLike, default_dist: Optional[dist.Distribution] = None, ) -> dist.Distribution: """Return a numpyro distribition. If value is not a distribution, this returns the default distribution, unpacking value as its arguments. Args: value (:term:`dist_like`): Iterable of args to pass to default_dist, or a Distribution. default_dist (numpyro.distributions.distribution.Distribution, \ optional): Default distribution. Defaults to dist.Normal if None. Returns: numpyro.distributions.distribution.Distribution: [description] """ if default_dist is None: default_dist = dist.Normal if not isinstance(value, dist.Distribution): if not isinstance(value, Iterable): value = (value,) value = default_dist(*value) return value