Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Task pre attribute is wrongly types

Aperta Adatta ai principianti
#1,065 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
70/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
python
Ambito
cli

Direzione di ricerca

Il report si concentra su Task.pre e sul decoratore @task in invoke.tasks; inizia individuando le relative dichiarazioni dei tipi e riproducendo l’errore di controllo dei tipi mostrato. Aggiorna le informazioni sui tipi pertinenti in modo che il valore di pre a runtime sia rappresentato accuratamente, quindi esegui nuovamente l’esempio e conferma che l’errore di sovrapposizione dei confronti sia scomparso.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

from typing import cast, Any
from invoke.context import Context
from invoke.tasks import Task, task

@task()
def bar(context: Context) -> None:
    pass

@task(bar)
def foo(context: Context) -> None:
    pass

assert cast(Task[Any], foo).pre == (bar,)

The code works during runtime, but during type checking it fails with

x.py:17:8: error: Non-overlapping equality check (left operand type: "list[str] | str", right operand type: "tuple[Any]")  [comparison-overlap]
    assert cast(Task[Any], foo).pre == (bar,)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lingua principale
Python
Stelle
4.8k
Fork
414
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di pyinvoke/invoke

Tutte le issue di pyinvoke/invoke

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.