Azure / Azure/azure-functions-durable-python

Wrong return type on create_timer()

Ouverte Adaptée aux débutants
#587 2 commentaires 1 réaction 0 personnes assignées Voir sur GitHub
bug Debuggability fixed-in-v2 P2
Langage dominant
Python
Étoiles
157
Forks
70
Merge moyen
2 j 10 h
PR mergées (30 j)
2

Description

🐛 **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:

```python
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

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez dans azure/durable_functions/models/DurableOrchestrationContext.py vers la ligne 601 et examinez l’annotation de retour de create_timer(). Reproduisez l’exemple avec Pylance, puis vérifiez que l’appel à cancel() ne produit plus d’erreur de vérification de types et que l’annotation représente correctement la tâche de temporisation renvoyée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
api
Type d'issue
Bug
Difficulté
2/5
Temps estimé
1-3 heures
Activité
Calme
Clarté
Clairement spécifiée
Accessibilité débutants
72/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.