o xg@sPddlZddlmZddlmZdZefddZdedefd d Zd d Z dS) N)ValidationError) gettext_lazy'cCs0t||krtd|dttt|S)NzUnable to convert z% to an IPv6 address (value too long).)len ValueError ipaddress IPv6Addressint)ip_str max_lengthr 3/usr/lib/python3/dist-packages/django/utils/ipv6.py_ipv6_address_from_str s  rFz!This is not a valid IPv6 address.cCsZzt||}Wn tyt|ddw|r|jrt|jS|jr)dt|jSt|S)a Clean an IPv6 address string. Raise ValidationError if the address is invalid. Replace the longest continuous zero-sequence with "::", remove leading zeroes, and make sure all hextets are lowercase. Args: ip_str: A valid IPv6 address. unpack_ipv4: if an IPv4-mapped address is found, return the plain IPv4 address (default=False). error_message: An error message used in the ValidationError. Return a compressed IPv6 address or the same value. invalid)codez ::ffff:%s)rrr ipv4_mappedstr)r unpack_ipv4 error_messager addrr r r clean_ipv6_addresss    rcCs$zt|WdStyYdSw)zL Return whether or not the `ip_str` string is a valid IPv6 address. FT)rr)r r r r is_valid_ipv6_address4s   r) rdjango.core.exceptionsrdjango.utils.translationr_MAX_IPV6_ADDRESS_LENGTHrrrr r r r s     #