# -*- coding: UTF-8 -*-
"""Module with miscellaneous diagnostic tools"""
from pyomo.core.base.block import TraversalStrategy, Block
from pyomo.gdp import Disjunct
import logging


logger = logging.getLogger('pyomo.util.diagnostics')
logger.setLevel(logging.INFO)


def log_disjunct_values(m):
    """Prints the values of the disjunct indicator variables."""
    for disj in m.component_data_objects(
        ctype=Disjunct, active=True, descend_into=(Block, Disjunct),
        descent_order=TraversalStrategy.PrefixDepthFirstSearch
    ):
        logger.info("%s %s%s" % (disj.name, disj.indicator_var.value,
                                 " fixed" if disj.indicator_var.fixed else ""))