
    $g                         d Z ddlZddlZddlZddlmZmZmZ i d  ee          D             ej        ej        ej        dZ	dZ
d Zdd	Zd
eddfdZedk    r e             dS dS )z,an interactive shell for the netaddr library    N)AddrFormatError	IPAddress	IPNetworkc                 V    i | ]&}|t           j        v |t          t           |          'S  )netaddr__all__getattr).0names     K/var/www/html/netbox-4.1.3/venv/lib/python3.11/site-packages/netaddr/cli.py
<dictcomp>r      s0    XXX@W@WtWWd##@W@W@W    )IPCIDRMACz               __            __    __
   ____  ___  / /_____ _____/ /___/ /____
  / __ \/ _ \/ __/ __ `/ __  / __  / ___/
 / / / /  __/ /_/ /_/ / /_/ / /_/ / /
/_/ /_/\___/\__/\__,_/\__,_/\__,_/_/
c                     t          t                     t          j        ddd          } |                     d          }d|_        |                    dd	          }|                    d
d	          }|                    dd	           |                                 }|j	        dk    rt                       d S |j	        d
k    rt          |j                   d S t          d|j	         d           t          j        d           d S )Nr   zThe netaddr CLI toolzShare and enjoy!)progdescriptionepilogcommand)destshellz3Start an interactive shell (the default subcommand))helpinfoz'Display information about an IP networknetworkzThe IP network to displayzUnknown command z, should not happen   )printASCII_ART_LOGOargparseArgumentParseradd_subparsersdefault
add_parseradd_argument
parse_argsr   r   r   r   sysexit)parser
subparsersshell_parserparser_infoargss        r   mainr.      s    	.$$:CU  F &&I&66J J((K )  L ''5^'__KY-HIIID|w			T\BBBBCCCr   returnc                      dt           j        dt          d} d}	 ddlm fd}n*# t
          $ r dt                       dd lfd	}Y nw xY w |t                      | |           d S )
Nznetaddr shell z - 
z
Share and enjoy!r   )InteractiveShellEmbedc                 >      ||t                                  d S )N)banner1exit_msguser_ns)SHELL_NAMESPACE)	namespacebannerr5   r2   s      r   r   zshell.<locals>.shell?   s*    ]!!&8_]]]_____r   zJUsing built-in Python REPL. You can install IPython for better experience.c                 d                         d                    |dg          | |           d S )Nr1    )localexitmsg)interactjoin)r8   r9   r5   codenotices      r   r   zshell.<locals>.shellF   s5    MM$))VVR$899T\M]]]]]r   )	r   __version____doc__IPython.terminal.embedr2   ImportErrorr   r@   locals)r9   r5   r   r2   r@   rA   s      @@@r   r   r   7   s     GGG%F#H^@@@@@@	` 	` 	` 	` 	` 	` ^ ^ ^]	^ 	^ 	^ 	^ 	^ 	^ 	^ 	^^ 
E&((FH%%%%%s   + $AAnetwork_inputc                    	 t          |           j        }n=# t          $ r0}t          |  d           t	          j        d           Y d }~nd }~ww xY wt          d           t                       |                                \  }}t          |          |j        |j        	                                t          |j                  t          |j                  |j        |j        	                                |j        dk    r|j        ndt          |j                   dt          |j                   |j        t          |           dt          |           ||z
  dz   d}t'          d |D                       dz   }|                                D ].\  }}t          | d	|t+          |          z
  z   d	|            /d S )
Nz is not a valid networkr   zIP network information   zN/A-)r   z
Network IPzNetwork IP (binary)zNetwork IP (decimal)zNetwork IP (hex)zSubnet maskzSubnet mask (binary)zBroadcast IPRangezTotal addresseszUsable rangezUsable addressesc              3   4   K   | ]}t          |          V  d S )N)len)r   labels     r   	<genexpr>zinfo.<locals>.<genexpr>e   s(      55Uc%jj555555r    )r   cidrr   r   r'   r(   _usable_rangestrr   bitsinthexnetmaskversion	broadcastr   firstlastsizemaxitemsrM   )	rG   r   efirst_usablelast_usableoutputlabel_widthrN   values	            r   r   r   L   s   M**/   777888 

"###	GGG ' 5 5 7 7L+Go&3355 #GO 4 400 ' 4 4 6 6-4_-A-A))ugm,,HHy/F/FHH"<$\22MMY{5K5KMM',6: F 55f555559K D DuB{SZZ78BB5BBCCCCD Ds    
A&AA__main__)r/   N)rC   r    r'   r   r   r   r   dirEUIr7   r   r.   r   rS   r   __name__r   r   r   <module>ri      s   3 2  



  9 9 9 9 9 9 9 9 9 9XXGXXX 
;    0& & & &*D D D D D D< zDFFFFF r   