Lines Matching refs:parts
1218 parts = [x for x in map(int, bits) if x in self._valid_mask_octets]
1221 if len(parts) != len(bits):
1223 if parts[0] < parts[-1]:
1647 parts = ip_str.split(':')
1649 # An IPv6 address needs at least 2 colons (3 parts).
1651 if len(parts) < _min_parts:
1652 msg = "At least %d parts expected in %r" % (_min_parts, ip_str)
1656 if '.' in parts[-1]:
1658 ipv4_int = IPv4Address(parts.pop())._ip
1661 parts.append('%x' % ((ipv4_int >> 16) & 0xFFFF))
1662 parts.append('%x' % (ipv4_int & 0xFFFF))
1664 # An IPv6 address can't have more than 8 colons (9 parts).
1668 if len(parts) > _max_parts:
1675 for i in range(1, len(parts) - 1):
1676 if not parts[i]:
1683 # parts_hi is the number of parts to copy from above/before the '::'
1684 # parts_lo is the number of parts to copy from below/after the '::'
1688 parts_lo = len(parts) - skip_index - 1
1689 if not parts[0]:
1694 if not parts[-1]:
1701 msg = "Expected at most %d other parts with '::' in %r"
1707 if len(parts) != cls._HEXTET_COUNT:
1708 msg = "Exactly %d parts expected without '::' in %r"
1710 if not parts[0]:
1713 if not parts[-1]:
1716 parts_hi = len(parts)
1725 ip_int |= cls._parse_hextet(parts[i])
1729 ip_int |= cls._parse_hextet(parts[i])
1853 parts = [hex_str[x:x+4] for x in range(0, 32, 4)]
1855 return '%s/%d' % (':'.join(parts), self._prefixlen)
1856 return ':'.join(parts)