示例#1
0
    def test_iter_subevents(self):

        events = iter([(STARTEVENT, 'a'), (ENDEVENT, 'a')])
        events.next()
        subevents = iter_subevents(events)
        self.assertEquals([(ENDEVENT, 'a')], list(subevents))

        events = iter([(STARTEVENT, 'a'),
                       (STARTEVENT, 'b'),
                       (None, 'c'),
                       (ENDEVENT, 'b'),
                       (ENDEVENT, 'a')])
        events.next()
        subevents = iter_subevents(events)
        self.assertEquals([(STARTEVENT, 'b'),
                           (None, 'c'),
                           (ENDEVENT, 'b'),
                           (ENDEVENT, 'a')], list(subevents))

        events = iter([(STARTEVENT, 'a'),
                       (None, 'c'),
                       (ENDEVENT, 'a'),
                       (STARTEVENT, 'b'),
                       (None, 'd'),
                       (ENDEVENT, 'b')])
        events.next()
        subevents = iter_subevents(events)
        self.assertEquals([(None, 'c'),
                           (ENDEVENT, 'a')], list(subevents))
        self.assertEquals([(STARTEVENT, 'b'),
                           (None, 'd'),
                           (ENDEVENT, 'b')], list(events))
示例#2
0
    def test_iter_subevents(self):
        from hwp5.treeop import STARTEVENT, ENDEVENT
        from hwp5.treeop import iter_subevents

        events = iter([(STARTEVENT, 'a'), (ENDEVENT, 'a')])
        events.next()
        subevents = iter_subevents(events)
        self.assertEquals([(ENDEVENT, 'a')], list(subevents))

        events = iter([(STARTEVENT, 'a'),
                       (STARTEVENT, 'b'),
                       (None, 'c'),
                       (ENDEVENT, 'b'),
                       (ENDEVENT, 'a')])
        events.next()
        subevents = iter_subevents(events)
        self.assertEquals([(STARTEVENT, 'b'),
                           (None, 'c'),
                           (ENDEVENT, 'b'),
                           (ENDEVENT, 'a')], list(subevents))

        events = iter([(STARTEVENT, 'a'),
                       (None, 'c'),
                       (ENDEVENT, 'a'),
                       (STARTEVENT, 'b'),
                       (None, 'd'),
                       (ENDEVENT, 'b')])
        events.next()
        subevents = iter_subevents(events)
        self.assertEquals([(None, 'c'),
                           (ENDEVENT, 'a')], list(subevents))
        self.assertEquals([(STARTEVENT, 'b'),
                           (None, 'd'),
                           (ENDEVENT, 'b')], list(events))
示例#3
0
    def test_iter_subevents(self):

        events = iter([(STARTEVENT, 'a'), (ENDEVENT, 'a')])
        next(events)
        subevents = iter_subevents(events)
        self.assertEqual([(ENDEVENT, 'a')], list(subevents))

        events = iter([(STARTEVENT, 'a'),
                       (STARTEVENT, 'b'),
                       (None, 'c'),
                       (ENDEVENT, 'b'),
                       (ENDEVENT, 'a')])
        next(events)
        subevents = iter_subevents(events)
        self.assertEqual([(STARTEVENT, 'b'),
                          (None, 'c'),
                          (ENDEVENT, 'b'),
                          (ENDEVENT, 'a')], list(subevents))

        events = iter([(STARTEVENT, 'a'),
                       (None, 'c'),
                       (ENDEVENT, 'a'),
                       (STARTEVENT, 'b'),
                       (None, 'd'),
                       (ENDEVENT, 'b')])
        next(events)
        subevents = iter_subevents(events)
        self.assertEqual([(None, 'c'),
                          (ENDEVENT, 'a')], list(subevents))
        self.assertEqual([(STARTEVENT, 'b'),
                          (None, 'd'),
                          (ENDEVENT, 'b')], list(events))
示例#4
0
    def test_iter_subevents(self):
        from hwp5.treeop import STARTEVENT, ENDEVENT
        from hwp5.treeop import iter_subevents

        events = iter([(STARTEVENT, 'a'), (ENDEVENT, 'a')])
        events.next()
        subevents = iter_subevents(events)
        self.assertEquals([(ENDEVENT, 'a')], list(subevents))

        events = iter([(STARTEVENT, 'a'), (STARTEVENT, 'b'), (None, 'c'),
                       (ENDEVENT, 'b'), (ENDEVENT, 'a')])
        events.next()
        subevents = iter_subevents(events)
        self.assertEquals([(STARTEVENT, 'b'), (None, 'c'), (ENDEVENT, 'b'),
                           (ENDEVENT, 'a')], list(subevents))

        events = iter([(STARTEVENT, 'a'), (None, 'c'), (ENDEVENT, 'a'),
                       (STARTEVENT, 'b'), (None, 'd'), (ENDEVENT, 'b')])
        events.next()
        subevents = iter_subevents(events)
        self.assertEquals([(None, 'c'), (ENDEVENT, 'a')], list(subevents))
        self.assertEquals([(STARTEVENT, 'b'), (None, 'd'), (ENDEVENT, 'b')],
                          list(events))
示例#5
0
def filter_with_version(events, version):
    from hwp5.treeop import STARTEVENT
    from hwp5.treeop import iter_subevents
    for ev, item in events:
        required_version = item.get('version')
        if required_version is not None and version < required_version:
            # just consume and skip this tree
            logger.debug('skip following: (required version: %s)',
                         required_version)
            logger.debug('  %s', (ev, item))
            if ev is STARTEVENT:
                for x in iter_subevents(events):
                    pass
            continue
        yield ev, item
示例#6
0
文件: bintype.py 项目: yarang/pyhwp
def filter_with_version(events, version):
    from hwp5.treeop import STARTEVENT
    from hwp5.treeop import iter_subevents
    for ev, item in events:
        required_version = item.get('version')
        if required_version is not None and version < required_version:
            # just consume and skip this tree
            logger.debug('skip following: (required version: %s)',
                         required_version)
            logger.debug('  %s', (ev, item))
            if ev is STARTEVENT:
                for x in iter_subevents(events):
                    pass
            continue
        yield ev, item