code: def get_trace(self, reference=None):
          
          item = self
          while item:
              yield item
              if item == reference:
                  return
              item = item.parent
  
          if reference is not None:
              raise Exception(
                  'Reference {} is not in Ancestry'.format(reference))
docs: Returns a generator of parents up to :reference:, including reference
          If :reference: is *None* root is assumed
          Closest ancestor goes first