Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

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

Cerrado Apto para principiantes
#735 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@muratatar06 ya está trabajando en esto.

Desde el 10/10/2026.

  • #736 de @muratatar06 — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
66/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
python
Área
api

Línea de trabajo

Empieza en Todo.complete() en caldav/calendarobjectresource.py, donde se declara el Literal rrule_mode y el despacho con getattr construye _complete_recurring_%s. Compáralo con el método _complete_recurring_thisandfuture, cerca de la línea 2293, y luego revisa _async_complete en busca de la misma discrepancia. Está terminado cuando rrule_mode="this_and_future" funciona, ambas grafías se aceptan y tienen tipado, y una prueba unitaria cubre cada valor del Literal.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
Python
Estrellas
412
Forks
113
Merge medio
10 h 29 min
PR fusionados (30 d)
57

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de python-caldav/caldav

Todos los issues de python-caldav/caldav

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.