'Instantiate a new IPv6 address object.
Args:
address: A string or integer representing the IP
Additionally, an integer can be passed, so
IPv6Address(\'2001:db8::\') ==
IPv6Address(42540766411282592856903984951653826560)
or, more generally
IPv6Address(int(IPv6Address(\'2001:db8::\'))) ==
IPv6Address(\'2001:db8::\')
Raises:
AddressValueError: If address isn\'t a valid IPv6 address.'

def __init__(self, address):

    if isinstance(address, _compat_int_types):
        self._check_int_address(address)
        self._ip = address
        return
    if isinstance(address, bytes):
        self._check_packed_address(address, 16)
        bvs = _compat_bytes_to_byte_vals(address)
        self._ip = _compat_int_from_byte_vals(bvs, u'big')
        return
    addr_str = _compat_str(address)
    if (u'/' in addr_str):
        raise AddressValueError((u"Unexpected    '/'    in    %r" % address))
    self._ip = self._ip_int_from_string(addr_str)
