MCPcopy Index your code
hub / github.com/python/cpython / get_msg_id

Function get_msg_id

Lib/email/_header_value_parser.py:2102–2168  ·  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

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

Callers 2

parse_message_idFunction · 0.85
parse_message_idsFunction · 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

Used in the wild real call sites across dependent graphs

searching dependent graphs…