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

Function get_address_list

Lib/email/_header_value_parser.py:2025–2077  ·  view source on GitHub ↗

address_list = (address *("," address)) / obs-addr-list obs-addr-list = *([CFWS] ",") address *("," [address / CFWS]) We depart from the formal grammar here by continuing to parse until the end of the input, assuming the input to be entirely composed of an address-list. This i

(value)

Source from the content-addressed store, hash-verified

2023 return address, value
2024
2025def get_address_list(value):
2026 """ address_list = (address *("," address)) / obs-addr-list
2027 obs-addr-list = *([CFWS] ",") address *("," [address / CFWS])
2028
2029 We depart from the formal grammar here by continuing to parse until the end
2030 of the input, assuming the input to be entirely composed of an
2031 address-list. This is always true in email parsing, and allows us
2032 to skip invalid addresses to parse additional valid ones.
2033
2034 """
2035 address_list = AddressList()
2036 while value:
2037 try:
2038 token, value = get_address(value)
2039 address_list.append(token)
2040 except errors.HeaderParseError:
2041 leader = None
2042 if value[0] in CFWS_LEADER:
2043 leader, value = get_cfws(value)
2044 if not value or value[0] == ',':
2045 address_list.append(leader)
2046 address_list.defects.append(errors.ObsoleteHeaderDefect(
2047 "address-list entry with no content"))
2048 else:
2049 token, value = get_invalid_mailbox(value, ',')
2050 if leader is not None:
2051 token[:0] = [leader]
2052 address_list.append(Address([token]))
2053 address_list.defects.append(errors.InvalidHeaderDefect(
2054 "invalid address in address-list"))
2055 elif value[0] == ',':
2056 address_list.defects.append(errors.ObsoleteHeaderDefect(
2057 "empty element in address-list"))
2058 else:
2059 token, value = get_invalid_mailbox(value, ',')
2060 if leader is not None:
2061 token[:0] = [leader]
2062 address_list.append(Address([token]))
2063 address_list.defects.append(errors.InvalidHeaderDefect(
2064 "invalid address in address-list"))
2065 if value and value[0] != ',':
2066 # Crap after address; treat it as an invalid mailbox.
2067 # The mailbox info will still be available.
2068 mailbox = address_list[-1][0]
2069 mailbox.token_type = 'invalid-mailbox'
2070 token, value = get_invalid_mailbox(value, ',')
2071 mailbox.extend(token)
2072 address_list.defects.append(errors.InvalidHeaderDefect(
2073 "invalid address in address-list"))
2074 if value: # Must be a , at this point.
2075 address_list.append(ListSeparator)
2076 value = value[1:]
2077 return address_list, value
2078
2079
2080def get_no_fold_literal(value):

Callers

nothing calls this directly

Calls 7

get_addressFunction · 0.85
get_cfwsFunction · 0.85
get_invalid_mailboxFunction · 0.85
AddressListClass · 0.70
AddressClass · 0.70
appendMethod · 0.45
extendMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…