code: def already_pending(self, unit_type: Union[UpgradeId, UnitTypeId], all_units: bool=False) -> int:
          
  
          # TODO / FIXME: SCV building a structure might be counted as two units
  
          if isinstance(unit_type, UpgradeId):
              return self.already_pending_upgrade(unit_type)
              
          ability = self._game_data.units[unit_type.value].creation_ability
  
          amount = len(self.units(unit_type).not_ready)
  
          if all_units:
              amount += sum([o.ability == ability for u in self.units for o in u.orders])
          else:
              amount += sum([o.ability == ability for w in self.workers for o in w.orders])
              amount += sum([egg.orders[0].ability == ability for egg in self.units(UnitTypeId.EGG)])
  
          return amount
docs: Returns a number of buildings or units already in progress, or if a
          worker is en route to build it. This also includes queued orders for
          workers and build queues of buildings.
  
          If all_units==True, then build queues of other units (such as Carriers
          (Interceptors) or Oracles (Stasis Ward)) are also included.