code: def get_text_list(
      list_, last_sep=" and ", sep=", ", wrap_item_with=""
  ):
      """
      Return a string with a natural enumeration of items
  
      >>> get_text_list(['a', 'b', 'c', 'd'])
      'a, b, c and d'
      >>> get_text_list(['a', 'b', 'c'], ' or ')
      'a, b or c'
      >>> get_text_list(['a', 'b', 'c'], ', ')
      'a, b, c'
      >>> get_text_list(['a', 'b'], ' or ')
      'a or b'
      >>> get_text_list(['a'])
      'a'
      >>> get_text_list([])
      ''
      >>> get_text_list(['a', 'b'], wrap_item_with="`")
      '`a` and `b`'
      >>> get_text_list(['a', 'b', 'c', 'd'], " = ", sep=" + ")
      'a + b + c = d'
      """
      if len(list_) == 0:
          return ""
      if wrap_item_with:
          list_ = [
              "%s%s%s" % (wrap_item_with, item, wrap_item_with)
              for item in list_
          ]
      if len(list_) == 1:
          return list_[0]
      return "%s%s%s" % (
          sep.join(i for i in list_[:-1]),
          last_sep,
          list_[-1],
      )
  
imports: from __future__ import absolute_import
  import os
  import re
  import sys
  import textwrap
  from string import Formatter
  from IPython.testing.skipdoctest import skip_doctest_py3, skip_doctest
  from IPython.utils import py3compat
label_desc: Use image node_id 16 for calling a global function with example usage: get_text_list(list_, last_sep, sep, wrap_item_with) and returns: unknown, str, list_