<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def make_node( op_type, # type: Text inputs, # type: Sequence[Text] outputs, # type: Sequence[Text] name=None, # type: Optional[Text] doc_string=None, # type: Optional[Text] domain=None, # type: Optional[Text] **kwargs # type: Any """Construct a NodeProto. Arguments: op_type (string):
 The name of the operator to construct inputs (list of string):
 list of input names outputs (list of string):
 list of output names name (string, default None):
 optional unique identifier for NodeProto doc_string (string, default None):
 optional documentation string for NodeProto domain (string, default None):
 optional domain for NodeProto. If it's None, we will just use default domain (which is empty) **kwargs (dict):
 the attributes of the node. The acceptable values are documented in :func:`make_attribute`. """


    node = NodeProto()
    node.op_type = op_type
    node.input.extend(inputs)
    node.output.extend(outputs)
    if name:
        node.name = name
    if doc_string:
        node.doc_string = doc_string
    if domain is not None:
        node.domain = domain
    if kwargs:
        node.attribute.extend(
            make_attribute(key, value)
            for key, value in sorted(kwargs.items()))
    return node