code: def derived_from_chain(self):
      
      cur = self
      while cur.derived_from is not cur:
        cur = cur.derived_from
        yield cur
docs: Returns all targets that this target was derived from.
  
      If this target was not derived from another, returns an empty sequence.
  
      :API: public