Ñò î¡ßNc@sdZddkZddkZddkZddklZl Z ei djZ dZ Z dZZdZZdefd „ƒYZd efd „ƒYZd efd „ƒYZd„Zdefd„ƒ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.6/site-packages/netaddr/core.pyRstAddrConversionErrorcBseZdZRS(s^ An Exception indicating a failure to convert between address types or notations. (RRR(((s0/usr/lib/python2.6/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.6/site-packages/netaddr/core.pyR,scCs9t|ƒ}d}x |o|d7}|dL}qW|S(s{ @param int_val: an unsigned integer. @return: the minimum number of bits needed to represent value provided. ii(tabs(tint_valtnumbits((s0/usr/lib/python2.6/site-packages/netaddr/core.pytnum_bits4s  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.6/site-packages/netaddr/core.pytupdateFs(RRRR(((s0/usr/lib/python2.6/site-packages/netaddr/core.pyR Bst PrettyPrintercBs)eZdZeied„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 C{True} this object will write newlines to output, if C{False} it will not. N(tfht write_eol(RRR((s0/usr/lib/python2.6/site-packages/netaddr/core.pyt__init__Xs cCs;|iiti|ƒƒ|io|iidƒ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.6/site-packages/netaddr/core.pyRfs (RRRt_syststdouttTrueRR(((s0/usr/lib/python2.6/site-packages/netaddr/core.pyRPst 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.6/site-packages/netaddr/core.pyRxscCs_t|dƒo;ttdƒƒo(||ijo|ii|ƒq[ntd|ƒ‚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.6/site-packages/netaddr/core.pytattach|s cCs.y|ii|ƒWntj onXdS(s– Remove an existing subscriber. @param subscriber: a new object that implements the Subscriber object interface. N(Rtremovet ValueError(RR#((s0/usr/lib/python2.6/site-packages/netaddr/core.pytdetach‹scCs%x|iD]}|i|ƒ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.6/site-packages/netaddr/core.pytnotify—s (RRRRR$R'R((((s0/usr/lib/python2.6/site-packages/netaddr/core.pyRrs    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ƒot||ƒ|i|s"       "/#