MCPcopy Index your code
hub / github.com/RustPython/RustPython / get_msg_id

Function get_msg_id

Lib/email/_header_value_parser.py:2085–2151  ·  view source on GitHub ↗

msg-id = [CFWS] "<" id-left '@' id-right ">" [CFWS] id-left = dot-atom-text / obs-id-left id-right = dot-atom-text / no-fold-literal / obs-id-right no-fold-literal = "[" *dtext "]"

(value)

Source from the content-addressed store, hash-verified

2083 return no_fold_literal, value[1:]
2084
2085def get_msg_id(value):
2086 """msg-id = [CFWS] "<" id-left '@' id-right ">" [CFWS]
2087 id-left = dot-atom-text / obs-id-left
2088 id-right = dot-atom-text / no-fold-literal / obs-id-right
2089 no-fold-literal = "[" *dtext "]"
2090 """
2091 msg_id = MsgID()
2092 if value and value[0] in CFWS_LEADER:
2093 token, value = get_cfws(value)
2094 msg_id.append(token)
2095 if not value or value[0] != '<':
2096 raise errors.HeaderParseError(
2097 "expected msg-id but found '{}'".format(value))
2098 msg_id.append(ValueTerminal('<', 'msg-id-start'))
2099 value = value[1:]
2100 # Parse id-left.
2101 try:
2102 token, value = get_dot_atom_text(value)
2103 except errors.HeaderParseError:
2104 try:
2105 # obs-id-left is same as local-part of add-spec.
2106 token, value = get_obs_local_part(value)
2107 msg_id.defects.append(errors.ObsoleteHeaderDefect(
2108 "obsolete id-left in msg-id"))
2109 except errors.HeaderParseError:
2110 raise errors.HeaderParseError(
2111 "expected dot-atom-text or obs-id-left"
2112 " but found '{}'".format(value))
2113 msg_id.append(token)
2114 if not value or value[0] != '@':
2115 msg_id.defects.append(errors.InvalidHeaderDefect(
2116 "msg-id with no id-right"))
2117 # Even though there is no id-right, if the local part
2118 # ends with `>` let's just parse it too and return
2119 # along with the defect.
2120 if value and value[0] == '>':
2121 msg_id.append(ValueTerminal('>', 'msg-id-end'))
2122 value = value[1:]
2123 return msg_id, value
2124 msg_id.append(ValueTerminal('@', 'address-at-symbol'))
2125 value = value[1:]
2126 # Parse id-right.
2127 try:
2128 token, value = get_dot_atom_text(value)
2129 except errors.HeaderParseError:
2130 try:
2131 token, value = get_no_fold_literal(value)
2132 except errors.HeaderParseError:
2133 try:
2134 token, value = get_domain(value)
2135 msg_id.defects.append(errors.ObsoleteHeaderDefect(
2136 "obsolete id-right in msg-id"))
2137 except errors.HeaderParseError:
2138 raise errors.HeaderParseError(
2139 "expected dot-atom-text, no-fold-literal or obs-id-right"
2140 " but found '{}'".format(value))
2141 msg_id.append(token)
2142 if value and value[0] == '>':

Callers 1

parse_message_idFunction · 0.85

Calls 9

MsgIDClass · 0.85
get_cfwsFunction · 0.85
ValueTerminalClass · 0.85
get_dot_atom_textFunction · 0.85
get_obs_local_partFunction · 0.85
get_no_fold_literalFunction · 0.85
get_domainFunction · 0.85
appendMethod · 0.45
formatMethod · 0.45

Tested by

no test coverage detected