diff --git a/markdownrunner.py b/markdownrunner.py index b2975ec..048f441 100755 --- a/markdownrunner.py +++ b/markdownrunner.py @@ -3,6 +3,8 @@ import pandoc import pandoc.types as t import sys +from dataclasses import dataclass +from typing import * # There are three parts: # - Parse a given markdown and extract the commands @@ -28,7 +30,7 @@ def main(): @dataclass class Command: user: str - directory: Any[str, None] + directory: Union[str, None] command: str context: str @@ -139,7 +141,7 @@ def user_action(hunk: Sequence[Command], context=None) -> Sequence[Command]: new_hunk = [] for line in tmpfile.file.readlines(): parts = line.split('\t', maxsplit=3) - new_hunk.append(Command(user=parts[0],directory=parts[1],command=parts[2],context=None) + new_hunk.append(Command(user=parts[0],directory=parts[1],command=parts[2],context=None)) # Python has no goto for restarting, but we can recurse return user_action(new_hunk, context) elif answer.startswith(('y', 'Y')): @@ -174,7 +176,7 @@ def process_file(fn: str): """ To be called upon each file on the command line. This function should perform all the steps needed in order to remotely run a parsed markdown, id est the three parts above. """ - pd = pandoc.read(open(fn)) + pd = pandoc.read(file=fn) snippets = extract_snippets(pd) for snip in snippets: cmds = parse_snippet(snip)