icalendar.parser.content_line module#
parsing and generation of content lines
- class icalendar.parser.content_line.Contentline(value, strict=False, encoding='utf-8')[source]#
Bases:
strA content line is a string that can be folded and parsed into parts.
- Raises:
ValueError – If the value contains
\n.
- classmethod from_ical(ical, strict=False)[source]#
Unfold the content lines in an iCalendar into long content lines.
- classmethod from_parts(name, params, values, sorted=True)[source]#
Turn a parts into a content line.
- Raises:
TypeError – If
paramsis not typeParameters.
- parts()[source]#
Split the line into
name,parameters, and unescapedvaluesparts.Properly handles escaping with backslashes and double-quote sections to avoid corrupting URL-encoded characters in values.
The backslash sequences in the values are unescaped, as for the values of
TEXTproperties, while URL encoding is preserved. Useraw_parts()to get the values verbatim instead.Examples
With parameter:
DESCRIPTION;ALTREP="cid:part1.0001@example.org":The Fall'98 Wild
Without parameters:
DESCRIPTION:The Fall'98 Wild
- Return type:
tuple[str,Parameters,str]
- raw_parts()[source]#
Split the line into
name,parameters, and rawvaluesparts.This is
parts()without the unescaping: the values are returned verbatim, preserving both backslash sequences and URL encoding. It is used for RFC 7265UNKNOWNvalues, whose real value type—and therefore whose escaping rules—are not known.See
parts()for the parts themselves and for examples.- Return type:
tuple[str,Parameters,str]
- strict#
- value_separator_index()[source]#
Return the index of the colon that separates the value.
This is the first colon that is not inside a quoted parameter section.
A colon inside a quoted parameter value is skipped, for example,
ALTREP="http://x". A colon that belongs to the value is not mistaken for the colon separator, since TEXT doesn't escape:.An escaped double quote (
\") inside a quoted section doesn't close it. RFC 2445 Section 4.3.11-compliant input, such asCN="Qu\"ote", both keeps its quote state and the separator after it is still found.A DQUOTE preceded by a literal backslash closes the section when the separator or the end of the line follows it. This is the shape icalendar itself writes for values ending in a backslash.
- Return type:
- Returns:
An integer representing the index position of the separator, or
-1if there is none.
- class icalendar.parser.content_line.Contentlines(iterable=(), /)[source]#
Bases:
list[Contentline]I assume that iCalendar files generally are a few kilobytes in size. Then this should be efficient. for Huge files, an iterator should probably be used instead.