From fb71f5507eca7bc73fae764549a7579889817cba Mon Sep 17 00:00:00 2001 From: Ben Kurtovic Date: Thu, 14 Mar 2013 10:51:04 -0400 Subject: [PATCH] Support a 'use_c' field to explicitly disable the C tokenizer. --- mwparserfromhell/parser/__init__.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/mwparserfromhell/parser/__init__.py b/mwparserfromhell/parser/__init__.py index 3f034f6..1fb95b5 100644 --- a/mwparserfromhell/parser/__init__.py +++ b/mwparserfromhell/parser/__init__.py @@ -27,12 +27,15 @@ joins them together under one interface. """ from .builder import Builder +from .tokenizer import Tokenizer try: - from ._tokenizer import CTokenizer as Tokenizer + from ._tokenizer import CTokenizer + use_c = True except ImportError: - from .tokenizer import Tokenizer + CTokenizer = None + use_c = False -__all__ = ["Parser"] +__all__ = ["use_c", "Parser"] class Parser(object): """Represents a parser for wikicode. @@ -45,7 +48,10 @@ class Parser(object): def __init__(self, text): self.text = text - self._tokenizer = Tokenizer() + if use_c and CTokenizer: + self._tokenizer = CTokenizer() + else: + self._tokenizer = Tokenizer() self._builder = Builder() def parse(self):