code: def optional_data(self, product_type):
      
      self._optional_dependencies.add(product_type)
      self.require_data(product_type)
docs: Schedules tasks, if any, that produce product_type to be executed before the requesting task.
  
      There need not be any tasks that produce the required product type.  All this method
      guarantees is that if there are any then they will be executed before the requesting task.
  
      :API: public