def encode_unstructured(name, value): if len(value) > MAX_HEADER_LENGTH: return to_utf8(value) try: return Header( value.encode("ascii"), "ascii", header_name=name).encode(splitchars=' ;,') except UnicodeEncodeError: if is_address_header(name, value): return encode_address_header(name, value) else: return Header( to_utf8(value), "utf-8", header_name=name).encode(splitchars=' ;,')
def _url(self): """ Grammar: url -> url """ earl = self.stream.get_token(URL) if earl is None: return None return flanker.addresslib.address.UrlAddress(to_utf8(earl))
def _url(self): """ Grammar: url -> url """ earl = self.stream.get_token(URL) or self.stream.get_token(UNI_URL) if earl is None: return None #TODO: Better handle non-ascii urls, specially in hostname part return flanker.addresslib.address.UrlAddress(to_utf8(earl))