name-addr = [display-name] angle-addr
(value)
| 1778 | |
| 1779 | |
| 1780 | def get_name_addr(value): |
| 1781 | """ name-addr = [display-name] angle-addr |
| 1782 | |
| 1783 | """ |
| 1784 | name_addr = NameAddr() |
| 1785 | # Both the optional display name and the angle-addr can start with cfws. |
| 1786 | leader = None |
| 1787 | if not value: |
| 1788 | raise errors.HeaderParseError( |
| 1789 | "expected name-addr but found '{}'".format(value)) |
| 1790 | if value[0] in CFWS_LEADER: |
| 1791 | leader, value = get_cfws(value) |
| 1792 | if not value: |
| 1793 | raise errors.HeaderParseError( |
| 1794 | "expected name-addr but found '{}'".format(leader)) |
| 1795 | if value[0] != '<': |
| 1796 | if value[0] in PHRASE_ENDS: |
| 1797 | raise errors.HeaderParseError( |
| 1798 | "expected name-addr but found '{}'".format(value)) |
| 1799 | token, value = get_display_name(value) |
| 1800 | if not value: |
| 1801 | raise errors.HeaderParseError( |
| 1802 | "expected name-addr but found '{}'".format(token)) |
| 1803 | if leader is not None: |
| 1804 | if isinstance(token[0], TokenList): |
| 1805 | token[0][:0] = [leader] |
| 1806 | else: |
| 1807 | token[:0] = [leader] |
| 1808 | leader = None |
| 1809 | name_addr.append(token) |
| 1810 | token, value = get_angle_addr(value) |
| 1811 | if leader is not None: |
| 1812 | token[:0] = [leader] |
| 1813 | name_addr.append(token) |
| 1814 | return name_addr, value |
| 1815 | |
| 1816 | def get_mailbox(value): |
| 1817 | """ mailbox = name-addr / addr-spec |
no test coverage detected