docstr: Create a new input port on the underlying `gnode`, and return an
  :obj:`int` containing the ID of the new input port.
docstr_tok: ["Create","a","new","input","port","on","the","underlying","`","gnode","`",",","and","return","an",":","obj",":","`","int","`","containing","the","ID","of","the","new","input","port","."]
code: def make_port(self):
      """Create a new input port on the underlying `gnode`, and return an
      :obj:`int` containing the ID of the new input port.
      """
      return self._table.make_port()
  
imports: from datetime import date, datetime
  from ..core.exception import PerspectiveError
  from ._accessor import _PerspectiveAccessor
  from ._callback_cache import _PerspectiveCallBackCache
  from ._date_validator import _PerspectiveDateValidator
  from ._state import _PerspectiveStateManager
  from ._utils import _dtype_to_pythontype, _dtype_to_str, _parse_expression_inputs, _str_to_pythontype
  from .libpsppy import make_table, update_table, str_to_filter_op, t_dtype, t_filter_op, t_op, validate_expressions
  from .view import View
label_desc: Use image node_id 2 for calling the Table obj's underlying member method code with example usage: obj.make_port() and returns: self