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

Function get_local_part

Lib/email/_header_value_parser.py:1464–1501  ·  view source on GitHub ↗

local-part = dot-atom / quoted-string / obs-local-part

(value)

Source from the content-addressed store, hash-verified

1462 return phrase, value
1463
1464def get_local_part(value):
1465 """ local-part = dot-atom / quoted-string / obs-local-part
1466
1467 """
1468 local_part = LocalPart()
1469 leader = None
1470 if value and value[0] in CFWS_LEADER:
1471 leader, value = get_cfws(value)
1472 if not value:
1473 raise errors.HeaderParseError(
1474 "expected local-part but found '{}'".format(value))
1475 try:
1476 token, value = get_dot_atom(value)
1477 except errors.HeaderParseError:
1478 try:
1479 token, value = get_word(value)
1480 except errors.HeaderParseError:
1481 if value[0] != '\\' and value[0] in PHRASE_ENDS:
1482 raise
1483 token = TokenList()
1484 if leader is not None:
1485 token[:0] = [leader]
1486 local_part.append(token)
1487 if value and (value[0]=='\\' or value[0] not in PHRASE_ENDS):
1488 obs_local_part, value = get_obs_local_part(str(local_part) + value)
1489 if obs_local_part.token_type == 'invalid-obs-local-part':
1490 local_part.defects.append(errors.InvalidHeaderDefect(
1491 "local-part is not dot-atom, quoted-string, or obs-local-part"))
1492 else:
1493 local_part.defects.append(errors.ObsoleteHeaderDefect(
1494 "local-part is not a dot-atom (contains CFWS)"))
1495 local_part[0] = obs_local_part
1496 try:
1497 local_part.value.encode('ascii')
1498 except UnicodeEncodeError:
1499 local_part.defects.append(errors.NonASCIILocalPartDefect(
1500 "local-part contains non-ASCII characters)"))
1501 return local_part, value
1502
1503def get_obs_local_part(value):
1504 """ obs-local-part = word *("." word)

Callers 1

get_addr_specFunction · 0.85

Calls 10

LocalPartClass · 0.85
get_cfwsFunction · 0.85
get_dot_atomFunction · 0.85
get_wordFunction · 0.85
TokenListClass · 0.85
get_obs_local_partFunction · 0.85
strFunction · 0.85
formatMethod · 0.45
appendMethod · 0.45
encodeMethod · 0.45

Tested by

no test coverage detected