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

Todo.complete(rrule_mode="this_and_future") raises AttributeError; only the undeclared "thisandfuture" works

Chiusa Adatta ai principianti
#735 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@muratatar06 ci sta già lavorando.

Dal 10/10/2026.

  • #736 di @muratatar06 — aperta

Valutazione

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

Direzione di ricerca

Inizia da Todo.complete() in caldav/calendarobjectresource.py, dove è dichiarato il Literal rrule_mode e il dispatch con getattr costruisce _complete_recurring_%s. Confrontalo con il metodo _complete_recurring_thisandfuture, vicino alla riga 2293, poi controlla _async_complete per la stessa incongruenza. È completato quando rrule_mode="this_and_future" funziona, entrambe le grafie sono accettate e tipizzate, e un test unitario copre ogni valore del Literal.

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

Descrizione

Disclaimer: AI-generated text below the line, generated by Claude Opus 5.5 (Claude Code). It was found by a clean-context review of the calendaring API spec


Todo.complete() declares

rrule_mode: Literal["safe", "this_and_future"] = "safe",

and its docstring lists this_and_future, but it dispatches with

getattr(self, "_complete_recurring_%s" % rrule_mode)(completion_timestamp)

and the method is called _complete_recurring_thisandfuture. So:

  • complete(handle_rrule=True, rrule_mode="this_and_future"), the spelling the type and the docs promise, raises AttributeError.
  • rrule_mode="thisandfuture" works. The integration tests use it (tests/test_async_integration.py:1669), and so does the save-load.todo.recurrences.thisandfuture feature name. But a type checker rejects it, since it is not in the Literal.

Seen in caldav/calendarobjectresource.py at v3.4.0-9 (complete around line 2318, the dispatch at line 2348, the method at line 2293). The async path (_async_complete) should be checked for the same problem.

Possible fix: accept both spellings, mapping "this_and_future" to "thisandfuture" (or the other way round), put both in the Literal, and add a unit test that calls complete() with each value in the Literal.

Lingua principale
Python
Stelle
412
Fork
113
Merge medio
1g 2h
PR unite (30g)
43

Preparare l'ambiente

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 python-caldav/caldav

Tutte le issue di python-caldav/caldav

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.