Azure / Azure/azure-functions-durable-python
Wrong return type on create_timer()
- Vorherrschende Sprache
- Python
- Sterne
- 157
- Forks
- 70
- Ø Merge
- 2 T. 10 Std.
- Gemergte PRs (30 T.)
- 2
Beschreibung
🐛 **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
Beitragsleitfaden
Rechercherichtung
Start at azure/durable_functions/models/DurableOrchestrationContext.py around line 601 and inspect the return annotation for create_timer(). Reproduce the example with Pylance, then verify that calling cancel() no longer produces a type-checking error and that the annotation accurately represents the returned timer task.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- api
- Issue-Typ
- Bug
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Aktivitätsstatus
- Ruhig
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 72/100