docs: def view(molecule, viewer=settings['defaults']['viewer'], use_curr_dir=False):
      """View your molecule or list of molecules.
  
      .. note:: This function writes a temporary file and opens it with
          an external viewer.
          If you modify your molecule afterwards you have to recall view
          in order to see the changes.
  
      Args:
          molecule: Can be a cartesian, or a list of cartesians.
          viewer (str): The external viewer to use. The default is
              specified in settings.viewer
          use_curr_dir (bool): If True, the temporary file is written to
              the current diretory. Otherwise it gets written to the
              OS dependendent temporary directory.
  
      Returns:
          None:
      """
      try:
          molecule.view(viewer=viewer, use_curr_dir=use_curr_dir)
      except AttributeError:
          if pd.api.types.is_list_like(molecule):
              cartesian_list = molecule
          else:
              raise ValueError('Argument is neither list nor Cartesian.')
          if use_curr_dir:
              TEMP_DIR = os.path.curdir
          else:
              TEMP_DIR = tempfile.gettempdir()
  
          def give_filename(i):
              filename = 'ChemCoord_list_' + str(i) + '.molden'
              return os.path.join(TEMP_DIR, filename)
  
          i = 1
          while os.path.exists(give_filename(i)):
              i = i + 1
  
          to_molden(cartesian_list, buf=give_filename(i))
  
          def open_file(i):
              """Open file and close after being finished."""
              try:
                  subprocess.check_call([viewer, give_filename(i)])
              except (subprocess.CalledProcessError, FileNotFoundError):
                  raise
              finally:
                  if use_curr_dir:
                      pass
                  else:
                      os.remove(give_filename(i))
          Thread(target=open_file, args=(i,)).start()