Source code for inseq.utils.id_utils

from ..attr import STEP_SCORES_MAP, FeatureAttribution
from ..data import AggregationFunction, Aggregator

INSEQ_ID_MAP = {
    **FeatureAttribution.available_classes(),
    **Aggregator.available_classes(),
    **AggregationFunction.available_classes(),
    **STEP_SCORES_MAP,
}


[docs] def explain(id: str) -> None: """Given an identifier, prints a short explanation of what it represents in the Inseq library. Identifiers are used for attribution methods, aggregators, aggregation functions, and step functions. Example: `explain("attention")` prints the documentation for the attention attribution method. """ if id not in INSEQ_ID_MAP: raise ValueError(f"Unknown identifier: {id}") doc = INSEQ_ID_MAP[id].__doc__ if doc is None: print( "No documentation is available for this identifier. Please refer to the Inseq documentation for more " "information, or raise an issue on https://github.com/inseq-team/inseq/issues to request documentation " "for this identifier." ) print(doc)