def suggest_alternate(addr_spec): ''' Given an addr-spec, suggests a alternate addr-spec if common spelling mistakes are detected in the domain portion. Returns an suggested alternate if one is found. Returns None if the address is invalid or no suggestions were found. Examples: >>> print validate.suggest_alternate('*****@*****.**') None >>> validate.suggest_alternate('*****@*****.**') '*****@*****.**' ''' # sanity check if addr_spec is None: return None # preparse address into its parts and perform any ESP specific preparsing addr_parts = preparse_address(addr_spec) if addr_parts is None: return None # correct spelling sugg_domain = corrector.suggest(addr_parts[-1]) # if suggested domain is the same as the passed in domain # don't return any suggestions if sugg_domain == addr_parts[-1]: return None return '@'.join([addr_parts[0], sugg_domain])
def suggest_alternate(addr_spec): """ Given an addr-spec, suggests a alternate addr-spec if common spelling mistakes are detected in the domain portion. Returns an suggested alternate if one is found. Returns None if the address is invalid or no suggestions were found. Examples: >>> print validate.suggest_alternate('*****@*****.**') None >>> validate.suggest_alternate('*****@*****.**') '*****@*****.**' """ # sanity check if addr_spec is None: return None # preparse address into its parts and perform any ESP specific preparsing addr_parts = preparse_address(addr_spec) if addr_parts is None: return None # correct spelling sugg_domain = corrector.suggest(addr_parts[-1]) # if suggested domain is the same as the passed in domain # don't return any suggestions if sugg_domain == addr_parts[-1]: return None return '@'.join([addr_parts[0], sugg_domain])