input: Write a function to find the greatest 2 numbers from a list of integers. The function should return the two greatest numbers in descending order. If the list contains fewer than 2 numbers, the function should return the greatest number and None for the second greatest number if it doesn't exist.
  def get_greatest_2(items):
   max1 = max2 = float('-inf')
   for item in items:
   if item > max1:
   max1, max2 = item, max1
   elif item > max2:
   max2 = item
   return max1, max2 if max2 != float('-inf') else max1, None
  
  assert get_greatest_2([1, 5, 3, 7, 4, 7, 8, 9, 2, 10, 6, 8]) == (10, 9)
  assert get_greatest_2([1, 2, 3, 4, 5]) == (5, 4)
  assert get_greatest_2([1]) == (1, None)
  assert get_greatest_2([]) == (float('-inf'), None)
output: def get_greatest_2(items):
      max1 = max2 = float('-inf')
      for item in items:
          if item > max1:
              max1, max2 = item, max1
          elif item > max2:
              max2 = item
      return max1, max2 if max2 != float('-inf') else max1, None