"""
A collection of helper functions and classes.
"""
from enum import Enum
import numpy as np
[docs]class lessVerboseEnum(Enum):
    """
    A less verbose version of the Enum class.
    Example::
        class Test(lessVerboseEnum):
            TEST=0
        print(Test.TEST) # prints "TEST" instead of "Test.TEST"
    """
    def __repr__(self):
        return self.name
    def __str__(self):
        return self.name 
[docs]def get_action(action_probs: np.ndarray) -> int:
    """
    Sample an action from an action probability distribution.
    Args:
        action_probs: a numpy array of probabilities of length n_actions
    Returns:
        the index of the action sampled with the given probabilities
    """
    action = np.random.choice(np.arange(len(action_probs)), p=action_probs)
    return action