ó €aUc@sBdZddlZddlZddlmZmZejdkZ dZ Z dZ Z dZZdefd „ƒYZd efd „ƒYZd efd „ƒYZydZejƒd„ZWnek rÜd„ZnXdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZd„ZdS(s6Common code shared between various netaddr sub modulesiÿÿÿÿN(t _callablet_iter_dict_keystbigiiitAddrFormatErrorcBseZdZRS(sO An Exception indicating a network address is not correctly formatted. (t__name__t __module__t__doc__(((s0/usr/lib/python2.7/site-packages/netaddr/core.pyRstAddrConversionErrorcBseZdZRS(s^ An Exception indicating a failure to convert between address types or notations. (RRR(((s0/usr/lib/python2.7/site-packages/netaddr/core.pyR#stNotRegisteredErrorcBseZdZRS(s\ An Exception indicating that an OUI or IAB was not found in the IEEE Registry. (RRR(((s0/usr/lib/python2.7/site-packages/netaddr/core.pyR+si*cCs |jƒS(s‡ :param int_val: an unsigned integer. :return: the minimum number of bits needed to represent value provided. (t bit_length(tint_val((s0/usr/lib/python2.7/site-packages/netaddr/core.pytnum_bits7scCs+d}x|r&|d7}|dL}q W|S(s‡ :param int_val: an unsigned integer. :return: the minimum number of bits needed to represent value provided. ii((R tnumbits((s0/usr/lib/python2.7/site-packages/netaddr/core.pyR @s   t SubscribercBseZdZd„ZRS(sK An abstract class defining the interface expected by a Publisher. cCstdƒ‚dS(sµ A callback method used by a Publisher to notify this Subscriber about updates. :param data: a Python object containing data provided by Publisher. scannot invoke virtual method!N(tNotImplementedError(tselftdata((s0/usr/lib/python2.7/site-packages/netaddr/core.pytupdateQs(RRRR(((s0/usr/lib/python2.7/site-packages/netaddr/core.pyR Mst PrettyPrintercBs)eZdZejed„Zd„ZRS(sÅ A concrete Subscriber that employs the pprint in the standard library to format all data from updates received, writing them to a file-like object. Useful as a debugging aid. cCs||_||_dS(sô Constructor. :param fh: a file-like object to write updates to. Default: sys.stdout. :param write_eol: if ``True`` this object will write newlines to output, if ``False`` it will not. N(tfht write_eol(RRR((s0/usr/lib/python2.7/site-packages/netaddr/core.pyt__init__cs cCs9|jjtj|ƒƒ|jr5|jjdƒndS(sµ A callback method used by a Publisher to notify this Subscriber about updates. :param data: a Python object containing data provided by Publisher. s N(Rtwritet_pprinttpformatR(RR((s0/usr/lib/python2.7/site-packages/netaddr/core.pyRqs (RRRt_syststdouttTrueRR(((s0/usr/lib/python2.7/site-packages/netaddr/core.pyR[st PublishercBs2eZdZd„Zd„Zd„Zd„ZRS(s² A 'push' Publisher that maintains a list of Subscriber objects notifying them of state changes by passing them update data when it encounter events of interest. cCs g|_dS(t ConstructorN(t subscribers(R((s0/usr/lib/python2.7/site-packages/netaddr/core.pyRƒscCsZt|dƒrFttdƒƒrF||jkrV|jj|ƒqVntd|ƒ‚dS(s Add a new subscriber. :param subscriber: a new object that implements the Subscriber object interface. Rssubscriber.updates'%r does not support required interface!N(thasattrRtevalRtappendt TypeError(Rt subscriber((s0/usr/lib/python2.7/site-packages/netaddr/core.pytattach‡s cCs,y|jj|ƒWntk r'nXdS(s– Remove an existing subscriber. :param subscriber: a new object that implements the Subscriber object interface. N(Rtremovet ValueError(RR#((s0/usr/lib/python2.7/site-packages/netaddr/core.pytdetach–s cCs%x|jD]}|j|ƒq WdS(s Send update data to to all registered Subscribers. :param data: the data to be passed to each registered Subscriber. N(RR(RRR#((s0/usr/lib/python2.7/site-packages/netaddr/core.pytnotify¢s(RRRRR$R'R((((s0/usr/lib/python2.7/site-packages/netaddr/core.pyR}s    t DictDotLookupcBs2eZdZd„Zd„Zd„Zd„ZRS(s Creates objects that behave much like a dictionaries, but allow nested key access using object '.' (dot) lookups. Recipe 576586: Dot-style nested lookups over dictionary based data structures - http://code.activestate.com/recipes/576586/ cCsÉxÂ|D]º}t||tƒr:t||ƒ|j|s*         "/#