Source code for biogeme.expressions.bayesian

"""Definitions useful for Bayesian estimation

Michel Bierlaire
Sat Oct 18 2025, 16:03:38
"""

from typing import Protocol

import pandas as pd
import pytensor.tensor as pt

try:
    from enum import StrEnum  # Python 3.11+
except ImportError:  # Python < 3.11
    from enum import Enum

    class StrEnum(str, Enum):
        """Minimal backport of Python 3.11 StrEnum."""

        pass


[docs] class PymcModelBuilderType(Protocol): def __call__(self, dataframe: pd.DataFrame) -> pt.TensorVariable: ...
[docs] class Dimension(StrEnum): """Enumeration of coordinate dimension labels for MCMC models. Values can be used directly as strings in PyMC/ArviZ model definitions, e.g.: dims=(Dimension.OBS, Dimension.ALT) """ ALT = "alt" OBS = "obs" INDIVIDUALS = "individuals"