code: def concat(
      objs,
      axis=0,
      join="outer",
      ignore_index=False,
      keys=None,
      levels=None,
      names=None,
      verify_integrity=False,
      sort=False,
      copy=True,
  ):
      if not isinstance(objs, (list, tuple)):  # pragma: no cover
          raise TypeError(
              "first argument must be an iterable of dataframe or series objects"
          )
      axis = validate_axis(axis)
      if isinstance(objs, dict):  # pragma: no cover
          keys = objs.keys()
          objs = objs.values()
      if axis == 1 and join == "inner":  # pragma: no cover
          raise NotImplementedError(
              "inner join is not support when specify `axis=1`"
          )
      if verify_integrity or sort or keys:  # pragma: no cover
          raise NotImplementedError(
              "verify_integrity, sort, keys arguments are not supported now"
          )
      op = DataFrameConcat(
          axis=axis,
          join=join,
          ignore_index=ignore_index,
          keys=keys,
          levels=levels,
          names=names,
          verify_integrity=verify_integrity,
          sort=sort,
          copy=copy,
      )
  
      return op(objs)
  
imports: import pandas
  import numpy
  from ...None import opcodes
  from ...core import ENTITY_TYPE, OutputType, recursive_tile
  from ...serialization.serializables import FieldTypes, ListField, StringField, BoolField, AnyField
  from ...utils import lazy_import, has_unknown_shape
  from ..operands import DataFrameOperand, DataFrameOperandMixin, SERIES_TYPE
  from ..utils import parse_index, build_empty_df, build_empty_series, standardize_range_index, validate_axis
label_desc: Use image node_id 1 for calling a global function with example usage: concat(objs, axis, join, ignore_index, keys, levels, names, verify_integrity, sort, copy) and returns: op