def validar_casas_decimais(valor, minimo=1, maximo=2):
    """Valida o número de casas decimais. Se o número de casas decimais não
    estiver dentro do mínimo e máximo, será lançada uma exceção do tipo
    :py:exc:`ValueError`.

    :param valor: Um objeto :py:class:`~decimal.Decimal`.

    :param minimo: Valor inteiro maior ou igual a zero indicando o número
        mínimo de casas decimais. Se não informado, ``1`` é o mínimo.

    :param maximo: Valor inteiro maior ou igual a zero indicando o número
        máximo de casas decimais. Se não informado, ``2`` é o máximo.

    :raises ValueError: Se o valor possuir um número de casas decimais fora dos
        limites mínimo e máximo informados.

    """
    atributos = valor.as_tuple()
    if not minimo <= abs(atributos.exponent) <= maximo:
        raise ValueError(
            'Numero de casas decimais fora dos limites esperados (valor={!r}, minimo={!r}, maximo={!r}): {!r}'
            .format(valor, minimo, maximo, atributos))
