Code Duplication    Length = 24-24 lines in 2 locations

pythonx/mistune.py 1 location

@@ 208-231 (lines=24) @@
205
    def __call__(self, text, rules=None):
206
        return self.parse(text, rules)
207
208
    def parse(self, text, rules=None):
209
        text = text.rstrip('\n')
210
211
        if not rules:
212
            rules = self.default_rules
213
214
        def manipulate(text):
215
            for key in rules:
216
                rule = getattr(self.rules, key)
217
                m = rule.match(text)
218
                if not m:
219
                    continue
220
                getattr(self, 'parse_%s' % key)(m)
221
                return m
222
            return False  # pragma: no cover
223
224
        while text:
225
            m = manipulate(text)
226
            if m is not False:
227
                text = text[len(m.group(0)):]
228
                continue
229
            if text:  # pragma: no cover
230
                raise RuntimeError('Infinite loop at: %s' % text)
231
        return self.tokens
232
233
    def parse_newline(self, m):
234
        length = len(m.group(0))

pythonx/tests/markdown_parser.py 1 location

@@ 195-218 (lines=24) @@
192
    def __call__(self, text, rules=None):
193
        return self.parse(text, rules)
194
195
    def parse(self, text, rules=None):
196
        text = text.rstrip('\n')
197
198
        if not rules:
199
            rules = self.default_rules
200
201
        def manipulate(text):
202
            for key in rules:
203
                rule = getattr(self.rules, key)
204
                m = rule.match(text)
205
                if not m:
206
                    continue
207
                getattr(self, 'parse_%s' % key)(m)
208
                return m
209
            return False  # pragma: no cover
210
211
        while text:
212
            m = manipulate(text)
213
            if m is not False:
214
                text = text[len(m.group(0)):]
215
                continue
216
            if text:  # pragma: no cover
217
                raise RuntimeError('Infinite loop at: %s' % text)
218
        return self.tokens
219
220
    def parse_newline(self, m):
221
        length = len(m.group(0))