domain = dot-atom / domain-literal / obs-domain obs-domain = atom *("." atom))
(value)
| 1637 | return domain_literal, value |
| 1638 | |
| 1639 | def get_domain(value): |
| 1640 | """ domain = dot-atom / domain-literal / obs-domain |
| 1641 | obs-domain = atom *("." atom)) |
| 1642 | |
| 1643 | """ |
| 1644 | domain = Domain() |
| 1645 | leader = None |
| 1646 | if value and value[0] in CFWS_LEADER: |
| 1647 | leader, value = get_cfws(value) |
| 1648 | if not value: |
| 1649 | raise errors.HeaderParseError( |
| 1650 | "expected domain but found '{}'".format(value)) |
| 1651 | if value[0] == '[': |
| 1652 | token, value = get_domain_literal(value) |
| 1653 | if leader is not None: |
| 1654 | token[:0] = [leader] |
| 1655 | domain.append(token) |
| 1656 | return domain, value |
| 1657 | try: |
| 1658 | token, value = get_dot_atom(value) |
| 1659 | except errors.HeaderParseError: |
| 1660 | token, value = get_atom(value) |
| 1661 | if value and value[0] == '@': |
| 1662 | raise errors.HeaderParseError('Invalid Domain') |
| 1663 | if leader is not None: |
| 1664 | token[:0] = [leader] |
| 1665 | domain.append(token) |
| 1666 | if value and value[0] == '.': |
| 1667 | domain.defects.append(errors.ObsoleteHeaderDefect( |
| 1668 | "domain is not a dot-atom (contains CFWS)")) |
| 1669 | if domain[0].token_type == 'dot-atom': |
| 1670 | domain[:] = domain[0] |
| 1671 | while value and value[0] == '.': |
| 1672 | domain.append(DOT) |
| 1673 | token, value = get_atom(value[1:]) |
| 1674 | domain.append(token) |
| 1675 | return domain, value |
| 1676 | |
| 1677 | def get_addr_spec(value): |
| 1678 | """ addr-spec = local-part "@" domain |
no test coverage detected
searching dependent graphs…