+
    4iS                         R t ^ RIt^ RIt]P
                  R8H  t^t^t^t	^t
 ! R R]4      t ! R R]4      t ! R R]4      t ! R	 R
]4      t ! R R]4      t ! R R]4      t ! R R]4      tR# )z6Common code shared between various netaddr sub modulesNbigc                       ] tR t^tRtRtR# )AddrFormatErrorzG
An Exception indicating a network address is not correctly formatted.
 N__name__
__module____qualname____firstlineno____doc____static_attributes__r       ./usr/lib/python3/dist-packages/netaddr/core.pyr   r      s     	r   r   c                       ] tR t^&tRtRtR# )AddrConversionErrorzR
An Exception indicating a failure to convert between address types or
notations.
r   Nr   r   r   r   r   r   &       
 	r   r   c                       ] tR t^/tRtRtR# )NotRegisteredErrorzP
An Exception indicating that an OUI or IAB was not found in the IEEE
Registry.
r   Nr   r   r   r   r   r   /   r   r   r   c                   *   a  ] tR t^8t o RtR tRtV tR# )
SubscriberzC
An abstract class defining the interface expected by a Publisher.
c                    \        R4      h)
A callback method used by a Publisher to notify this Subscriber about
updates.

:param data: a Python object containing data provided by Publisher.
zcannot invoke virtual method!)NotImplementedErrorselfdatas   &&r   updateSubscriber.update=   s     ""ABBr   r   N)r   r   r	   r
   r   r   r   __classdictcell____classdict__s   @r   r   r   8   s     C Cr   r   c                   L   a  ] tR t^Gt o Rt]P                  R3R ltR tRt	V t
R# )PrettyPrinterz
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.
Tc                    Wn         W n        R# )z
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fh	write_eol)r   r%   r&   s   &&&r   __init__PrettyPrinter.__init__P   s     "r   c                    V P                   P                  \        P                  ! V4      4       V P                  '       d   V P                   P                  R4       R# R# )r   
N)r%   write_pprintpformatr&   r   s   &&r   r   PrettyPrinter.update^   s;     	good+,>>>GGMM$ r   r$   N)r   r   r	   r
   r   _sysstdoutr'   r   r   r   r   s   @r   r"   r"   G   s$      ++ #	  	 r   r"   c                   <   a  ] tR t^jt o RtR tR tR tR tRt	V t
R# )	Publisherz
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.
c                    . V n         R# )ConstructorNsubscribersr   s   &r   r'   Publisher.__init__q   s
    r   c                    \        VR4      '       dL   \        VP                  R4      '       d0   WP                  9  d   V P                  P                  V4       R# R# \	        RV,          4      h)zm
Add a new subscriber.

:param subscriber: a new object that implements the Subscriber object
    interface.
r   __call__z'%r does not support required interface!N)hasattrr   r6   append	TypeErrorr   
subscribers   &&r   attachPublisher.attachu   s[     :x((WZ5F5F
-S-S!1!11  ''
3 2 E
RSSr   c                b     V P                   P                  V4       R#   \         d     R# i ; i)zv
Remove an existing subscriber.

:param subscriber: a new object that implements the Subscriber object
    interface.
N)r6   remove
ValueErrorr>   s   &&r   detachPublisher.detach   s-    	##J/ 		s    ..c                N    V P                    F  pVP                  V4       K  	  R# )zw
Send update data to to all registered Subscribers.

:param data: the data to be passed to each registered Subscriber.
N)r6   r   )r   r   r?   s   && r   notifyPublisher.notify   s"     **Jd# +r   r5   N)r   r   r	   r
   r   r'   r@   rE   rH   r   r   r   s   @r   r2   r2   j   s$     T
$ $r   r2   c                   <   a  ] tR t^t o RtR tR tR tR tRt	V t
R# )DictDotLookupz
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/

c                   V F  p\        W,          \        4      '       d!   \        W,          4      V P                  V&   K?  \        W,          \        \
        34      '       de   . pW,           FF  p\        V\        4      '       d   VP                  \        V4      4       K5  VP                  V4       KH  	  W0P                  V&   K  W,          V P                  V&   K  	  R # N)
isinstancedictrK   __dict__listtupler<   )r   dklvs   &&   r   r'   DictDotLookup.__init__   s    A!$%%#0#6a AD4-00A!!T**q!12	 
 $%a #$4a  r   c                L    WP                   9   d   V P                   V,          # R # rM   )rP   )r   names   &&r   __getitem__DictDotLookup.__getitem__   s     == ==&& !r   c                6    V P                   P                  4       # rM   )rP   keysr7   s   &r   __iter__DictDotLookup.__iter__   s    }}!!##r   c                B    \         P                  ! V P                  4      # rM   )r,   r-   rP   r7   s   &r   __repr__DictDotLookup.__repr__   s    t}}--r   r   N)r   r   r	   r
   r   r'   rZ   r^   ra   r   r   r   s   @r   rK   rK      s#     ('$. .r   rK   )r   sysr/   pprintr,   	byteorderBIG_ENDIAN_PLATFORM	INET_PTONZEROFILLNOHOST	INET_ATON	Exceptionr   r   r   objectr   r"   r2   rK   r   r   r   <module>rm      s    =   nn-  	  
 		i 		) 		 	C C  J   F+$ +$\!.F !.r   