예제 #1
0
def switch_source_input(state: State, content: StringList) -> Generator[None, None, None]:
    """Switch current source input of state temporarily."""
    try:
        # remember the original ``get_source_and_line()`` method
        get_source_and_line = state.memo.reporter.get_source_and_line  # type: ignore

        # replace it by new one
        state_machine = StateMachine([], None)
        state_machine.input_lines = content
        state.memo.reporter.get_source_and_line = state_machine.get_source_and_line  # type: ignore  # NOQA

        yield
    finally:
        # restore the method
        state.memo.reporter.get_source_and_line = get_source_and_line  # type: ignore
예제 #2
0
파일: docutils.py 프로젝트: jdemeyer/sphinx
def switch_source_input(state, content):
    # type: (State, ViewList) -> Generator
    """Switch current source input of state temporarily."""
    try:
        # remember the original ``get_source_and_line()`` method
        get_source_and_line = state.memo.reporter.get_source_and_line

        # replace it by new one
        state_machine = StateMachine([], None)
        state_machine.input_lines = content
        state.memo.reporter.get_source_and_line = state_machine.get_source_and_line

        yield
    finally:
        # restore the method
        state.memo.reporter.get_source_and_line = get_source_and_line
예제 #3
0
class MJScoreParser(object):
    """Parse the content of mjscore.txt."""

    def __init__(self):
        self.input_string = None
        self.game_data = None
        self.state_machine = None

    def parse(self, input_string, game_data):
        """Parse `input_string` and populate `game_data`,
        a list of game records.
        """

        settings = game_data['settings']
        assert 'debug' in settings
        assert 'verbose' in settings

        self.setup_parse(input_string, game_data)
        # pylint: disable=no-member
        self.state_machine = StateMachine(
            state_classes=MJScoreState.__subclasses__(),
            initial_state='GameOpening',
            debug=settings.debug and settings.verbose)
        self.state_machine.config = settings

        input_lines = tuple(i.strip() for i in input_string.split('\n'))

        self.state_machine.run(input_lines, context=game_data)
        self.state_machine.unlink()
        self.finish_parse()

    def setup_parse(self, input_string, game_data):
        """Initial parse setup."""

        self.input_string = input_string
        self.game_data = game_data

    def finish_parse(self):
        """Finalize parse details."""
        pass
예제 #4
0
class MJScoreParser(object):
    """Parse the content of mjscore.txt."""
    def __init__(self):
        self.input_string = None
        self.game_data = None
        self.state_machine = None

    def parse(self, input_string, game_data):
        """Parse `input_string` and populate `game_data`,
        a list of game records.
        """

        settings = game_data['settings']
        assert 'debug' in settings
        assert 'verbose' in settings

        self.setup_parse(input_string, game_data)
        # pylint: disable=no-member
        self.state_machine = StateMachine(
            state_classes=MJScoreState.__subclasses__(),
            initial_state='GameOpening',
            debug=settings.debug and settings.verbose)
        self.state_machine.config = settings

        input_lines = tuple(i.strip() for i in input_string.split('\n'))

        self.state_machine.run(input_lines, context=game_data)
        self.state_machine.unlink()
        self.finish_parse()

    def setup_parse(self, input_string, game_data):
        """Initial parse setup."""

        self.input_string = input_string
        self.game_data = game_data

    def finish_parse(self):
        """Finalize parse details."""
        pass
예제 #5
0
    def parse(self, input_string, game_data):
        """Parse `input_string` and populate `game_data`,
        a list of game records.
        """

        settings = game_data['settings']
        assert 'debug' in settings
        assert 'verbose' in settings

        self.setup_parse(input_string, game_data)
        # pylint: disable=no-member
        self.state_machine = StateMachine(
            state_classes=MJScoreState.__subclasses__(),
            initial_state='GameOpening',
            debug=settings.debug and settings.verbose)
        self.state_machine.config = settings

        input_lines = tuple(i.strip() for i in input_string.split('\n'))

        self.state_machine.run(input_lines, context=game_data)
        self.state_machine.unlink()
        self.finish_parse()
예제 #6
0
    def parse(self, input_string, game_data):
        """Parse `input_string` and populate `game_data`,
        a list of game records.
        """

        settings = game_data['settings']
        assert 'debug' in settings
        assert 'verbose' in settings

        self.setup_parse(input_string, game_data)
        # pylint: disable=no-member
        self.state_machine = StateMachine(
            state_classes=MJScoreState.__subclasses__(),
            initial_state='GameOpening',
            debug=settings.debug and settings.verbose)
        self.state_machine.config = settings

        input_lines = tuple(i.strip() for i in input_string.split('\n'))

        self.state_machine.run(input_lines, context=game_data)
        self.state_machine.unlink()
        self.finish_parse()
예제 #7
0
def get_state_machine():
    state_machine = StateMachine()