def detType(in_val): val = str(in_val) #::Email email = re.compile(".*\[@\][a-z0-9\-]{1,}\.[a-z0-9\-]{1,}") #::IP ipv4 = re.compile("^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$") #::CIDR cidr = re.compile("^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/\d{1,2}$") #::Range v4range = re.compile( "^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\-\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$" ) #::Domain dom = re.compile("([a-z0-9\-]{1,}\.?)+\.[a-z0-9\-]{1,}$") if email.match(val): e = EmailAddress(val) return e if ipv4.match(val): e = IPv4Address(val) return e if cidr.match(val): e = CIDR(val) return e if v4range.match(val): e = Range(val) return e if dom.match(val): e = Domain(val) return e if re.match("^([a-z]*)://", val, re.M | re.I): e = URL(val) e.url = val return e