code: def find_user_file(self, option_name, filename_list):
          
          if option_name is not None:
              filePath = self._options.get(option_name, None)
          else:
              filePath = None
          
          # Look for default filenames if a path wasn't provided.
          if filePath is None:
              for filename in filename_list:
                  thisPath = os.path.join(self.project_dir, filename)
                  if os.path.isfile(thisPath):
                      filePath = thisPath
                      break
          # Use the path passed in options, which may be absolute, relative to the
          # home directory, or relative to the project directory.
          else:
              filePath = os.path.expanduser(filePath)
              if not os.path.isabs(filePath):
                  filePath = os.path.join(self.project_dir, filePath)
          
          return filePath
docs: ! @brief Search the project directory for a file.