8889841có ‰æ,Qc@sPdZddlZddlZddlZddlZdefd„ƒYZdS(s)DNS nodes. A node is a set of rdatasets.iÿÿÿÿNtNodecBs›eZdZdgZd„Zd„Zd„Zd„Zd„Zd„Z d„Z e j j ed „Ze j j ed „Ze j j d „Zd „ZRS( s“A DNS node. A node is a set of rdatasets @ivar rdatasets: the node's rdatasets @type rdatasets: list of dns.rdataset.Rdataset objectst rdatasetscCs g|_dS(sInitialize a DNS node. N(R(tself((s./usr/lib64/python2.7/site-packages/dns/node.pyt__init__"scKsYtjƒ}x<|jD]1}t|ƒdkr||j||IJqqW|jƒd S(s+Convert a node to text format. Each rdataset at the node is printed. Any keyword arguments to this method are passed on to the rdataset's to_text() method. @param name: the owner name of the rdatasets @type name: dns.name.Name object @rtype: string iiÿÿÿÿ(tStringIORtlentto_texttgetvalue(Rtnametkwtstrds((s./usr/lib64/python2.7/site-packages/dns/node.pyR(s cCsdtt|ƒƒdS(Ns (tstrtid(R((s./usr/lib64/python2.7/site-packages/dns/node.pyt__repr__8scCsRx$|jD]}||jkr tSq Wx$|jD]}||jkr1tSq1WtS(sSTwo nodes are equal if they have the same rdatasets. @rtype: bool (RtFalsetTrue(Rtothertrd((s./usr/lib64/python2.7/site-packages/dns/node.pyt__eq__;scCs|j|ƒ S(N(R(RR((s./usr/lib64/python2.7/site-packages/dns/node.pyt__ne__KscCs t|jƒS(N(RR(R((s./usr/lib64/python2.7/site-packages/dns/node.pyt__len__NscCs t|jƒS(N(titerR(R((s./usr/lib64/python2.7/site-packages/dns/node.pyt__iter__QscCsex*|jD]}|j|||ƒr |Sq W|s<t‚ntjj||ƒ}|jj|ƒ|S(sFind an rdataset matching the specified properties in the current node. @param rdclass: The class of the rdataset @type rdclass: int @param rdtype: The type of the rdataset @type rdtype: int @param covers: The covered type. Usually this value is dns.rdatatype.NONE, but if the rdtype is dns.rdatatype.SIG or dns.rdatatype.RRSIG, then the covers value will be the rdata type the SIG/RRSIG covers. The library treats the SIG and RRSIG types as if they were a family of types, e.g. RRSIG(A), RRSIG(NS), RRSIG(SOA). This makes RRSIGs much easier to work with than if RRSIGs covering different rdata types were aggregated into a single RRSIG rdataset. @type covers: int @param create: If True, create the rdataset if it is not found. @type create: bool @raises KeyError: An rdataset of the desired type and class does not exist and I{create} is not True. @rtype: dns.rdataset.Rdataset object (RtmatchtKeyErrortdnstrdatasettRdatasettappend(RtrdclasstrdtypetcoverstcreateR ((s./usr/lib64/python2.7/site-packages/dns/node.pyt find_rdatasetTs cCs:y|j||||ƒ}Wntk r5d}nX|S(sEGet an rdataset matching the specified properties in the current node. None is returned if an rdataset of the specified type and class does not exist and I{create} is not True. @param rdclass: The class of the rdataset @type rdclass: int @param rdtype: The type of the rdataset @type rdtype: int @param covers: The covered type. @type covers: int @param create: If True, create the rdataset if it is not found. @type create: bool @rtype: dns.rdataset.Rdataset object or None N(R#RtNone(RRR R!R"R ((s./usr/lib64/python2.7/site-packages/dns/node.pyt get_rdatasetvs   cCs8|j|||ƒ}|dk r4|jj|ƒndS(szDelete the rdataset matching the specified properties in the current node. If a matching rdataset does not exist, it is not an error. @param rdclass: The class of the rdataset @type rdclass: int @param rdtype: The type of the rdataset @type rdtype: int @param covers: The covered type. @type covers: int N(R%R$Rtremove(RRR R!R ((s./usr/lib64/python2.7/site-packages/dns/node.pytdelete_rdatasets cCsQt|tjjƒs!td‚n|j|j|j|jƒ|j j |ƒdS(s8Replace an rdataset. It is not an error if there is no rdataset matching I{replacement}. Ownership of the I{replacement} object is transferred to the node; in other words, this method does not store a copy of I{replacement} at the node, it stores I{replacement} itself. sreplacement is not an rdatasetN( t isinstanceRRRt ValueErrorR'RR R!RR(Rt replacement((s./usr/lib64/python2.7/site-packages/dns/node.pytreplace_rdataset¡s   (t__name__t __module__t__doc__t __slots__RRRRRRRRt rdatatypetNONERR#R%R'R+(((s./usr/lib64/python2.7/site-packages/dns/node.pyRs          !  (R.Rt dns.rdatasetRt dns.rdatatypet dns.renderertobjectR(((s./usr/lib64/python2.7/site-packages/dns/node.pyts