code: def tags(pode, leaf=False):
      '''
      Get all the tags for a given node.
  
      Args:
          pode (tuple): A packed node.
          leaf (bool): If True, only return the full tags.
  
      Returns:
          list: A list of tag strings.
      '''
      fulltags = [tag for tag in pode[1]['tags']]
      if not leaf:
          return fulltags
  
      # longest first
      retn = []
  
      # brute force rather than build a tree.  faster in small sets.
      for size, tag in sorted([(len(t), t) for t in fulltags], reverse=True):
          look = tag + '.'
          if any([r.startswith(look) for r in retn]):
              continue
          retn.append(tag)
      return retf tags(pode, leaf=False):
      '''
      Get all the tags for a given node.
  
      Args:
          pode (tuple): A packed node.
          leaf (bool): If True, only return the full tags.
  
      Returns:
          list: A list of tag strings.
      '''
      fulltags = [tag for tag in pode[1]['tags']]
      if not leaf:
          return fulltags
  
      # longest first
      retn = []
  
      # brute force rather than build a tree.  faster in small sets.
      for size, tag in sorted([(len(t), t) for t in fulltags], reverse=True):
          look = tag + '.'
          if any([r.startswith(look) for r in retn]):
              continue
          retn.append(tag)
      return retn
docs: Get all the tags for a given node.
  
      Args:
          pode (tuple): A packed node.
          leaf (bool): If True, only return the full tags.
  
      Returns:
          list: A list of tag strings.