
    >Tf.                         d dl mZ d dlmZ d dlmZmZ d dlmZ	 d dl
mZmZmZ  G d dej                  Z G d d	ej                  Zd
S )    )forms)ValidationError)validate_ipv4_addressvalidate_ipv6_address)gettext_lazy)	IPAddress	IPNetworkAddrFormatErrorc                   .    e Zd Zd ed          iZd ZdS )IPAddressFormFieldinvalidz4Enter a valid IPv4 or IPv6 address (without a mask).c                    |sd S t          |t                    r|S 	 t          |           n_# t          $ rR 	 t	          |           n># t          $ r1 t          t          d                              |                    w xY wY nw xY w	 t          |          S # t          $ r t          t          d                    t          $ r t          t          d                    w xY w)Nz+Invalid IPv4/IPv6 address format: {address})addressz1This field requires an IP address without a mask.,Please specify a valid IPv4 or IPv6 address.)	
isinstancer   r   r   r   _format
ValueErrorr
   selfvalues     4/var/www/html/netbox-4.1.3/netbox/ipam/formfields.py	to_pythonzIPAddressFormField.to_python   s9    	4eY'' 	L	n!%(((( 	n 	n 	nn%e,,,," n n n%a(U&V&V&]&]fk&]&l&lmmmn -,	n	UU### 	Z 	Z 	Z!!$W"X"XYYY 	U 	U 	U!!$R"S"STTT	Us3   - 
B	AB	;BB	B	B AC(N__name__
__module____qualname__r   default_error_messagesr        r   r   r      s@        11KLLU U U U Ur    r   c                   .    e Zd Zd ed          iZd ZdS )IPNetworkFormFieldr   z4Enter a valid IPv4 or IPv6 address (with CIDR mask).c                 0   |sd S t          |t                    r|S t          |                    d                    dk    rt	          t          d                    	 t          |          S # t          $ r t	          t          d                    w xY w)N/   z!CIDR mask (e.g. /24) is required.r   )r   r	   lensplitr   r   r
   r   s     r   r   zIPNetworkFormField.to_python/   s     	4eY'' 	L u{{3  A%%!!$G"H"HIII	UU### 	U 	U 	U!!$R"S"STTT	Us   A. .'BNr   r   r    r   r"   r"   *   s@        11KLLU U U U Ur    r"   N)djangor   django.core.exceptionsr   django.core.validatorsr   r   django.utils.translationr   r   netaddrr   r	   r
   Fieldr   r"   r   r    r   <module>r.      s          2 2 2 2 2 2 O O O O O O O O 6 6 6 6 6 6 9 9 9 9 9 9 9 9 9 9U U U U U U U U<U U U U U U U U U Ur    