code: def full_path(startPath, files):
      """Make full paths for all the listed files, based on startPath.
  
      Only the base part of startPath is kept, since this routine is typically
      used with a script's ``__file__`` variable as startPath. The base of startPath
      is then prepended to all the listed files, forming the output list.
  
      Parameters
      ----------
      startPath : string
        Initial path to use as the base for the results.  This path is split
        using os.path.split() and only its first component is kept.
  
      files : string or list
        One or more files.
  
      Examples
      --------
  
      >>> full_path('/foo/bar.py',['a.txt','b.txt'])
      ['/foo/a.txt', '/foo/b.txt']
  
      >>> full_path('/foo',['a.txt','b.txt'])
      ['/a.txt', '/b.txt']
  
      If a single file is given, the output is still a list::
  
          >>> full_path('/foo','a.txt')
          ['/a.txt']
      """
  
      files = list_strings(files)
      base = os.path.split(startPath)[0]
      return [os.path.join(base, f) for f in files]
  
imports: import os
  from pathlib import Path
  import re
  import sys
  import tempfile
  import unittest
  from contextlib import contextmanager
  from io import StringIO
  from subprocess import Popen, PIPE
  from unittest.mock import patch
  from traitlets.config.loader import Config
  from IPython.utils.process import get_output_error_code
  from IPython.utils.text import list_strings
  from IPython.utils.io import temp_pyfile, Tee
  from IPython.utils import py3compat
  from .None import decorators
  from .None import skipdoctest
label_desc: Use image node_id 1 for calling a global function with example usage: full_path(startPath, files) and returns: unknown