code: def run(self, xml, **kwargs):
          
          kwargs['output'] = self.__graph__()
          if isinstance(xml, str):
              try:
                  self.source = etree.XML(xml)
              except ValueError:
                  try:
                      self.source = etree.XML(xml.encode())
                  except:
                      raise ValueError("Cannot run error {}".format(sys.exc_info()[0]))
          else:
              self.source = xml
          super(XMLProcessor, self).run(**kwargs)
          self.output = kwargs['output']
          return kwargs['output']
docs: Method takes either an etree.ElementTree or raw XML text
          as the first argument.
  
          Args:
              xml(etree.ElementTree or text