def parse(self,uri=None,fh=None,str_data=None,**kwargs):
        """Parse a single XML document for this list

        Accepts either a uri (uri or default if parameter not specified), 
        or a filehandle (fh) or a string (str_data). Note that this method
        does not handle the case of a sitemapindex+sitemaps.

        LEGACY SUPPORT - the parameter str may be used in place of str_data
        but is deprecated and will be removed in a later version.
        """
        if (uri is not None):
            try:
                fh = URLopener().open(uri)
            except IOError as e:
                raise Exception("Failed to load sitemap/sitemapindex from %s (%s)" % (uri,str(e)))
        elif (str_data is not None):
            fh=io.StringIO(str_data)
        elif ('str' in kwargs):
            # Legacy support for str argument, see
            # https://github.com/resync/resync/pull/21
            # One test for this in tests/test_list_base.py
            self.logger.warn("Legacy parse(str=...), use parse(str_data=...) instead")
            fh = io.StringIO(kwargs['str'])
        if (fh is None):
            raise Exception("Nothing to parse")
        s = self.new_sitemap()
        s.parse_xml(fh=fh,resources=self,capability=self.capability_name,sitemapindex=False)
        self.parsed_index = s.parsed_index
        
    ##### OUTPUT #####
dataset/ETHPy150Open resync/resync/resync/list_base.py/ListBase.parse/original