Wrong return type on create_timer()

Aberta Para iniciantes
#587 2 comentários 1 reação 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
72/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Pouca atividade
Stack de tecnologia
python
Domínio
api

Direção de pesquisa

Comece em azure/durable_functions/models/DurableOrchestrationContext.py, por volta da linha 601, e inspecione a anotação de retorno de create_timer(). Reproduza o exemplo com o Pylance e, em seguida, verifique se chamar cancel() não produz mais um erro de verificação de tipos e se a anotação representa corretamente a tarefa de temporizador retornada.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

bug Debuggability fixed-in-v2 P2

🐛 Describe the bug
Type hint for return value of create_timer() is TaskBase, but that does not contain the cancel() function. Returning TimerTask seems more appropiate.

Edit: See comment below on why TimerTask might not be a viable type anyway

Current source:

https://github.com/Azure/azure-functions-durable-python/blob/4ab004b6bc994b0395ee965186f8402b86b7a887/azure/durable_functions/models/DurableOrchestrationContext.py#L601

Example code:

    expiration = context.current_utc_datetime + timedelta(seconds=20)
    timeout_task = context.create_timer(expiration)
    timeout_task.cancel()  # <-- Pylance shows error: "Cannot access attribute "cancel" for class "TaskBase""

🤔 Expected behavior
You should be able to call cancel()without linter/type checker errors.

☕ Steps to reproduce
See above

Linguagem predominante
Python
Estrelas
157
Forks
71
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de Azure/azure-functions-durable-python

Todas as issues de Azure/azure-functions-durable-python

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.