docs: def find_libs():
      """
      Run through L{ETREE_MODULES} and find C{ElementTree} implementations so
      that any type can be encoded.
  
      We work through the C implementations first, then the pure Python versions.
      The downside to this is that B{all} libraries will be imported but I{only}
      one is ever used. The libs are small (relatively) and the flexibility that
      this gives seems to outweigh the cost. Time will tell.
      """
      from pyamf.util import get_module
  
      types = []
      mapping = {}
  
      for mod in ETREE_MODULES:
          try:
              etree = get_module(mod)
          except ImportError:
              continue
  
          t = _get_etree_type(etree)
  
          types.append(t)
          mapping[t] = etree
  
      return tuple(types), mapping