def __init__(self, number, protocol="tcp", description=""):
        """
        :param number: port number
        :type number: int

        :param protocol: port protocol: tcp, udp...
        :type protocol: basestring

        :param description: port description
        :type description: basestring

        :raises: TypeError, ValueError
        """
        if not isinstance(number, int):
            raise TypeError("Expected int, got '%s' instead" % type(number))
        else:
            if number < 0:
                raise ValueError("Port number must be greater than 0")
        if not isinstance(protocol, str):
            raise TypeError("Expected basestring, got '%s' instead" % type(protocol))
        if not isinstance(description, str):
            raise TypeError("Expected basestring, got '%s' instead" % type(description))

        self.number = number
        self.description = description
        self.protocol = protocol
    

    # ----------------------------------------------------------------------
dataset/ETHPy150Open cr0hn/openvas_to_report/openvas_to_report/libs/data/parsed_data.py/Port.__init__/original