�
���Oc@sgdZddlZddlZddlZejjd�Zed�Zee d�Z
dd�ZdS(s�DNS E.164 helpers
@var public_enum_domain: The DNS public ENUM domain, e164.arpa.
@type public_enum_domain: dns.name.Name object
i����Ns
e164.arpa.cCsNg|D]}|j�r|^q}|j�tjjdj|�d|�S(suConvert 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
t.torigin(tisdigittreversetdnstnamet from_texttjoin(ttextRtdtparts((s./usr/lib64/python2.7/site-packages/dns/e164.pyt from_e164s
%
cCs�|dk r|j|�}ng|jD]*}|j�r(t|�dkr(|^q(}t|�t|j�kr�tjjd��n|j�dj |�}|r�d|}n|S(s�Convert 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
is$non-digit labels in ENUM domain namett+N(
tNonet
relativizetlabelsRtlenRt exceptiontSyntaxErrorRR(RRtwant_plus_prefixR tdlabelsR((s./usr/lib64/python2.7/site-packages/dns/e164.pytto_e164*s:
cCs�|dkrtjj�}nx{|D]s}t|ttf�rUtjj|�}ntj j
||�}y|j|d�SWq%tjjk
r�q%Xq%Wtjj�dS(s�Look for NAPTR RRs for the specified number in the specified domains.
e.g. lookup('16505551212', ['e164.dnspython.org.', 'e164.arpa.'])
tNAPTRN(
RRtresolvertget_default_resolvert
isinstancetstrtunicodeRRte164RtquerytNXDOMAIN(tnumbertdomainsRtdomaintqname((s./usr/lib64/python2.7/site-packages/dns/e164.pyR@s
(
t__doc__t
dns.exceptionRtdns.nametdns.resolverRRtpublic_enum_domainRtTrueRRR(((s./usr/lib64/python2.7/site-packages/dns/e164.pyt<module>s |