code: def _parse_octet(self, octet_str):
          
          if not octet_str:
              raise ValueError("Empty octet not permitted")
          # Whitelist the characters, since int() allows a lot of bizarre stuff.
          if not self._DECIMAL_DIGITS.issuperset(octet_str):
              msg = "Only decimal digits permitted in %r"
              raise ValueError(msg % octet_str)
          # We do the length check second, since the invalid character error
          # is likely to be more informative for the user
          if len(octet_str) > 3:
              msg = "At most 3 characters permitted in %r"
              raise ValueError(msg % octet_str)
          # Convert to integer (we know digits are legal)
          octet_int = int(octet_str, 10)
          # Any octets that look like they *might* be written in octal,
          # and which don't look exactly the same in both octal and
          # decimal are rejected as ambiguous
          if octet_int > 7 and octet_str[0] == '0':
              msg = "Ambiguous (octal/decimal) value in %r not permitted"
              raise ValueError(msg % octet_str)
          if octet_int > 255:
              raise ValueError("Octet %d (> 255) not permitted" % octet_int)
          return octet_int
docs: Convert a decimal octet into an integer.
  
          Args:
              octet_str: A string, the number to parse.
  
          Returns:
              The octet as an integer.
  
          Raises:
              ValueError: if the octet isn't strictly a decimal from [0..255].