python – Como obter o índice do primeiro elemento positivo em uma lista?

Estou procurando uma solução pythonica para um problema bem simples. Preciso obter o primeiro elemento de uma lista maior ou igual a zero.

Consegui fazer isso com a seguinte função:

def index_of_first_positive_element(values):
    for idx, val in enumerate(values):
        if val >= 0:
            return idx
    return -1

first_positive_idx = index_of_first_positive_element((-10, -5, 3, 15))
print(first_positive_idx) # 2

Minha função funciona, porém minha intuição me diz que deve existir uma maneira mais idiomática de fazer isso. Talvez alguma função built-in, técnica funcional ou um pythonismo qualquer (e.g., list comprehension).

Dentro do possível eu gostaria de uma técnica eficiente. Prefiro técnicas que, como no código acima, parem no primeiro elemento positivo ao invés de técnicas que acumulem todos os elementos positivos em uma lista intermediária.

Alguém tem idéia de como fazer isso?

P.S.: Soluções envolvendo bibliotecas também são bem vindas (só por favor não se esqueça de deixar um link para a(s) biblioteca(s) utilizadas e incluir os imports necessários para fazer seu código funcionar).