From 71482b1c4fd927c427812a71ae07143e20e33997 Mon Sep 17 00:00:00 2001 From: dyno511 <104981764+dyno511@users.noreply.github.com> Date: Tue, 10 Nov 2026 15:53:05 +0700 Subject: [PATCH 1/2] docs: fix broken cross-references in icalendar.cal.alarm --- news/1158.documentation.5.rst | 1 + src/icalendar/cal/alarm.py | 21 +++++++++++---------- 2 files changed, 12 insertions(+), 10 deletions(-) create mode 100644 news/1158.documentation.5.rst diff --git a/news/1158.documentation.5.rst b/news/1158.documentation.5.rst new file mode 100644 index 000000000..4a359c589 --- /dev/null +++ b/news/1158.documentation.5.rst @@ -0,0 +1 @@ +Fixed broken documentation links in :class:`icalendar.cal.alarm.Alarm.Triggers`. diff --git a/src/icalendar/cal/alarm.py b/src/icalendar/cal/alarm.py index 5d2d78c45..59e8dedc3 100644 --- a/src/icalendar/cal/alarm.py +++ b/src/icalendar/cal/alarm.py @@ -2,7 +2,8 @@ from __future__ import annotations -from datetime import date, datetime, timedelta +import datetime +from datetime import date, timedelta from typing import TYPE_CHECKING, NamedTuple from icalendar.attr import ( @@ -205,8 +206,8 @@ class Alarm(Component): TRIGGER = create_single_property( "TRIGGER", "dt", - (datetime, timedelta), - timedelta | datetime | None, + (datetime.datetime, timedelta), + timedelta | datetime.datetime | None, """The time at which this alarm fires, per :rfc:`5545#section-3.8.6.3`. The value is either a :class:`~datetime.timedelta` (relative trigger) or a @@ -293,9 +294,9 @@ class Triggers(NamedTuple): absolute - triggers at a datetime in UTC """ - start: tuple[timedelta] - end: tuple[timedelta] - absolute: tuple[datetime] + start: tuple[datetime.timedelta, ...] + end: tuple[datetime.timedelta, ...] + absolute: tuple[datetime.datetime, ...] @property def triggers(self): @@ -391,7 +392,7 @@ def new( cls, /, action: str | None = None, - trigger: timedelta | datetime | None = None, + trigger: timedelta | datetime.datetime | None = None, attachments: ATTACHMENTS_TYPE_SETTER = None, attendees: ATTENDEE_TYPE_SETTER = None, concepts: CONCEPTS_TYPE_SETTER = None, @@ -469,7 +470,7 @@ def _apply_duration_repeat( def new_display( cls, description: str, - trigger: timedelta | datetime, + trigger: timedelta | datetime.datetime, duration: timedelta | None = None, repeat: int | None = None, uid: str | uuid.UUID | None = None, @@ -564,7 +565,7 @@ def new_display( @classmethod def new_audio( cls, - trigger: timedelta | datetime, + trigger: timedelta | datetime.datetime, attachments: str | bytes | vUri | vBinary | None = None, duration: timedelta | None = None, repeat: int | None = None, @@ -646,7 +647,7 @@ def new_email( cls, summary: str, description: str, - trigger: timedelta | datetime, + trigger: timedelta | datetime.datetime, attendees: ATTENDEE_TYPE_SETTER, attachments: ATTACHMENTS_TYPE_SETTER = None, duration: timedelta | None = None, From 905ff5e7834c3e42de2a424db23227d5e89a6b87 Mon Sep 17 00:00:00 2001 From: dyno511 <104981764+dyno511@users.noreply.github.com> Date: Fri, 13 Nov 2026 11:43:50 +0700 Subject: [PATCH 2/2] docs: fix broken cross-references in icalendar.prop.recur --- news/1158.documentation.5.rst | 2 +- src/icalendar/cal/alarm.py | 21 ++++++++++----------- src/icalendar/prop/recur/recur.py | 4 ++-- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/news/1158.documentation.5.rst b/news/1158.documentation.5.rst index 4a359c589..6dfdfbce0 100644 --- a/news/1158.documentation.5.rst +++ b/news/1158.documentation.5.rst @@ -1 +1 @@ -Fixed broken documentation links in :class:`icalendar.cal.alarm.Alarm.Triggers`. +Fixed broken documentation links to :class:`~icalendar.cal.event.Event` and :class:`~icalendar.cal.todo.Todo` in :class:`~icalendar.prop.recur.recur.vRecur` docstring. @dyno511 diff --git a/src/icalendar/cal/alarm.py b/src/icalendar/cal/alarm.py index 59e8dedc3..5d2d78c45 100644 --- a/src/icalendar/cal/alarm.py +++ b/src/icalendar/cal/alarm.py @@ -2,8 +2,7 @@ from __future__ import annotations -import datetime -from datetime import date, timedelta +from datetime import date, datetime, timedelta from typing import TYPE_CHECKING, NamedTuple from icalendar.attr import ( @@ -206,8 +205,8 @@ class Alarm(Component): TRIGGER = create_single_property( "TRIGGER", "dt", - (datetime.datetime, timedelta), - timedelta | datetime.datetime | None, + (datetime, timedelta), + timedelta | datetime | None, """The time at which this alarm fires, per :rfc:`5545#section-3.8.6.3`. The value is either a :class:`~datetime.timedelta` (relative trigger) or a @@ -294,9 +293,9 @@ class Triggers(NamedTuple): absolute - triggers at a datetime in UTC """ - start: tuple[datetime.timedelta, ...] - end: tuple[datetime.timedelta, ...] - absolute: tuple[datetime.datetime, ...] + start: tuple[timedelta] + end: tuple[timedelta] + absolute: tuple[datetime] @property def triggers(self): @@ -392,7 +391,7 @@ def new( cls, /, action: str | None = None, - trigger: timedelta | datetime.datetime | None = None, + trigger: timedelta | datetime | None = None, attachments: ATTACHMENTS_TYPE_SETTER = None, attendees: ATTENDEE_TYPE_SETTER = None, concepts: CONCEPTS_TYPE_SETTER = None, @@ -470,7 +469,7 @@ def _apply_duration_repeat( def new_display( cls, description: str, - trigger: timedelta | datetime.datetime, + trigger: timedelta | datetime, duration: timedelta | None = None, repeat: int | None = None, uid: str | uuid.UUID | None = None, @@ -565,7 +564,7 @@ def new_display( @classmethod def new_audio( cls, - trigger: timedelta | datetime.datetime, + trigger: timedelta | datetime, attachments: str | bytes | vUri | vBinary | None = None, duration: timedelta | None = None, repeat: int | None = None, @@ -647,7 +646,7 @@ def new_email( cls, summary: str, description: str, - trigger: timedelta | datetime.datetime, + trigger: timedelta | datetime, attendees: ATTENDEE_TYPE_SETTER, attachments: ATTACHMENTS_TYPE_SETTER = None, duration: timedelta | None = None, diff --git a/src/icalendar/prop/recur/recur.py b/src/icalendar/prop/recur/recur.py index 09c5fca59..8e6920334 100644 --- a/src/icalendar/prop/recur/recur.py +++ b/src/icalendar/prop/recur/recur.py @@ -119,8 +119,8 @@ class vRecur(CaselessDict): >>> rrule vRecur({'FREQ': ['DAILY'], 'COUNT': [10]}) - You can choose to add an rrule to an :class:`icalendar.cal.Event` or - :class:`icalendar.cal.Todo`. + You can choose to add an rrule to an :class:`~icalendar.cal.event.Event` or + :class:`~icalendar.cal.todo.Todo`. .. code-block:: pycon