3 bWK @s\dZddlZddlZddlZddlmZejjdZ e fddZ e dfd d Z d d d Z dS)zDNS E.164 helpers @var public_enum_domain: The DNS public ENUM domain, e164.arpa. @type public_enum_domain: dns.name.Name object N) string_typesz e164.arpa.cCs,dd|D}|jtjjdj||dS)auConvert an E.164 number in textual form into a Name object whose value is the ENUM domain name for that number. @param text: an E.164 number in textual form. @type text: str @param origin: The domain in which the number should be constructed. The default is e164.arpa. @type origin: dns.name.Name object or None @rtype: dns.name.Name object cSsg|]}|jr|qS)isdigit).0drr/usr/lib/python3.6/e164.py )szfrom_e164...)origin)reversednsname from_textjoin)textr partsrrr from_e164s rTcCsb|dk r|j|}dd|jD}t|t|jkr@tjjd|jdj|}|r^d|}|S)aConvert an ENUM domain name into an E.164 number. @param name: the ENUM domain name. @type name: dns.name.Name object. @param origin: A domain containing the ENUM domain name. The name is relativized to this domain before being converted to text. @type origin: dns.name.Name object or None @param want_plus_prefix: if True, add a '+' to the beginning of the returned number. @rtype: str NcSs$g|]}|jrt|dkr|qS)r)rlen)rrrrrr ;szto_e164..z$non-digit labels in ENUM domain name+)Z relativizeZlabelsrr Z exception SyntaxErrorr r)rr Zwant_plus_prefixZdlabelsrrrrto_e164.s    rcCs|dkrtjj}tjj}xl|D]d}t|trs