class_docstr: Sub class of DataContainer to perform list operations.
  It allows to perform append, and concat operations on a DataContainer.
  
  .. seealso::
      :class:`DataContainer`
class_docstr_tok: ["Sub","class","of","DataContainer","to","perform","list","operations",".","It","allows","to","perform","append",",","and","concat","operations","on","a","DataContainer",".","..","seealso",":",":",":","class",":","`","DataContainer","`"]
docstr: Concat the given data container at the end of self so as to extend each IDs, DIs, and EOs.
  
  :param data_container: data container
  :type data_container: DataContainer
  :return:
docstr_tok: ["Concat","the","given","data","container","at","the","end","of","self","so","as","to","extend","each","IDs",",","DIs",",","and","EOs",".",":","param","data_container",":","data","container",":","type","data_container",":","DataContainer",":","return",":"]
code: def extend(self, other: DACT):
      """
      Concat the given data container at the end of self so as to extend each IDs, DIs, and EOs.
  
      :param data_container: data container
      :type data_container: DataContainer
      :return:
      """
      other.tolistshallow()
  
      if self._ids is not None and other._ids is not None:
          self._ids.extend(other._ids)
      if self.data_inputs is not None and other.data_inputs is not None:
          self.data_inputs.extend(other.data_inputs)
      if (
          self.expected_outputs is not None
          and other.expected_outputs is not None
      ):
          self.expected_outputs.extend(other.expected_outputs)
  
      return self
  
imports: import copy
  import math
  from operator import attrgetter
  from typing import Any, Callable, Generic, Iterable, Iterator, List, Optional, Tuple, TypeVar, Union
  import numpy
  import pandas
label_desc: Use image node_id 6 for calling the ListDataContainer obj's underlying member method code with example usage: obj.extend(other) and returns: self