Files
Markov/src/markov.py
ElectronixTM 666657926b feat: сделал первую версию CLI
Проект в целом получил свой MVP
2025-03-16 03:52:07 +03:00

40 lines
1.4 KiB
Python

from rulesparser import RulesParser
from rulebook import Rulebook
from interactive import interactve_mode
import argparse
def main():
parser = argparse.ArgumentParser(
prog = "Markov",
description = "Simple tool to apply Markov's normal algorithms"
)
parser.add_argument("rulebook", type=str, help="File with the rules for algorithm")
parser.add_argument("-c", "--command-line-input",
help="Takes input from user via command line "
"arguments. There should be only one string. "
"Please, use quotation marks")
parser.add_argument("-v", "--verbose", action="store_true",
help="If set, verbose output will be produced. "
"It'll contain all intermediate transformations, "
"reason of stop etc.")
args = parser.parse_args()
rules = RulesParser().parse(args.rulebook)
rulebook = Rulebook(rules)
print(args.command_line_input)
if not args.command_line_input:
interactve_mode(rulebook)
return
transformer = (rulebook.logged_transform if args.verbose
else rulebook.transform)
if args.verbose:
_, log = transformer(args.command_line_input)
print(log)
else:
print(transformer(args.command_line_input))
if __name__ == "__main__":
main()