def __init__(self, element, spec):
        Extension.__init__(self, element, spec)
        self.spec = spec

        # not every spec has a ._remove member, but there shouldn't be a remove
        # tag without that member, if there is, blame me!
        for removed in chain.from_iterable(element.findall('remove')):
            if removed.tag == 'type':
                continue

            data = {'enum': spec.enums, 'command': spec.commands}[removed.tag]
            try:
                spec._remove.add(data[removed.attrib['name']])
            except __HOLE__:
                pass  # TODO

        self.number = tuple(map(int, element.attrib['number'].split('.')))
        self.api = element.attrib['api']
dataset/ETHPy150Open Dav1dde/glad/glad/parse.py/Feature.__init__