nodes: 0, module; 1, function_definition; 2, function_name:get_project_files; 3, parameters; 4, block; 5, expression_statement; 6, if_statement; 7, expression_statement; 8, for_statement; 9, return_statement; 10, comment:"""Retrieve a list of project files, ignoring hidden files.
  
      :return: sorted list of project files
      :rtype: :class:`list`
      """; 11, call; 12, block; 13, assignment; 14, pattern_list; 15, call; 16, block; 17, identifier:project_files; 18, identifier:is_git_project; 19, argument_list; 20, return_statement; 21, identifier:project_files; 22, list; 23, identifier:top; 24, identifier:subdirs; 25, identifier:files; 26, attribute; 27, argument_list; 28, for_statement; 29, for_statement; 30, call; 31, identifier:os; 32, identifier:walk; 33, string; 34, identifier:subdir; 35, identifier:subdirs; 36, block; 37, identifier:f; 38, identifier:files; 39, block; 40, identifier:get_git_project_files; 41, argument_list; 42, string_content:.; 43, if_statement; 44, if_statement; 45, expression_statement; 46, call; 47, block; 48, call; 49, block; 50, call; 51, attribute; 52, argument_list; 53, expression_statement; 54, attribute; 55, argument_list; 56, continue_statement; 57, attribute; 58, argument_list; 59, identifier:subdir; 60, identifier:startswith; 61, string; 62, call; 63, identifier:f; 64, identifier:startswith; 65, string; 66, identifier:project_files; 67, identifier:append; 68, call; 69, string_content:.; 70, attribute; 71, argument_list; 72, string_content:.; 73, attribute; 74, argument_list; 75, identifier:subdirs; 76, identifier:remove; 77, identifier:subdir; 78, attribute; 79, identifier:join; 80, identifier:top; 81, identifier:f; 82, identifier:os; 83, identifier:path
code: def get_project_files():
      """Retrieve a list of project files, ignoring hidden files.
  
      :return: sorted list of project files
      :rtype: :class:`list`
      """
      if is_git_project():
          return get_git_project_files()
  
      project_files = []
      for top, subdirs, files in os.walk('.'):
          for subdir in subdirs:
              if subdir.startswith('.'):
                  subdirs.remove(subdir)
  
          for f in files:
              if f.startswith('.'):
                  continue
              project_files.append(os.path.join(top, f))
  
      return project_files