code: def _get_progress(self):
          
          input_data = []
          ret = {}
  
          # traverse emerge.log from bottom up to get latest information
          last_lines = self.py3.command_output(["tail", "-50", self.emerge_log_file])
          input_data = last_lines.split("\n")
          input_data.reverse()
  
          for line in input_data:
              if "*** terminating." in line:
                  # copy content of ret_default, not only the references
                  ret = copy.deepcopy(self.ret_default)
                  break
              else:
                  status_re = re.compile(
                      "\((?P<cu>[\d]+) of (?P<t>[\d]+)\) "
                      "(?P<a>[a-zA-Z\/]+( [a-zA-Z]+)?) "
                      "\((?P<ca>[\w\-]+)\/(?P<p>[\w\.]+)"
                  )
                  res = status_re.search(line)
                  if res is not None:
                      ret["action"] = res.group("a").lower()
                      ret["category"] = res.group("ca")
                      ret["current"] = res.group("cu")
                      ret["pkg"] = res.group("p")
                      ret["total"] = res.group("t")
                      break
          return ret
docs: Get current progress of emerge.
          Returns a dict containing current and total value.