code: def get_authors_from_git():
      git_command = [
          "git",
          "log",
          "--topo-order",
          "--reverse",
          "--format=%aN <%aE>",
      ]
  
      parents = run(
          ["git", "rev-list", "--no-walk", "--count", "HEAD^@"],
          stdout=PIPE,
          encoding="utf-8",
      ).stdout.strip()
      if parents != "1":
          # Skip the most recent commit. Used to ignore the merge commit created
          # when this script runs in CI. If HEAD is a merge commit parents will
          # typically be '2'. We use HEAD^2 rather than HEAD^1 to select the
          # parent commit that is part of the PR rather than the parent commit
          # that was the previous tip of master.
          git_command.append("HEAD^" + parents)
  
      git_people = (
          run(git_command, stdout=PIPE, encoding="utf-8")
          .stdout.strip()
          .split("\n")
      )
  
      # remove duplicates, keeping the original order
      git_people = list(OrderedDict.fromkeys(git_people))
  
      # Do the few changes necessary in order to reproduce AUTHORS:
      def move(l, i1, i2, who):
          x = l.pop(i1)
          # this will fail if the .mailmap is not right
          assert who == author_name(
              x
          ), "%s was not found at line %i" % (who, i1)
          l.insert(i2, x)
  
      move(git_people, 2, 0, "Ondřej Čertík")
      move(git_people, 42, 1, "Fabian Pedregosa")
      move(git_people, 22, 2, "Jurjen N.E. Bos")
      git_people.insert(
          4, "*Marc-Etienne M.Leveille <protonyc@gmail.com>"
      )
      move(git_people, 10, 5, "Brian Jorgensen")
      git_people.insert(11, "*Ulrich Hecht <ulrich.hecht@gmail.com>")
      # this will fail if the .mailmap is not right
      assert "Kirill Smelkov" == author_name(
          git_people.pop(12)
      ), "Kirill Smelkov was not found at line 12"
      move(git_people, 12, 32, "Sebastian Krämer")
      move(git_people, 227, 35, "Case Van Horsen")
      git_people.insert(43, "*Dan <coolg49964@gmail.com>")
      move(git_people, 57, 59, "Aaron Meurer")
      move(git_people, 58, 57, "Andrew Docherty")
      move(git_people, 67, 66, "Chris Smith")
      move(git_people, 79, 76, "Kevin Goodsell")
      git_people.insert(
          84, "*Chu-Ching Huang <cchuang@mail.cgu.edu.tw>"
      )
      move(git_people, 93, 92, "James Pearson")
      # this will fail if the .mailmap is not right
      assert "Sergey B Kirpichev" == author_name(
          git_people.pop(226)
      ), "Sergey B Kirpichev was not found at line 226."
  
      index = git_people.index(
          "azure-pipelines[bot] "
          + "<azure-pipelines[bot]@users.noreply.github.com>"
      )
      git_people.pop(index)
      index = git_people.index(
          "whitesource-bolt-for-github[bot] "
          + "<whitesource-bolt-for-github[bot]@users.noreply.github.com>"
      )
      git_people.pop(index)
  
      return git_people
  
imports: from __future__ import unicode_literals
  from __future__ import print_function
  import sys
  from pathlib import Path
  from subprocess import run, PIPE
  from collections import OrderedDict, defaultdict
  from argparse import ArgumentParser
  import sympy
  from sympy.utilities.misc import filldedent
  from sympy.external.importtools import version_tuple
label_desc: Use image node_id 11 for calling a global function with example usage: get_authors_from_git() and returns: git_people