Skip to content

Upgrading icalendar 6 to 7

Review needed6.3.2 → 7.3.0Security1

Review neededUpgrade verdict

A security fix.

  • icalendar has Algorithmic Complexity in Equality
1 item needs code or config changes

Python requirement changed in 7.0.0: >=3.8 → >=3.10.

Security1
icalendar has Algorithmic Complexity in Equality
High · CVSS 7.5

Generated by DepDelta from published Python source. Not mixed with prose notes.

  • added: export AdrFields
  • added: export Availability
  • added: export Available
  • added: export BUSYTYPE
  • added: export BrokenCalendarProperty
  • added: export CLASS
  • added: export Conference
  • added: export GloballyUniqueTZIDGuessed
  • added: export ICalParsingError
  • added: export Image
  • added: export JCalParsingError
  • added: export LazyCalendar
  • added: export NFields
  • added: export STATUS
  • added: export TRANSP
  • added: export VALUE
  • added: export VPROPERTY
  • added: export is_utc
  • added: export vAdr
  • added: export vBroken
  • added: export vCategory
  • added: export vN
  • added: export vOrg
  • added: export vUid
  • added: export vUnknown
  • added: export vXmlReference
  • removed: property AlarmTime.acknowledged -> Optional[datetime]
  • removed: property AlarmTime.parent -> Optional[Parent]
  • changed: constructor AlarmTime(alarm: Alarm, trigger: datetime, acknowledged_until: Optional[datetime]=…, snoozed_until: Optional[datetime]=…, parent: Optional[Parent]=…) → constructor AlarmTime(alarm: Alarm, trigger: datetime, acknowledged_until: datetime | None=…, snoozed_until: datetime | None=…, parent: Parent | None=…) -> None
  • changed: constructor Alarms(component: Optional[Alarm | Event | Todo]=…) → constructor Alarms(component: Alarm | Event | Todo | None=…) -> None
  • changed: method Alarms.acknowledge_until(dt: Optional[date]) -> None → method Alarms.acknowledge_until(dt: date | None) -> None
  • changed: method Alarms.add_component(component: Alarm | Parent) → method Alarms.add_component(component: Alarm | Parent) -> None
  • changed: method Alarms.set_end(dt: Optional[date]) → method Alarms.set_end(dt: date | None)
  • changed: method Alarms.set_local_timezone(tzinfo: Optional[tzinfo | str]) → method Alarms.set_local_timezone(tzinfo: tzinfo | str | None)
  • changed: method Alarms.set_start(dt: Optional[date]) → method Alarms.set_start(dt: date | None)
  • changed: method Alarms.snooze_until(dt: Optional[date]) -> None → method Alarms.snooze_until(dt: date | None) -> None
  • added: property AlarmTime.acknowledged -> datetime | None
  • added: property AlarmTime.action -> str
  • added: property AlarmTime.parent -> Parent | None
  • changed: function multi_language_text_property(main_prop: str, compatibility_prop: str, doc: str) -> property → function multi_language_text_property(main_prop: str, compatibility_prop: str | None, doc: str) -> property
  • changed: function single_int_property(prop: str, default: int, doc: str) -> property → function single_int_property(prop: str, default: int, doc: str, *, min_value: int | None=…) -> property
  • added: function create_single_property(prop: str, value_attr: str | None, value_type: tuple[type], type_def: type, doc: str, vProp: type=…, convert: Callable[[object], object] | None=…)
  • added: function duration_property(component: str) -> property
  • added: function get_duration_property(component: Component) -> timedelta
  • added: function get_end_property(component: Component, end_property: str) -> date | datetime
  • added: function get_start_end_duration_with_validation(component: Component, start_property: str, end_property: str, component_name: str) -> tuple[date | datetime | None, date | datetime | None, timedelta | None]
  • added: function get_start_property(component: Component) -> date | datetime
  • added: function multi_string_property(name: str, doc: str)
  • added: function property_del_duration(self: Component)
  • added: function property_get_duration(self: Component) -> timedelta | None
  • added: function property_set_duration(self: Component, value: timedelta | None)
  • added: function rfc_7953_duration_property(self) -> timedelta | None
  • added: function rfc_7953_end_property(self) -> timedelta | None
  • added: function set_duration_with_locking(component: Component, duration: timedelta | None, locked: Literal['start', 'end'], end_property: str) -> None
  • added: function set_end_with_locking(component: Component, end: date | datetime, locked: Literal['start', 'duration'], end_property: str) -> None
  • added: function set_start_with_locking(component: Component, start: date | datetime, locked: Literal['duration', 'end'] | None, end_property: str) -> None
  • added: variable CONCEPTS_TYPE_SETTER: TypeAlias
  • added: variable LINKS_TYPE_SETTER: TypeAlias
  • added: variable RECURRENCE_ID
  • added: variable RELATED_TO_TYPE_SETTER: TypeAlias
  • added: variable REQUEST_STATUS_property
  • added: variable attendees_property
  • added: variable busy_type_property
  • added: variable class_property
  • added: variable comments_property
  • added: variable concepts_property
  • added: variable conferences_property
  • added: variable contacts_property
  • added: variable description_property
  • added: variable descriptions_property
  • added: variable images_property
  • added: variable links_property
  • added: variable location_property
  • added: variable organizer_property
  • added: variable priority_property
  • added: variable property_doc_duration_template
  • added: variable refids_property
  • added: variable related_to_property
  • added: variable repeat_property
  • added: variable rfc_7953_dtend_property
  • added: variable rfc_7953_dtstart_property
  • added: variable source_property
  • added: variable status_property
  • added: variable summary_property
  • added: variable transparency_property
  • added: variable url_property
  • removed: class Alarm(Component)
  • removed: class Alarm.Triggers(NamedTuple)
  • removed: class Calendar(Component)
  • removed: class Component(CaselessDict)
  • removed: class ComponentFactory(CaselessDict)
  • removed: class Event(Component)
  • removed: class FreeBusy(Component)
  • removed: class Journal(Component)
  • removed: class Timezone(Component)
  • removed: class TimezoneDaylight(Component)
  • removed: class TimezoneStandard(Component)
  • removed: class Todo(Component)
  • removed: constructor Component(*args, **kwargs)
  • removed: constructor ComponentFactory(*args, **kwargs)
  • removed: export IncompleteComponent
  • removed: field Alarm.ACKNOWLEDGED
  • removed: field Alarm.DURATION
  • removed: field Alarm.REPEAT
  • removed: field Alarm.TRIGGER
  • removed: field Alarm.Triggers.absolute: tuple[datetime]
  • removed: field Alarm.Triggers.end: tuple[timedelta]
  • removed: field Alarm.Triggers.start: tuple[timedelta]
  • removed: field Alarm.inclusive
  • removed: field Alarm.multiple
  • removed: field Alarm.name
  • removed: field Alarm.required
  • removed: field Alarm.singletons
  • removed: field Alarm.uid
  • removed: field Calendar.calendar_name
  • removed: field Calendar.canonical_order
  • removed: field Calendar.categories
  • removed: field Calendar.color
  • removed: field Calendar.description
  • removed: field Calendar.multiple
  • removed: field Calendar.name
  • removed: field Calendar.required
  • removed: field Calendar.singletons
  • removed: field Calendar.uid
  • removed: field Component.DTSTAMP
  • removed: field Component.LAST_MODIFIED
  • removed: field Component.exclusive
  • removed: field Component.ignore_exceptions
  • removed: field Component.inclusive
  • removed: field Component.multiple
  • removed: field Component.name
  • removed: field Component.required
  • removed: field Component.singletons
  • removed: field Event.DTEND
  • removed: field Event.DTSTART
  • removed: field Event.DURATION
  • removed: field Event.X_MOZ_LASTACK
  • removed: field Event.X_MOZ_SNOOZE_TIME
  • removed: field Event.canonical_order
  • removed: field Event.categories
  • removed: field Event.color
  • removed: field Event.exclusive
  • removed: field Event.exdates
  • removed: field Event.ignore_exceptions
  • removed: field Event.multiple
  • removed: field Event.name
  • removed: field Event.rdates
  • removed: field Event.required
  • removed: field Event.rrules
  • removed: field Event.sequence
  • removed: field Event.singletons
  • removed: field Event.uid
  • removed: field FreeBusy.multiple
  • removed: field FreeBusy.name
  • removed: field FreeBusy.required
  • removed: field FreeBusy.singletons
  • removed: field FreeBusy.uid
  • removed: field Journal.DTSTART
  • removed: field Journal.categories
  • removed: field Journal.color
  • removed: field Journal.end
  • removed: field Journal.exdates
  • removed: field Journal.multiple
  • removed: field Journal.name
  • removed: field Journal.rdates
  • removed: field Journal.required
  • removed: field Journal.rrules
  • removed: field Journal.sequence
  • removed: field Journal.singletons
  • removed: field Journal.uid
  • removed: field Timezone.canonical_order
  • removed: field Timezone.name
  • removed: field Timezone.required
  • removed: field Timezone.singletons
  • removed: field Timezone.subcomponents: list[TimezoneStandard | TimezoneDaylight]
  • removed: field TimezoneDaylight.DTSTART
  • removed: field TimezoneDaylight.TZOFFSETFROM
  • removed: field TimezoneDaylight.TZOFFSETTO
  • removed: field TimezoneDaylight.exdates
  • removed: field TimezoneDaylight.multiple
  • removed: field TimezoneDaylight.name
  • removed: field TimezoneDaylight.rdates
  • removed: field TimezoneDaylight.required
  • removed: field TimezoneDaylight.rrules
  • removed: field TimezoneDaylight.singletons
  • removed: field TimezoneStandard.DTSTART
  • removed: field TimezoneStandard.TZOFFSETFROM
  • removed: field TimezoneStandard.TZOFFSETTO
  • removed: field TimezoneStandard.exdates
  • removed: field TimezoneStandard.multiple
  • removed: field TimezoneStandard.name
  • removed: field TimezoneStandard.rdates
  • removed: field TimezoneStandard.required
  • removed: field TimezoneStandard.rrules
  • removed: field TimezoneStandard.singletons
  • removed: field Todo.DTSTART
  • removed: field Todo.DUE
  • removed: field Todo.DURATION
  • removed: field Todo.X_MOZ_LASTACK
  • removed: field Todo.X_MOZ_SNOOZE_TIME
  • removed: field Todo.categories
  • removed: field Todo.color
  • removed: field Todo.exclusive
  • removed: field Todo.exdates
  • removed: field Todo.multiple
  • removed: field Todo.name
  • removed: field Todo.rdates
  • removed: field Todo.required
  • removed: field Todo.rrules
  • removed: field Todo.sequence
  • removed: field Todo.singletons
  • removed: field Todo.uid
  • removed: function get_example(component_directory: str, example_name: str) -> bytes
  • removed: method Calendar.add_missing_timezones(first_date: date=…, last_date: date=…)
  • removed: method Calendar.get_missing_tzids() -> set[str]
  • removed: method Calendar.get_used_tzids() -> set[str]
  • removed: method Component.add(name, value, parameters=…, encode=…)
  • removed: method Component.add_component(component: Component)
  • removed: method Component.content_line(name, value, sorted=…)
  • removed: method Component.content_lines(sorted=…)
  • removed: method Component.decoded(name, default=…)
  • removed: method Component.get_inline(name, decode=…)
  • removed: method Component.is_empty()
  • removed: method Component.is_thunderbird() -> bool
  • removed: method Component.property_items(recursive=…, sorted=…) -> list[tuple[str, object]]
  • removed: method Component.set_inline(name, values, encode=…)
  • removed: method Component.to_ical(sorted=…)
  • removed: method Component.walk(name=…, select=…) -> list[Component]
  • removed: method Timezone.get_transitions() -> Tuple[List[datetime], List[Tuple[timedelta, timedelta, str]]]
  • removed: method Timezone.to_tz(tzp: TZP=…, lookup_tzid: bool=…)
  • removed: property Alarm.TRIGGER_RELATED -> str
  • removed: property Alarm.triggers
  • removed: property Calendar.events -> list[Event]
  • removed: property Calendar.freebusy -> list[FreeBusy]
  • removed: property Calendar.timezones -> list[Timezone]
  • removed: property Calendar.todos -> list[Todo]
  • removed: property Event.alarms -> Alarms
  • removed: property Event.duration -> timedelta
  • removed: property Event.end -> date | datetime
  • removed: property Event.start -> date | datetime
  • removed: property Journal.duration -> timedelta
  • removed: property Journal.start -> date
  • removed: property Timezone.daylight -> list[TimezoneDaylight]
  • removed: property Timezone.standard -> list[TimezoneStandard]
  • removed: property Timezone.tz_name -> str
  • removed: property Todo.alarms -> Alarms
  • removed: property Todo.duration -> timedelta
  • removed: property Todo.end -> date | datetime
  • removed: property Todo.start -> date | datetime
  • removed: static method Calendar.example(name: str=…) -> Calendar
  • removed: static method Calendar.from_ical(st, multiple=…)
  • removed: static method Component.from_ical(st, multiple=…)
  • removed: static method Event.example(name: str=…) -> Event
  • removed: static method Timezone.example(name: str=…) -> Calendar
  • removed: static method Timezone.from_tzid(tzid: str, tzp: TZP=…, first_date: date=…, last_date: date=…) -> Timezone
  • removed: static method Timezone.from_tzinfo(timezone: tzinfo, tzid: Optional[str]=…, first_date: date=…, last_date: date=…) -> Timezone
  • removed: variable INLINE
  • removed: variable component_factory
  • added: export Alarm
  • added: export Availability
  • added: export Available
  • added: export Calendar
  • added: export Component
  • added: export ComponentFactory
  • added: export Event
  • added: export FreeBusy
  • added: export Journal
  • added: export LazyCalendar
  • added: export Timezone
  • added: export TimezoneDaylight
  • added: export TimezoneStandard
  • added: export Todo
  • added: class Alarm(Component)
  • added: class Alarm.Triggers(NamedTuple)
  • added: field Alarm.ACKNOWLEDGED
  • added: field Alarm.ACTION
  • added: field Alarm.DURATION
  • added: field Alarm.REPEAT
  • added: field Alarm.TRIGGER
  • added: field Alarm.Triggers.absolute: tuple[datetime]
  • added: field Alarm.Triggers.end: tuple[timedelta]
  • added: field Alarm.Triggers.start: tuple[timedelta]
  • added: field Alarm.attendees
  • added: field Alarm.description
  • added: field Alarm.inclusive
  • added: field Alarm.multiple
  • added: field Alarm.name
  • added: field Alarm.repeat
  • added: field Alarm.required
  • added: field Alarm.singletons
  • added: field Alarm.summary
  • added: field Alarm.uid
  • added: property Alarm.TRIGGER_RELATED -> str
  • added: property Alarm.triggers
  • added: static method Alarm.example(name: str=…) -> Alarm
  • added: static method Alarm.new(attendees: list[vCalAddress] | None=…, concepts: CONCEPTS_TYPE_SETTER=…, description: str | None=…, links: LINKS_TYPE_SETTER=…, refids: list[str] | str | None=…, related_to: RELATED_TO_TYPE_SETTER=…, summary: str | None=…, uid: str | uuid.UUID | None=…) -> Self
  • added: static method Alarm.new_audio(trigger: timedelta | datetime, attach: str | bytes | None=…, duration: timedelta | None=…, repeat: int | None=…, uid: str | uuid.UUID | None=…, links: LINKS_TYPE_SETTER=…, related_to: RELATED_TO_TYPE_SETTER=…, refids: list[str] | str | None=…, concepts: CONCEPTS_TYPE_SETTER=…) -> Alarm
  • added: static method Alarm.new_display(description: str, trigger: timedelta | datetime, duration: timedelta | None=…, repeat: int | None=…, uid: str | uuid.UUID | None=…, links: LINKS_TYPE_SETTER=…, related_to: RELATED_TO_TYPE_SETTER=…, refids: list[str] | str | None=…, concepts: CONCEPTS_TYPE_SETTER=…) -> Alarm
  • added: static method Alarm.new_email(summary: str, description: str, trigger: timedelta | datetime, attendees: Sequence[vCalAddress] | vCalAddress, attachments: Sequence[str] | str | None=…, duration: timedelta | None=…, repeat: int | None=…, uid: str | uuid.UUID | None=…, links: LINKS_TYPE_SETTER=…, related_to: RELATED_TO_TYPE_SETTER=…, refids: list[str] | str | None=…, concepts: CONCEPTS_TYPE_SETTER=……
  • added: class Availability(Component)
  • added: field Availability.DTEND
  • added: field Availability.DTSTART
  • added: field Availability.DURATION
  • added: field Availability.busy_type
  • added: field Availability.canonical_order
  • added: field Availability.categories
  • added: field Availability.classification
  • added: field Availability.contacts
  • added: field Availability.description
  • added: field Availability.duration
  • added: field Availability.end
  • added: field Availability.exclusive
  • added: field Availability.location
  • added: field Availability.name
  • added: field Availability.organizer
  • added: field Availability.priority
  • added: field Availability.required
  • added: field Availability.sequence
  • added: field Availability.singletons
  • added: field Availability.start
  • added: field Availability.summary
  • added: field Availability.url
  • added: property Availability.available -> list[Available]
  • added: static method Availability.example(name: str=…) -> Availability
  • added: static method Availability.new(busy_type: BUSYTYPE | None=…, categories: Sequence[str]=…, comments: list[str] | str | None=…, components: Sequence[Available] | None=…, concepts: CONCEPTS_TYPE_SETTER=…, contacts: list[str] | str | None=…, created: date | None=…, classification: CLASS | None=…, description: str | None=…, end: datetime | None=…, last_modified: date | None=…, links: LINKS_TYPE_SETTER…
  • added: class Available(Component)
  • added: field Available.DTEND
  • added: field Available.DTSTART
  • added: field Available.DURATION
  • added: field Available.categories
  • added: field Available.contacts
  • added: field Available.description
  • added: field Available.duration
  • added: field Available.end
  • added: field Available.exdates
  • added: field Available.location
  • added: field Available.name
  • added: field Available.rdates
  • added: field Available.rrules
  • added: field Available.sequence
  • added: field Available.start
  • added: field Available.summary
  • added: field Available.uid
  • added: static method Available.example(name: str=…) -> Available
  • added: static method Available.new(categories: Sequence[str]=…, comments: list[str] | str | None=…, concepts: CONCEPTS_TYPE_SETTER=…, contacts: list[str] | str | None=…, created: date | None=…, description: str | None=…, end: datetime | None=…, last_modified: date | None=…, links: LINKS_TYPE_SETTER=…, location: str | None=…, recurrence_id: date | datetime | None=…, refids: list[str] | str | None=…, rela…
  • added: class Calendar(Component)
  • added: field Calendar.calendar_name
  • added: field Calendar.calscale
  • added: field Calendar.canonical_order
  • added: field Calendar.categories
  • added: field Calendar.color
  • added: field Calendar.description
  • added: field Calendar.images
  • added: field Calendar.method
  • added: field Calendar.multiple
  • added: field Calendar.name
  • added: field Calendar.prodid
  • added: field Calendar.required
  • added: field Calendar.singletons
  • added: field Calendar.source
  • added: field Calendar.uid
  • added: field Calendar.url
  • added: field Calendar.version
  • added: method Calendar.add_missing_timezones(first_date: date=…, last_date: date=…)
  • added: method Calendar.get_missing_tzids() -> set[str]
  • added: method Calendar.get_used_tzids() -> set[str]
  • added: method Calendar.validate()
  • added: property Calendar.availabilities -> list[Availability]
  • added: property Calendar.events -> list[Event]
  • added: property Calendar.freebusy -> list[FreeBusy]
  • added: property Calendar.journals -> list[Journal]
  • added: property Calendar.refresh_interval -> timedelta | None
  • added: property Calendar.timezones -> list[Timezone]
  • added: property Calendar.todos -> list[Todo]
  • added: static method Calendar.example(name: str=…) -> Calendar
  • added: static method Calendar.from_ical(st: str | bytes | Path, multiple: Literal[False]=…) -> Calendar | (st: str | bytes | Path, multiple: Literal[True]) -> list[Calendar]
  • added: static method Calendar.new(calscale: str | None=…, categories: Sequence[str]=…, color: str | None=…, concepts: CONCEPTS_TYPE_SETTER=…, description: str | None=…, language: str | None=…, last_modified: date | datetime | None=…, links: LINKS_TYPE_SETTER=…, method: str | None=…, name: str | None=…, organization: str | None=…, prodid: str | None=…, refresh_interval: timedelta | None=…, refids: list[s…
  • added: class Component(CaselessDict)
  • added: constructor Component(*args: Any, **kwargs: Any) -> None
  • added: field Component.CREATED
  • added: field Component.DTSTAMP
  • added: field Component.LAST_MODIFIED
  • added: field Component.comments
  • added: field Component.concepts
  • added: field Component.exclusive: ClassVar[tuple[()]]
  • added: field Component.ignore_exceptions: ClassVar[bool]
  • added: field Component.inclusive: ClassVar[tuple[str] | tuple[tuple[str, str]]]
  • added: field Component.links
  • added: field Component.multiple: ClassVar[tuple[()]]
  • added: field Component.name: ClassVar[str | None]
  • added: field Component.refids
  • added: field Component.related_to
  • added: field Component.required: ClassVar[tuple[()]]
  • added: field Component.singletons: ClassVar[tuple[()]]
  • added: field Component.stamp
  • added: field Component.subcomponents: list[Component]
  • added: field Component.types_factory: ClassVar[TypesFactory]
  • added: field Component.uid
  • added: method Component.add(name: str, value, parameters: dict[str, str] | Parameters=…, encode: bool=…) -> None
  • added: method Component.add_component(component: Component) -> None
  • added: method Component.content_line(name, value, sorted: bool=…)
  • added: method Component.content_lines(sorted: bool=…)
  • added: method Component.copy(recursive: bool=…) -> Self
  • added: method Component.decoded(name: str, default: Any=…) -> Any
  • added: method Component.get(key, default=…) -> Any
  • added: method Component.get_inline(name, decode=…)
  • added: method Component.is_empty() -> bool
  • added: method Component.is_lazy() -> bool
  • added: method Component.is_thunderbird() -> bool
  • added: method Component.parse() -> Self
  • added: method Component.property_items(recursive: bool=…, sorted: bool=…) -> list[tuple[str, object]]
  • added: method Component.set_inline(name, values, encode=…)
  • added: method Component.to_ical(sorted: bool=…)
  • added: method Component.to_jcal() -> list
  • added: method Component.to_json() -> str
  • added: method Component.walk(name: str | None=…, select: callable[[Component], bool]=…) -> list[Component]
  • added: method Component.with_uid(uid: str) -> list[Component]
  • added: property Component.created -> datetime
  • added: property Component.last_modified -> datetime
  • added: static method Component.from_ical(st: str | bytes, multiple: Literal[False]=…) -> Component | (st: str | bytes, multiple: Literal[True]) -> list[Component]
  • added: static method Component.from_jcal(jcal: str | list) -> Component
  • added: static method Component.get_component_class(name: str) -> type[Component]
  • added: static method Component.new(created: date | None=…, comments: list[str] | str | None=…, concepts: CONCEPTS_TYPE_SETTER=…, last_modified: date | None=…, links: LINKS_TYPE_SETTER=…, refids: list[str] | str | None=…, related_to: RELATED_TO_TYPE_SETTER=…, stamp: date | None=…, subcomponents: Iterable[Component] | None=…) -> Self
  • added: static method Component.register(component_class: type[Component]) -> None
  • added: class ComponentFactory(CaselessDict)
  • added: constructor ComponentFactory(*args: Any, **kwargs: Any) -> None
  • added: method ComponentFactory.add_component_class(cls: type[Component]) -> None
  • added: method ComponentFactory.get_component_class(name: str) -> type[Component]
  • added: class Event(Component)
  • added: field Event.DTEND
  • added: field Event.DTSTART
  • added: field Event.DURATION
  • added: field Event.REQUEST_STATUS
  • added: field Event.X_MOZ_LASTACK
  • added: field Event.X_MOZ_SNOOZE_TIME
  • added: field Event.attendees
  • added: field Event.canonical_order
  • added: field Event.categories
  • added: field Event.classification
  • added: field Event.color
  • added: field Event.conferences
  • added: field Event.contacts
  • added: field Event.description
  • added: field Event.exclusive
  • added: field Event.exdates
  • added: field Event.ignore_exceptions
  • added: field Event.images
  • added: field Event.location
  • added: field Event.multiple
  • added: field Event.name
  • added: field Event.organizer
  • added: field Event.priority
  • added: field Event.rdates
  • added: field Event.required
  • added: field Event.rrules
  • added: field Event.sequence
  • added: field Event.singletons
  • added: field Event.status
  • added: field Event.summary
  • added: field Event.transparency
  • added: field Event.uid
  • added: field Event.url
  • added: method Event.set_duration(duration: timedelta | None, locked: Literal['start', 'end']=…)
  • added: method Event.set_end(end: date | datetime, locked: Literal['start', 'duration']=…)
  • added: method Event.set_start(start: date | datetime, locked: Literal['duration', 'end'] | None=…)
  • added: property Event.alarms -> Alarms
  • added: property Event.duration -> timedelta
  • added: property Event.end -> date | datetime
  • added: property Event.start -> date | datetime
  • added: static method Event.example(name: str=…) -> Event
  • added: static method Event.new(attendees: list[vCalAddress] | None=…, categories: Sequence[str]=…, classification: CLASS | None=…, color: str | None=…, comments: list[str] | str | None=…, concepts: CONCEPTS_TYPE_SETTER=…, conferences: list[Conference] | None=…, contacts: list[str] | str | None=…, created: date | None=…, description: str | None=…, end: date | datetime | None=…, last_modified: date | None…
  • added: class FreeBusy(Component)
  • added: field FreeBusy.DTEND
  • added: field FreeBusy.DTSTART
  • added: field FreeBusy.REQUEST_STATUS
  • added: field FreeBusy.contacts
  • added: field FreeBusy.end
  • added: field FreeBusy.multiple
  • added: field FreeBusy.name
  • added: field FreeBusy.organizer
  • added: field FreeBusy.required
  • added: field FreeBusy.singletons
  • added: field FreeBusy.start
  • added: field FreeBusy.uid
  • added: field FreeBusy.url
  • added: property FreeBusy.duration -> timedelta | None
  • added: static method FreeBusy.example(name: str=…) -> FreeBusy
  • added: static method FreeBusy.new(comments: list[str] | str | None=…, concepts: CONCEPTS_TYPE_SETTER=…, contacts: list[str] | str | None=…, end: date | datetime | None=…, links: LINKS_TYPE_SETTER=…, organizer: vCalAddress | str | None=…, refids: list[str] | str | None=…, related_to: RELATED_TO_TYPE_SETTER=…, request_status: list[str] | str | None=…, stamp: date | None=…, start: date | datetime | None=…,…
  • added: class Journal(Component)
  • added: field Journal.DTSTART
  • added: field Journal.REQUEST_STATUS
  • added: field Journal.attendees
  • added: field Journal.categories
  • added: field Journal.classification
  • added: field Journal.color
  • added: field Journal.contacts
  • added: field Journal.descriptions
  • added: field Journal.end
  • added: field Journal.exdates
  • added: field Journal.images
  • added: field Journal.multiple
  • added: field Journal.name
  • added: field Journal.organizer
  • added: field Journal.rdates
  • added: field Journal.required
  • added: field Journal.rrules
  • added: field Journal.sequence
  • added: field Journal.singletons
  • added: field Journal.status
  • added: field Journal.summary
  • added: field Journal.uid
  • added: field Journal.url
  • added: property Journal.description -> str
  • added: property Journal.duration -> timedelta
  • added: property Journal.start -> date
  • added: static method Journal.example(name: str=…) -> Journal
  • added: static method Journal.new(attendees: list[vCalAddress] | None=…, categories: Sequence[str]=…, classification: CLASS | None=…, color: str | None=…, comments: list[str] | str | None=…, concepts: CONCEPTS_TYPE_SETTER=…, contacts: list[str] | str | None=…, created: date | None=…, description: str | Sequence[str] | None=…, last_modified: date | None=…, links: LINKS_TYPE_SETTER=…, organizer: vCalAddres…
  • added: class LazyCalendar(Calendar)
  • added: constructor LazyCalendar(*args: Any, **kwargs: Any) -> None
  • added: method LazyCalendar.add_component(component: Component) -> None
  • added: method LazyCalendar.is_lazy() -> bool
  • added: method LazyCalendar.with_uid(uid: str) -> list[Component]
  • added: property LazyCalendar.subcomponents -> list[Component]
  • added: class Timezone(Component)
  • added: class TimezoneDaylight(Component)
  • added: class TimezoneStandard(Component)
  • added: field Timezone.DEFAULT_FIRST_DATE
  • added: field Timezone.DEFAULT_LAST_DATE
  • added: field Timezone.canonical_order
  • added: field Timezone.name
  • added: field Timezone.required
  • added: field Timezone.singletons
  • added: field Timezone.subcomponents: list[TimezoneStandard | TimezoneDaylight]
  • added: field TimezoneDaylight.DTSTART
  • added: field TimezoneDaylight.TZOFFSETFROM
  • added: field TimezoneDaylight.TZOFFSETTO
  • added: field TimezoneDaylight.exdates
  • added: field TimezoneDaylight.multiple
  • added: field TimezoneDaylight.name
  • added: field TimezoneDaylight.rdates
  • added: field TimezoneDaylight.required
  • added: field TimezoneDaylight.rrules
  • added: field TimezoneDaylight.singletons
  • added: field TimezoneStandard.DTSTART
  • added: field TimezoneStandard.TZOFFSETFROM
  • added: field TimezoneStandard.TZOFFSETTO
  • added: field TimezoneStandard.exdates
  • added: field TimezoneStandard.multiple
  • added: field TimezoneStandard.name
  • added: field TimezoneStandard.rdates
  • added: field TimezoneStandard.required
  • added: field TimezoneStandard.rrules
  • added: field TimezoneStandard.singletons
  • added: method Timezone.get_transitions() -> tuple[list[datetime], list[tuple[timedelta, timedelta, str]]]
  • added: method Timezone.to_tz(tzp: TZP=…, lookup_tzid: bool=…)
  • added: property Timezone.daylight -> list[TimezoneDaylight]
  • added: property Timezone.standard -> list[TimezoneStandard]
  • added: property Timezone.tz_name -> str
  • added: static method Timezone.example(name: str=…) -> Calendar
  • added: static method Timezone.from_tzid(tzid: str, tzp: TZP=…, first_date: date=…, last_date: date=…) -> Timezone
  • added: static method Timezone.from_tzinfo(timezone: tzinfo, tzid: str | None=…, first_date: date=…, last_date: date=…) -> Timezone
  • added: class Todo(Component)
  • added: field Todo.DTSTART
  • added: field Todo.DUE
  • added: field Todo.DURATION
  • added: field Todo.REQUEST_STATUS
  • added: field Todo.X_MOZ_LASTACK
  • added: field Todo.X_MOZ_SNOOZE_TIME
  • added: field Todo.attendees
  • added: field Todo.categories
  • added: field Todo.classification
  • added: field Todo.color
  • added: field Todo.conferences
  • added: field Todo.contacts
  • added: field Todo.description
  • added: field Todo.exclusive
  • added: field Todo.exdates
  • added: field Todo.images
  • added: field Todo.location
  • added: field Todo.multiple
  • added: field Todo.name
  • added: field Todo.organizer
  • added: field Todo.priority
  • added: field Todo.rdates
  • added: field Todo.required
  • added: field Todo.rrules
  • added: field Todo.sequence
  • added: field Todo.singletons
  • added: field Todo.status
  • added: field Todo.summary
  • added: field Todo.uid
  • added: field Todo.url
  • added: method Todo.set_duration(duration: timedelta | None, locked: Literal['start', 'end']=…)
  • added: method Todo.set_end(end: date | datetime, locked: Literal['start', 'duration']=…)
  • added: method Todo.set_start(start: date | datetime, locked: Literal['duration', 'end'] | None=…)
  • added: property Todo.alarms -> Alarms
  • added: property Todo.duration -> timedelta
  • added: property Todo.end -> date | datetime
  • added: property Todo.start -> date | datetime
  • added: static method Todo.example(name: str=…) -> Todo
  • added: static method Todo.new(attendees: list[vCalAddress] | None=…, categories: Sequence[str]=…, classification: CLASS | None=…, color: str | None=…, comments: list[str] | str | None=…, concepts: CONCEPTS_TYPE_SETTER=…, contacts: list[str] | str | None=…, conferences: list[Conference] | None=…, created: date | None=…, description: str | None=…, end: date | datetime | None=…, last_modified: date | None=…
  • changed: constructor CaselessDict(*args, **kwargs) → constructor CaselessDict(*args: Any, **kwargs: Any) -> None
  • changed: function canonsort_items(dict1, canonical_order=…) → function canonsort_items(dict1: Mapping[KT, VT], canonical_order: Iterable[KT] | None=…) -> list[tuple[KT, VT]]
  • changed: function canonsort_keys(keys, canonical_order=…) → function canonsort_keys(keys: Iterable[KT], canonical_order: Iterable[KT] | None=…) -> list[KT]
  • changed: method CaselessDict.copy() → method CaselessDict.copy() -> Self
  • changed: method CaselessDict.get(key, default=…) → method CaselessDict.get(key: Any, default: Any=…) -> Any
  • changed: method CaselessDict.has_key(key) → method CaselessDict.has_key(key: Any) -> bool
  • changed: method CaselessDict.pop(key, default=…) → method CaselessDict.pop(key: Any, default: Any=…) -> Any
  • changed: method CaselessDict.popitem() → method CaselessDict.popitem() -> tuple[Any, Any]
  • changed: method CaselessDict.setdefault(key, value=…) → method CaselessDict.setdefault(key: Any, value: Any=…) -> Any
  • changed: method CaselessDict.sorted_items() → method CaselessDict.sorted_items() -> list[tuple[Any, Any]]
  • changed: method CaselessDict.sorted_keys() → method CaselessDict.sorted_keys() -> list[str]
  • changed: method CaselessDict.update(*args, **kwargs) → method CaselessDict.update(*args: Any, **kwargs: Any) -> None
  • changed: function view(event) → function view(event: Event) -> str
  • added: export Self
  • added: export TypeGuard
  • added: export TypeIs
  • added: function deprecate_for_version_8(func)
  • added: variable Self
  • added: variable TypeGuard
  • added: variable TypeIs
  • added: variable MAX_ALARM_REPEAT: int
  • added: class BUSYTYPE(StrEnum)
  • added: class CLASS(StrEnum)
  • added: class STATUS(StrEnum)
  • added: class TRANSP(StrEnum)
  • added: class VALUE(StrEnum)
  • added: field BUSYTYPE.BUSY
  • added: field BUSYTYPE.BUSY_TENTATIVE
  • added: field BUSYTYPE.BUSY_UNAVAILABLE
  • added: field CLASS.CONFIDENTIAL
  • added: field CLASS.PRIVATE
  • added: field CLASS.PUBLIC
  • added: field RELTYPE.CONCEPT
  • added: field RELTYPE.DEPENDS_ON
  • added: field RELTYPE.FINISHTOFINISH
  • added: field RELTYPE.FINISHTOSTART
  • added: field RELTYPE.FIRST
  • added: field RELTYPE.NEXT
  • added: field RELTYPE.REFID
  • added: field RELTYPE.STARTTOFINISH
  • added: field RELTYPE.STARTTOSTART
  • added: field STATUS.CANCELLED
  • added: field STATUS.COMPLETED
  • added: field STATUS.CONFIRMED
  • added: field STATUS.DRAFT
  • added: field STATUS.FINAL
  • added: field STATUS.IN_PROCESS
  • added: field STATUS.NEEDS_ACTION
  • added: field STATUS.TENTATIVE
  • added: field TRANSP.OPAQUE
  • added: field TRANSP.TRANSPARENT
  • added: field VALUE.BINARY
  • added: field VALUE.BOOLEAN
  • added: field VALUE.CAL_ADDRESS
  • added: field VALUE.DATE
  • added: field VALUE.DATE_TIME
  • added: field VALUE.DURATION
  • added: field VALUE.FLOAT
  • added: field VALUE.INTEGER
  • added: field VALUE.PERIOD
  • added: field VALUE.RECUR
  • added: field VALUE.TEXT
  • added: field VALUE.TIME
  • added: field VALUE.URI
  • added: field VALUE.UTC_OFFSET
  • removed: class WillBeRemovedInVersion7(FeatureWillBeRemovedInFutureVersion)
  • added: class BrokenCalendarProperty(InvalidCalendar)
  • added: class ICalParsingError(InvalidCalendar)
  • added: class JCalParsingError(InvalidCalendar)
  • added: constructor ICalParsingError(message: str, line: str | None=…, line_number: int | None=…, value: object=…) -> None
  • added: constructor JCalParsingError(message: str, parser: str | type=…, path: list[str | int] | None | str | int=…, value: object=…) -> None
  • added: static method JCalParsingError.reraise_with_path_added(*path_components: int | str) -> Generator[None, None, None]
  • added: static method JCalParsingError.validate_jcal_token(name: str, kind: str, parser: str | type=…, path: list[str | int] | None | str | int=…) -> None
  • added: static method JCalParsingError.validate_list_type(jcal: object, expected_type: type[str | int | float | bool], parser: str | type=…, path: list[str | int] | None | str | int=…) -> None
  • added: static method JCalParsingError.validate_property(jcal_property: list[object], parser: str | type, path: list[str | int] | None | str | int=…) -> None
  • added: static method JCalParsingError.validate_value_type(jcal: object, expected_type: type[str | int | float | bool] | tuple[type[str | int | float | bool], ...], parser: str | type=…, path: list[str | int] | None | str | int=…) -> None
  • changed: function string_parameter(name: str, doc: str, default: Callable=…, convert: Optional[Callable[[str], T]]=…, convert_to: Optional[Callable[[T], str]]=…) -> property → function string_parameter(name: str, doc: str, default: Callable=…, convert: Callable[[str], T] | None=…, convert_to: Callable[[T], str] | None=…) -> property
  • added: variable FMTTYPE
  • added: variable GAP
  • added: variable LABEL
  • added: variable LINKREL
  • added: variable VALUE
  • removed: class Contentline(str)
  • removed: class Contentlines(list)
  • removed: class Parameters(CaselessDict)
  • removed: field Parameters.always_quoted
  • removed: field Parameters.quote_also
  • removed: function dquote(val, always_quote=…)
  • removed: function escape_char(text)
  • removed: function escape_string(val)
  • removed: function foldline(line, limit=…, fold_sep=…)
  • removed: function param_value(value, always_quote=…)
  • removed: function q_join(lst, sep=…, always_quote=…)
  • removed: function q_split(st, sep=…, maxsplit=…)
  • removed: function rfc_6868_escape(param_value: str) -> str
  • removed: function rfc_6868_unescape(param_value: str) -> str
  • removed: function unescape_char(text)
  • removed: function unescape_list_or_string(val)
  • removed: function unescape_string(val)
  • removed: function validate_param_value(value, quoted=…)
  • removed: function validate_token(name)
  • removed: method Contentline.parts()
  • removed: method Contentline.to_ical()
  • removed: method Contentlines.to_ical()
  • removed: method Parameters.params()
  • removed: method Parameters.to_ical(sorted=…)
  • removed: static method Contentline.from_ical(ical, strict=…)
  • removed: static method Contentline.from_parts(name: ICAL_TYPE, params: Parameters, values, sorted=…)
  • removed: static method Contentlines.from_ical(st)
  • removed: static method Parameters.from_ical(st, strict=…)
  • removed: variable FOLD
  • removed: variable NAME
  • removed: variable NEWLINE
  • removed: variable QUNSAFE_CHAR
  • removed: variable QUOTABLE
  • removed: variable UNSAFE_CHAR
  • removed: variable uFOLD
  • added: export Contentline
  • added: export Contentlines
  • added: export Parameters
  • added: export _escape_char
  • added: export _escape_string
  • added: export _foldline
  • added: export _unescape_char
  • added: export _unescape_string
  • added: export dquote
  • added: export escape_char
  • added: export escape_string
  • added: export foldline
  • added: export param_value
  • added: export q_join
  • added: export q_split
  • added: export rfc_6868_escape
  • added: export rfc_6868_unescape
  • added: export split_on_unescaped_comma
  • added: export split_on_unescaped_semicolon
  • added: export unescape_backslash
  • added: export unescape_char
  • added: export unescape_list_or_string
  • added: export unescape_string
  • added: export validate_param_value
  • added: export validate_token
  • added: class Contentline(str)
  • added: class Contentlines(list[Contentline])
  • added: method Contentline.parts() -> tuple[str, Parameters, str]
  • added: method Contentline.raw_parts() -> tuple[str, Parameters, str]
  • added: method Contentline.to_ical()
  • added: method Contentline.value_separator_index() -> int
  • added: method Contentlines.to_ical()
  • added: static method Contentline.from_ical(ical, strict=…)
  • added: static method Contentline.from_parts(name: ICAL_TYPE, params: Parameters, values, sorted: bool=…)
  • added: static method Contentlines.from_ical(st)
  • added: export CalendarIcalParser
  • added: export ComponentIcalParser
  • added: class CalendarIcalParser(ComponentIcalParser)
  • added: method CalendarIcalParser.prepare_components() -> None
  • added: class ComponentIcalParser
  • added: constructor ComponentIcalParser(data: bytes | str | list[Contentline], component_factory: ComponentFactory, types_factory: TypesFactory) -> None
  • added: field ComponentIcalParser.datetime_names: ClassVar[tuple[str, ...]]
  • added: method ComponentIcalParser.contains_component(name: str) -> bool
  • added: method ComponentIcalParser.contains_uid(uid: str) -> bool
  • added: method ComponentIcalParser.get_factory_for_property(name: str, params: Parameters) -> VPROPERTY
  • added: method ComponentIcalParser.handle_begin_component(vals: str) -> None
  • added: method ComponentIcalParser.handle_categories(params: Parameters, vals: str, line: Contentline) -> bool
  • added: method ComponentIcalParser.handle_end_component(vals: str) -> None
  • added: method ComponentIcalParser.handle_line_parse_error(exception: Exception)
  • added: method ComponentIcalParser.handle_property(name: str, params: Parameters, vals: str, line: Contentline) -> None
  • added: method ComponentIcalParser.handle_property_parse_error(exception: Exception, name: str, params: Parameters, val: str, line: Contentline)
  • added: method ComponentIcalParser.initialize_parsing()
  • added: method ComponentIcalParser.parse() -> list[Component]
  • added: method ComponentIcalParser.parse_and_add_property(name: str, params: Parameters, val: str, tzid: str | None, line: Contentline)
  • added: method ComponentIcalParser.parse_content_lines() -> None
  • added: method ComponentIcalParser.prepare_components() -> None
  • added: property ComponentIcalParser.component -> Component | None
  • added: class LazyCalendarIcalParser(ComponentIcalParser)
  • added: class LazySubcomponent
  • added: constructor LazySubcomponent(name: str, parser: ComponentIcalParser) -> None
  • added: field LazyCalendarIcalParser.parse_instantly: ClassVar[tuple[str, ...]]
  • added: method LazyCalendarIcalParser.get_subcomponent_parser(content_lines: list[Contentline]) -> ComponentIcalParser
  • added: method LazyCalendarIcalParser.handle_begin_component(vals)
  • added: method LazyCalendarIcalParser.handle_lazy_begin_component(component_name: str) -> None
  • added: method LazyCalendarIcalParser.prepare_components()
  • added: method LazySubcomponent.is_lazy() -> bool
  • added: method LazySubcomponent.is_parsed() -> bool
  • added: method LazySubcomponent.parse() -> Component
  • added: method LazySubcomponent.walk(name: str) -> list[Component]
  • added: method LazySubcomponent.with_uid(uid: str) -> list[Component]
  • added: property LazySubcomponent.name -> str
  • added: class Parameters(CaselessDict)
  • added: constructor Parameters(*args: Any, **kwargs: Any) -> None
  • added: field Parameters.always_quoted
  • added: field Parameters.quote_also
  • added: function dquote(val: str, always_quote: bool=…) -> str
  • added: function param_value(value: Sequence[str] | str | HasToIcal, always_quote: bool=…) -> str
  • added: function q_join(lst: Sequence[str], sep: str=…, always_quote: bool=…) -> str
  • added: function q_split(st: str, sep: str=…, maxsplit: int=…) -> list[str]
  • added: function rfc_6868_escape(param_value: str) -> str
  • added: function rfc_6868_unescape(param_value: str) -> str
  • added: function validate_param_value(value: str, quoted: bool=…) -> None
  • added: method Parameters.is_utc() -> bool
  • added: method Parameters.params()
  • added: method Parameters.to_ical(sorted: bool=…)
  • added: method Parameters.to_jcal(exclude_utc=…) -> dict[str, str]
  • added: method Parameters.tzid() -> str | None
  • added: method Parameters.update_tzid_from(dt: datetime | time | Any) -> None
  • added: method Parameters.value() -> VALUE | str | None
  • added: static method Parameters.from_ical(st, strict=…)
  • added: static method Parameters.from_jcal(jcal: dict[str:str | list[str]])
  • added: static method Parameters.from_jcal_property(jcal_property: list)
  • added: function split_on_unescaped_comma(text: str) -> list[str]
  • added: function split_on_unescaped_semicolon(text: str) -> list[str]
  • added: function unescape_backslash(val: str)
  • added: function unescape_list_or_string(val: str | list[str]) -> str | list[str]
  • added: function _escape_char(text: str | bytes) -> str
  • added: function _escape_string(val: str) -> str
  • added: function _foldline(line: str, limit: int=…, fold_sep: str=…) -> str
  • added: function _unescape_char(text: str | bytes) -> str | bytes | None
  • added: function _unescape_string(val: str) -> str
  • added: function validate_token(name: str) -> None
  • added: variable escape_char
  • added: variable escape_string
  • added: variable foldline
  • added: variable unescape_char
  • added: variable unescape_string
  • changed: function data_encode(data: Union[ICAL_TYPE, dict, list], encoding=…) -> Union[bytes, List[bytes], dict] → function data_encode(data: ICAL_TYPE | dict | list, encoding: str=…) -> bytes | list[bytes] | dict
  • changed: function from_unicode(value: ICAL_TYPE, encoding=…) -> bytes → function from_unicode(value: ICAL_TYPE, encoding: str=…) -> bytes
  • changed: function to_unicode(value: ICAL_TYPE, encoding=…) -> str → function to_unicode(value: ICAL_TYPE, encoding: str=…) -> str
  • removed: class TimeBase
  • removed: class TypesFactory(CaselessDict)
  • removed: class vBinary
  • removed: class vBoolean(int)
  • removed: class vCalAddress(str)
  • removed: class vCategory
  • removed: class vDDDLists
  • removed: class vDDDTypes(TimeBase)
  • removed: class vDate(TimeBase)
  • removed: class vDatetime(TimeBase)
  • removed: class vDuration(TimeBase)
  • removed: class vFloat(float)
  • removed: class vFrequency(str)
  • removed: class vGeo
  • removed: class vInline(str)
  • removed: class vInt(int)
  • removed: class vMonth(int)
  • removed: class vPeriod(TimeBase)
  • removed: class vRecur(CaselessDict)
  • removed: class vSkip(vText, Enum)
  • removed: class vText(str)
  • removed: class vTime(TimeBase)
  • removed: class vUTCOffset
  • removed: class vUri(str)
  • removed: class vWeekday(str)
  • removed: constructor TypesFactory(*args, **kwargs)
  • removed: constructor vBinary(obj)
  • removed: constructor vCategory(c_list: list[str] | str, params=…)
  • removed: constructor vDDDLists(dt_list)
  • removed: constructor vDDDTypes(dt)
  • removed: constructor vDate(dt)
  • removed: constructor vDatetime(dt, params=…)
  • removed: constructor vDuration(td, params=…)
  • removed: constructor vGeo(geo: tuple[float | str | int, float | str | int], params=…)
  • removed: constructor vPeriod(per: tuple[datetime, Union[datetime, timedelta]])
  • removed: constructor vRecur(*args, params=…, **kwargs)
  • removed: constructor vTime(*args)
  • removed: constructor vUTCOffset(td, params=…)
  • removed: export tzid_from_dt
  • removed: export tzid_from_tzinfo
  • removed: field TimeBase.ignore_for_equality
  • removed: field TimeBase.params: Parameters
  • removed: field TypesFactory.types_map
  • removed: field vBinary.params: Parameters
  • removed: field vBoolean.BOOL_MAP
  • removed: field vBoolean.params: Parameters
  • removed: field vCalAddress.name
  • removed: field vCalAddress.params: Parameters
  • removed: field vCategory.params: Parameters
  • removed: field vDDDLists.dts: list
  • removed: field vDDDLists.params: Parameters
  • removed: field vDDDTypes.params: Parameters
  • removed: field vDate.params: Parameters
  • removed: field vDatetime.params: Parameters
  • removed: field vDuration.params: Parameters
  • removed: field vFloat.params: Parameters
  • removed: field vFrequency.frequencies
  • removed: field vFrequency.params: Parameters
  • removed: field vGeo.params: Parameters
  • removed: field vInline.params: Parameters
  • removed: field vInt.params: Parameters
  • removed: field vMonth.leap
  • removed: field vMonth.params: Parameters
  • removed: field vPeriod.params: Parameters
  • removed: field vRecur.canonical_order
  • removed: field vRecur.frequencies
  • removed: field vRecur.params: Parameters
  • removed: field vRecur.types
  • removed: field vSkip.BACKWARD
  • removed: field vSkip.FORWARD
  • removed: field vSkip.OMIT
  • removed: field vText.params: Parameters
  • removed: field vUTCOffset.ignore_exceptions
  • removed: field vUTCOffset.params: Parameters
  • removed: field vUri.params: Parameters
  • removed: field vWeekday.params: Parameters
  • removed: field vWeekday.week_days
  • removed: method TypesFactory.for_property(name)
  • removed: method TypesFactory.from_ical(name, value)
  • removed: method TypesFactory.to_ical(name, value)
  • removed: method vBinary.to_ical()
  • removed: method vBoolean.to_ical()
  • removed: method vCalAddress.to_ical()
  • removed: method vCategory.to_ical()
  • removed: method vDDDLists.to_ical()
  • removed: method vDDDTypes.to_ical()
  • removed: method vDate.to_ical()
  • removed: method vDatetime.to_ical()
  • removed: method vDuration.to_ical()
  • removed: method vFloat.to_ical()
  • removed: method vFrequency.to_ical()
  • removed: method vGeo.to_ical()
  • removed: method vInline.to_ical()
  • removed: method vInt.to_ical() -> bytes
  • removed: method vMonth.leap()
  • removed: method vMonth.to_ical() -> bytes
  • removed: method vPeriod.overlaps(other)
  • removed: method vPeriod.to_ical()
  • removed: method vRecur.to_ical()
  • removed: method vText.to_ical() -> bytes
  • removed: method vTime.to_ical()
  • removed: method vUTCOffset.to_ical()
  • removed: method vUri.to_ical()
  • removed: method vWeekday.to_ical()
  • removed: property vCalAddress.email -> str
  • removed: property vDuration.dt -> timedelta
  • removed: property vPeriod.dt
  • removed: static method vBinary.from_ical(ical)
  • removed: static method vBoolean.from_ical(ical)
  • removed: static method vCalAddress.from_ical(ical)
  • removed: static method vCategory.from_ical(ical)
  • removed: static method vDDDLists.from_ical(ical, timezone=…)
  • removed: static method vDDDTypes.from_ical(ical, timezone=…)
  • removed: static method vDate.from_ical(ical)
  • removed: static method vDatetime.from_ical(ical, timezone=…)
  • removed: static method vDuration.from_ical(ical)
  • removed: static method vFloat.from_ical(ical)
  • removed: static method vFrequency.from_ical(ical)
  • removed: static method vGeo.from_ical(ical)
  • removed: static method vInline.from_ical(ical)
  • removed: static method vInt.from_ical(ical: ICAL_TYPE)
  • removed: static method vMonth.from_ical(ical: str)
  • removed: static method vPeriod.from_ical(ical, timezone=…)
  • removed: static method vRecur.from_ical(ical: str)
  • removed: static method vRecur.parse_type(key, values)
  • removed: static method vText.from_ical(ical: ICAL_TYPE)
  • removed: static method vTime.from_ical(ical)
  • removed: static method vUTCOffset.from_ical(ical)
  • removed: static method vUri.from_ical(ical)
  • removed: static method vWeekday.from_ical(ical)
  • removed: variable DURATION_REGEX
  • removed: variable WEEKDAY_RULE
  • added: export AdrFields
  • added: export DT_TYPE
  • added: export NFields
  • added: export TimeBase
  • added: export TypesFactory
  • added: export vAdr
  • added: export vBinary
  • added: export vBoolean
  • added: export vBroken
  • added: export vCalAddress
  • added: export vCategory
  • added: export vDDDLists
  • added: export vDDDTypes
  • added: export vDate
  • added: export vDatetime
  • added: export vDuration
  • added: export vFloat
  • added: export vFrequency
  • added: export vGeo
  • added: export vInline
  • added: export vInt
  • added: export vMonth
  • added: export vN
  • added: export vOrg
  • added: export vPeriod
  • added: export vRecur
  • added: export vSkip
  • added: export vText
  • added: export vTime
  • added: export vUTCOffset
  • added: export vUid
  • added: export vUnknown
  • added: export vUri
  • added: export vWeekday
  • added: export vXmlReference
  • added: variable VPROPERTY: TypeAlias
  • added: class AdrFields(NamedTuple)
  • added: class vAdr
  • added: constructor vAdr(fields: tuple[str, ...] | list[str] | str | AdrFields, /, params: dict[str, Any] | None=…) -> None
  • added: field AdrFields.country: str
  • added: field AdrFields.extended: str
  • added: field AdrFields.locality: str
  • added: field AdrFields.po_box: str
  • added: field AdrFields.postal_code: str
  • added: field AdrFields.region: str
  • added: field AdrFields.street: str
  • added: field vAdr.default_value: ClassVar[str]
  • added: field vAdr.fields: AdrFields
  • added: field vAdr.params: Parameters
  • added: method vAdr.to_ical() -> bytes
  • added: method vAdr.to_jcal(name: str) -> list
  • added: property vAdr.ical_value -> AdrFields
  • added: static method vAdr.examples() -> list[Self]
  • added: static method vAdr.from_ical(ical: str | bytes) -> AdrFields
  • added: static method vAdr.from_jcal(jcal_property: list) -> Self
  • added: class vBinary
  • added: constructor vBinary(obj: str | bytes, params: dict[str, str] | None=…) -> None
  • added: field vBinary.bytes: bytes
  • added: field vBinary.default_value: ClassVar[str]
  • added: field vBinary.params: Parameters
  • added: method vBinary.to_ical() -> bytes
  • added: method vBinary.to_jcal(name: str) -> list
  • added: property vBinary.base64data -> str
  • added: property vBinary.ical_value -> bytes
  • added: property vBinary.obj -> str
  • added: static method vBinary.examples() -> list[Self]
  • added: static method vBinary.from_ical(ical: str | bytes) -> bytes
  • added: static method vBinary.from_jcal(jcal_property: list) -> Self
  • added: class vBoolean(int)
  • added: field vBoolean.BOOL_MAP
  • added: field vBoolean.default_value: ClassVar[str]
  • added: field vBoolean.params: Parameters
  • added: method vBoolean.to_ical() -> bytes
  • added: method vBoolean.to_jcal(name: str) -> list
  • added: property vBoolean.ical_value -> bool
  • added: static method vBoolean.examples() -> list[Self]
  • added: static method vBoolean.from_ical(ical: str) -> bool
  • added: static method vBoolean.from_jcal(jcal_property: list) -> Self
  • added: class vBroken(vText)
  • added: field vBroken.default_value: ClassVar[str]
  • added: static method vBroken.examples() -> list[Self]
  • added: static method vBroken.from_parse_error(raw_value: str, params: Parameters, property_name: str, expected_type: str, error: Exception) -> Self
  • added: class vCalAddress(str)
  • added: field vCalAddress.default_value: ClassVar[str]
  • added: field vCalAddress.name
  • added: field vCalAddress.params: Parameters
  • added: method vCalAddress.to_ical() -> bytes
  • added: method vCalAddress.to_jcal(name: str) -> list
  • added: property vCalAddress.email -> str
  • added: property vCalAddress.ical_value -> str
  • added: static method vCalAddress.examples() -> list[Self]
  • added: static method vCalAddress.from_ical(ical: str | bytes) -> Self
  • added: static method vCalAddress.from_jcal(jcal_property: list) -> Self
  • added: static method vCalAddress.new(email: str, /, cn: str | None=…, cutype: str | None=…, delegated_from: str | None=…, delegated_to: str | None=…, directory: str | None=…, language: str | None=…, partstat: str | None=…, role: str | None=…, rsvp: bool | None=…, sent_by: str | None=…) -> Self
  • added: class vCategory
  • added: constructor vCategory(c_list: list[str] | str, /, params: dict[str, Any] | None=…) -> None
  • added: field vCategory.default_value: ClassVar[str]
  • added: field vCategory.params: Parameters
  • added: method vCategory.to_ical() -> bytes
  • added: method vCategory.to_jcal(name: str) -> list
  • added: property vCategory.ical_value -> list[str]
  • added: static method vCategory.examples() -> list[Self]
  • added: static method vCategory.from_ical(ical: list[str] | str) -> list[str]
  • added: static method vCategory.from_jcal(jcal_property: list) -> Self
  • added: class Conference
  • added: field Conference.feature: list[str] | str | None
  • added: field Conference.label: str | None
  • added: field Conference.language: str | None
  • added: field Conference.uri: str
  • added: method Conference.to_uri() -> vUri
  • added: static method Conference.from_uri(uri: vUri | str) -> Conference
  • added: export DT_TYPE
  • added: export TimeBase
  • added: export vDDDLists
  • added: export vDDDTypes
  • added: export vDate
  • added: export vDatetime
  • added: export vDuration
  • added: export vPeriod
  • added: export vTime
  • added: export vUTCOffset
  • added: class TimeBase
  • added: field TimeBase.default_value: ClassVar[str]
  • added: field TimeBase.ignore_for_equality
  • added: field TimeBase.params: Parameters
  • added: class vDate(TimeBase)
  • added: constructor vDate(dt: date, params: dict[str, Any] | None=…) -> None
  • added: field vDate.default_value: ClassVar[str]
  • added: field vDate.params: Parameters
  • added: method vDate.to_ical()
  • added: method vDate.to_jcal(name: str) -> list
  • added: static method vDate.examples() -> list[Self]
  • added: static method vDate.from_ical(ical)
  • added: static method vDate.from_jcal(jcal_property: list) -> Self
  • added: static method vDate.parse_jcal_value(jcal: str) -> date
  • added: class vDatetime(TimeBase)
  • added: constructor vDatetime(dt: datetime, /, params: dict[str, Any] | None=…) -> None
  • added: field vDatetime.default_value: ClassVar[str]
  • added: field vDatetime.params: Parameters
  • added: method vDatetime.is_utc() -> bool
  • added: method vDatetime.to_ical()
  • added: method vDatetime.to_jcal(name: str) -> list
  • added: static method vDatetime.examples() -> list[Self]
  • added: static method vDatetime.from_ical(ical, timezone=…)
  • added: static method vDatetime.from_jcal(jcal_property: list) -> Self
  • added: static method vDatetime.parse_jcal_value(jcal: str) -> datetime
  • added: class vDuration(TimeBase)
  • added: constructor vDuration(td: timedelta | str, /, params: dict[str, Any] | None=…) -> None
  • added: field vDuration.default_value: ClassVar[str]
  • added: field vDuration.params: Parameters
  • added: method vDuration.to_ical()
  • added: method vDuration.to_jcal(name: str) -> list
  • added: property vDuration.dt -> timedelta
  • added: static method vDuration.examples() -> list[Self]
  • added: static method vDuration.from_ical(ical)
  • added: static method vDuration.from_jcal(jcal_property: list) -> Self
  • added: static method vDuration.parse_jcal_value(jcal: str) -> timedelta
  • added: class vDDDLists
  • added: constructor vDDDLists(dt_list, params: dict[str, Any] | None=…) -> None
  • added: field vDDDLists.default_value: ClassVar[str]
  • added: field vDDDLists.dts: list[vDDDTypes]
  • added: field vDDDLists.params: Parameters
  • added: method vDDDLists.to_ical()
  • added: method vDDDLists.to_jcal(name: str) -> list
  • added: static method vDDDLists.examples() -> list[Self]
  • added: static method vDDDLists.from_ical(ical, timezone=…)
  • added: static method vDDDLists.from_jcal(jcal_property: list) -> Self
  • added: class vPeriod(TimeBase)
  • added: constructor vPeriod(per: tuple[date | datetime, date | datetime | timedelta], params: dict[str, Any] | None=…) -> None
  • added: field vPeriod.by_duration: bool
  • added: field vPeriod.default_value: ClassVar[str]
  • added: field vPeriod.duration: timedelta
  • added: field vPeriod.end: datetime
  • added: field vPeriod.params: Parameters
  • added: field vPeriod.start: datetime
  • added: method vPeriod.overlaps(other)
  • added: method vPeriod.to_ical()
  • added: method vPeriod.to_jcal(name: str) -> list
  • added: property vPeriod.dt
  • added: property vPeriod.ical_value -> tuple[datetime, timedelta | datetime]
  • added: static method vPeriod.examples() -> list[Self]
  • added: static method vPeriod.from_ical(ical, timezone=…)
  • added: static method vPeriod.from_jcal(jcal_property: list) -> Self
  • added: static method vPeriod.parse_jcal_value(jcal: str | list) -> tuple[datetime, datetime] | tuple[datetime, timedelta]
  • added: class vTime(TimeBase)
  • added: constructor vTime(*args: Any, params: dict[str, Any] | None=…) -> None
  • added: field vTime.default_value: ClassVar[str]
  • added: field vTime.params: Parameters
  • added: method vTime.is_utc() -> bool
  • added: method vTime.to_ical()
  • added: method vTime.to_jcal(name: str) -> list
  • added: static method vTime.examples() -> list[Self]
  • added: static method vTime.from_ical(ical: str, timezone: str | None | tzinfo=…) -> time
  • added: static method vTime.from_jcal(jcal_property: list) -> Self
  • added: static method vTime.parse_jcal_value(jcal: str) -> time
  • added: class vDDDTypes(TimeBase)
  • added: constructor vDDDTypes(dt: DT_TYPE, params: dict[str, Any] | None=…) -> None
  • added: field vDDDTypes.default_value: ClassVar[str]
  • added: field vDDDTypes.dt: DT_TYPE
  • added: field vDDDTypes.params: Parameters
  • added: method vDDDTypes.to_ical() -> bytes
  • added: method vDDDTypes.to_jcal(name: str) -> list
  • added: method vDDDTypes.to_property_type() -> vDatetime | vDate | vDuration | vTime | vPeriod
  • added: property vDDDTypes.dts -> list
  • added: property vDDDTypes.td -> timedelta
  • added: static method vDDDTypes.examples() -> list[vDDDTypes]
  • added: static method vDDDTypes.from_ical(ical, timezone=…)
  • added: static method vDDDTypes.from_jcal(jcal_property: list) -> Self
  • added: static method vDDDTypes.parse_jcal_value(jcal: str | list) -> timedelta
  • added: variable DT_TYPE: TypeAlias
  • added: class vUTCOffset
  • added: constructor vUTCOffset(td: timedelta, /, params: dict[str, Any] | None=…) -> None
  • added: field vUTCOffset.default_value: ClassVar[str]
  • added: field vUTCOffset.ignore_exceptions
  • added: field vUTCOffset.params: Parameters
  • added: method vUTCOffset.format(divider: str=…) -> str
  • added: method vUTCOffset.to_ical() -> str
  • added: method vUTCOffset.to_jcal(name: str) -> list
  • added: static method vUTCOffset.examples() -> list[Self]
  • added: static method vUTCOffset.from_ical(ical)
  • added: static method vUTCOffset.from_jcal(jcal_property: list) -> Self
  • added: class TypesFactory(CaselessDict)
  • added: constructor TypesFactory(*args: Any, **kwargs: Any) -> None
  • added: field TypesFactory.types_map
  • added: method TypesFactory.default_value_type(name: str) -> str
  • added: method TypesFactory.for_property(name, value_param: str | None=…) -> type
  • added: method TypesFactory.from_ical(name, value)
  • added: method TypesFactory.instance() -> TypesFactory
  • added: method TypesFactory.to_ical(name, value)
  • added: class vFloat(float)
  • added: field vFloat.default_value: ClassVar[str]
  • added: field vFloat.params: Parameters
  • added: method vFloat.to_ical() -> bytes
  • added: method vFloat.to_jcal(name: str) -> list
  • added: property vFloat.ical_value -> float
  • added: static method vFloat.examples() -> list[Self]
  • added: static method vFloat.from_ical(ical: str | float) -> Self
  • added: static method vFloat.from_jcal(jcal_property: list) -> Self
  • added: class vGeo
  • added: constructor vGeo(geo: tuple[float | str | int, float | str | int], /, params: dict[str, Any] | None=…) -> None
  • added: field vGeo.default_value: ClassVar[str]
  • added: field vGeo.params: Parameters
  • added: method vGeo.to_ical() -> str
  • added: method vGeo.to_jcal(name: str) -> list
  • added: property vGeo.ical_value -> tuple[float, float]
  • added: static method vGeo.examples() -> list[Self]
  • added: static method vGeo.from_ical(ical: str) -> tuple[float, float]
  • added: static method vGeo.from_jcal(jcal_property: list) -> Self
  • added: class Image
  • added: constructor Image(uri: str | None=…, b64data: str | None=…, fmttype: str | None=…, altrep: str | None=…, display: str | None=…) -> None
  • added: property Image.data -> bytes | None
  • added: static method Image.from_property_value(value: vUri | vBinary | vText) -> Image
  • added: class vInline(str)
  • added: field vInline.params: Parameters
  • added: method vInline.to_ical() -> bytes
  • added: static method vInline.from_ical(ical: ICAL_TYPE) -> Self
  • added: class vInt(int)
  • added: field vInt.default_value: ClassVar[str]
  • added: field vInt.max: ClassVar[int]
  • added: field vInt.min: ClassVar[int]
  • added: field vInt.params: Parameters
  • added: method vInt.to_ical() -> bytes
  • added: method vInt.to_jcal(name: str) -> list
  • added: property vInt.ical_value -> int
  • added: static method vInt.examples() -> list[Self]
  • added: static method vInt.from_ical(ical: ICAL_TYPE)
  • added: static method vInt.from_jcal(jcal_property: list) -> Self
  • added: static method vInt.parse_jcal_value(value: Any) -> int
  • added: class NFields(NamedTuple)
  • added: class vN
  • added: constructor vN(fields: tuple[str, ...] | list[str] | str | NFields, /, params: dict[str, Any] | None=…) -> None
  • added: field NFields.additional: str
  • added: field NFields.family: str
  • added: field NFields.given: str
  • added: field NFields.prefix: str
  • added: field NFields.suffix: str
  • added: field vN.default_value: ClassVar[str]
  • added: field vN.fields: NFields
  • added: field vN.params: Parameters
  • added: method vN.to_ical() -> bytes
  • added: method vN.to_jcal(name: str) -> list
  • added: property vN.ical_value -> NFields
  • added: static method vN.examples() -> list[Self]
  • added: static method vN.from_ical(ical: str | bytes) -> NFields
  • added: static method vN.from_jcal(jcal_property: list) -> Self
  • added: class vOrg
  • added: constructor vOrg(fields: tuple[str, ...] | list[str] | str, /, params: dict[str, Any] | None=…) -> None
  • added: field vOrg.default_value: ClassVar[str]
  • added: field vOrg.fields: tuple[str, ...]
  • added: field vOrg.params: Parameters
  • added: method vOrg.to_ical() -> bytes
  • added: method vOrg.to_jcal(name: str) -> list
  • added: property vOrg.ical_value -> tuple[str, ...]
  • added: property vOrg.name -> str
  • added: property vOrg.units -> tuple[str, ...]
  • added: static method vOrg.examples() -> list[Self]
  • added: static method vOrg.from_ical(ical: str | bytes) -> tuple[str, ...]
  • added: static method vOrg.from_jcal(jcal_property: list) -> Self
  • added: export vFrequency
  • added: export vMonth
  • added: export vRecur
  • added: export vSkip
  • added: export vWeekday
  • added: class vFrequency(str)
  • added: field vFrequency.frequencies
  • added: field vFrequency.params: Parameters
  • added: method vFrequency.to_ical()
  • added: property vFrequency.ical_value -> str
  • added: static method vFrequency.from_ical(ical)
  • added: static method vFrequency.parse_jcal_value(value: Any) -> Self
  • added: class vMonth(int)
  • added: field vMonth.params: Parameters
  • added: method vMonth.to_ical() -> bytes
  • added: property vMonth.leap -> bool
  • added: static method vMonth.from_ical(ical: str)
  • added: static method vMonth.parse_jcal_value(value: Any) -> Self
  • added: class vRecur(CaselessDict)
  • added: constructor vRecur(*args: Any, params: dict[str, Any] | None=…, **kwargs: Any) -> None
  • added: field vRecur.canonical_order
  • added: field vRecur.default_value: ClassVar[str]
  • added: field vRecur.frequencies
  • added: field vRecur.jcal_not_a_list
  • added: field vRecur.params: Parameters
  • added: field vRecur.types
  • added: method vRecur.to_ical()
  • added: method vRecur.to_jcal(name: str) -> list
  • added: static method vRecur.examples() -> list[Self]
  • added: static method vRecur.from_ical(ical: str)
  • added: static method vRecur.from_jcal(jcal_property: list) -> Self
  • added: static method vRecur.parse_type(key, values)
  • added: class vSkip(vText, Enum)
  • added: field vSkip.BACKWARD
  • added: field vSkip.FORWARD
  • added: field vSkip.OMIT
  • added: static method vSkip.parse_jcal_value(value: Any) -> Self
  • added: class vWeekday(str)
  • added: field vWeekday.params: Parameters
  • added: field vWeekday.week_days
  • added: method vWeekday.to_ical()
  • added: property vWeekday.ical_value -> str
  • added: static method vWeekday.from_ical(ical)
  • added: static method vWeekday.parse_jcal_value(value: Any) -> Self
  • added: class vText(str)
  • added: field vText.default_value: ClassVar[str]
  • added: field vText.params: Parameters
  • added: method vText.to_ical() -> bytes
  • added: method vText.to_jcal(name: str) -> list
  • added: property vText.ical_value -> str
  • added: static method vText.examples() -> list[Self]
  • added: static method vText.from_ical(ical: ICAL_TYPE) -> Self
  • added: static method vText.from_jcal(jcal_property: list) -> Self
  • added: static method vText.parse_jcal_value(jcal_value: Any) -> Self
  • added: class vUid(vText)
  • added: field vUid.default_value: ClassVar[str]
  • added: property vUid.ical_value -> str
  • added: property vUid.uid -> str
  • added: static method vUid.examples() -> list[Self]
  • added: static method vUid.new() -> Self
  • added: class vUnknown(str)
  • added: field vUnknown.default_value: ClassVar[str]
  • added: field vUnknown.params: Parameters
  • added: method vUnknown.to_ical() -> bytes
  • added: method vUnknown.to_jcal(name: str) -> list
  • added: property vUnknown.ical_value -> str
  • added: static method vUnknown.examples() -> list[Self]
  • added: static method vUnknown.from_ical(ical: ICAL_TYPE) -> Self
  • added: static method vUnknown.from_jcal(jcal_property: list) -> Self
  • added: static method vUnknown.get_value_from_content_line(line: Contentline) -> str
  • added: static method vUnknown.parse_jcal_value(jcal_value: Any) -> Self
  • added: class vUri(str)
  • added: field vUri.default_value: ClassVar[str]
  • added: field vUri.params: Parameters
  • added: method vUri.to_ical() -> bytes
  • added: method vUri.to_jcal(name: str) -> list
  • added: property vUri.ical_value -> str
  • added: property vUri.uri -> str
  • added: static method vUri.examples() -> list[Self]
  • added: static method vUri.from_ical(ical: str | bytes) -> Self
  • added: static method vUri.from_jcal(jcal_property: list) -> Self
  • added: class vXmlReference(vUri)
  • added: field vXmlReference.default_value: ClassVar[str]
  • added: property vXmlReference.x_pointer -> str | None
  • added: property vXmlReference.xml_reference -> str
  • added: static method vXmlReference.examples() -> list[Self]
  • added: export is_utc
  • changed: method TZProvider.knows_timezone_id(id: str) -> bool → method TZProvider.knows_timezone_id(tzid: str) -> bool
  • changed: method TZProvider.timezone(name: str) -> Optional[tzinfo] → method TZProvider.timezone(name: str) -> tzinfo | None
  • changed: method PYTZ.create_timezone(tz: cal.Timezone) -> tzinfo → method PYTZ.create_timezone(tz: Timezone.Timezone) -> tzinfo
  • changed: method PYTZ.knows_timezone_id(id: str) -> bool → method PYTZ.knows_timezone_id(tzid: str) -> bool
  • changed: method PYTZ.timezone(name: str) -> Optional[tzinfo] → method PYTZ.timezone(name: str) -> tzinfo | None
  • changed: function tzid_from_dt(dt: datetime) -> Optional[str] → function tzid_from_dt(dt: datetime) -> str | None
  • changed: function tzid_from_tzinfo(tzinfo: Optional[tzinfo]) -> Optional[str] → function tzid_from_tzinfo(tzinfo: tzinfo | None) -> str | None
  • changed: function tzids_from_tzinfo(tzinfo: Optional[tzinfo]) -> tuple[str] → function tzids_from_tzinfo(tzinfo: tzinfo | None) -> tuple[str]
  • added: function is_utc(t: datetime | time | date | tzinfo) -> bool
  • changed: constructor TZP(provider: Union[str, TZProvider]=…) → constructor TZP(provider: str | TZProvider=…) -> None
  • changed: method TZP.cache_timezone_component(timezone_component: cal.Timezone) -> None → method TZP.cache_timezone_component(timezone_component: Timezone.Timezone) -> None
  • changed: method TZP.create_timezone(timezone_component: cal.Timezone) -> datetime.tzinfo → method TZP.create_timezone(timezone_component: Timezone.Timezone) -> datetime.tzinfo
  • changed: method TZP.localize(dt: datetime.date, tz: Union[datetime.tzinfo, str, None]) -> datetime.datetime → method TZP.localize(dt: datetime.datetime, tz: datetime.tzinfo | str | None) -> datetime.datetime | (dt: datetime.time, tz: datetime.tzinfo | str | None) -> datetime.time
  • changed: method TZP.timezone(tz_id: str) -> Optional[datetime.tzinfo] → method TZP.timezone(tz_id: str) -> datetime.tzinfo | None
  • changed: method TZP.use(provider: Union[str, TZProvider]) → method TZP.use(provider: str | TZProvider)
  • changed: method TZP.use_default() → method TZP.use_default() -> None
  • added: variable version
  • added: variable version_date
  • removed: field ZONEINFO.utc
  • changed: method ZONEINFO.create_timezone(tz: cal.Timezone) -> tzinfo → method ZONEINFO.create_timezone(tz: Timezone.Timezone) -> tzinfo
  • changed: method ZONEINFO.knows_timezone_id(id: str) -> bool → method ZONEINFO.knows_timezone_id(tzid: str) -> bool
  • changed: method ZONEINFO.timezone(name: str) -> Optional[tzinfo] → method ZONEINFO.timezone(name: str) -> tzinfo | None
  • added: property ZONEINFO.utc -> zoneinfo.ZoneInfo
  • removed: class UIDGenerator
  • removed: field UIDGenerator.chars
  • removed: static method UIDGenerator.rnd_string(length=…) -> str
  • removed: static method UIDGenerator.uid(host_name=…, unique=…)
  • changed: function is_date(dt: date) -> bool → function is_date(dt: date | datetime) -> bool
  • changed: function is_datetime(dt: date) -> bool → function is_datetime(dt: date | datetime) -> TypeIs[datetime]
  • changed: function is_pytz(tz: tzinfo) → function is_pytz(tz: tzinfo) -> bool
  • changed: function is_pytz_dt(dt: date) → function is_pytz_dt(dt: date | datetime) -> TypeGuard[datetime]
  • changed: function normalize_pytz(dt: date) → function normalize_pytz(dt: date | datetime) -> date | datetime
  • changed: function to_datetime(dt: date) -> datetime → function to_datetime(dt: date | datetime) -> datetime