python_examples/readline/mtg.py

42 lines
1.1 KiB
Python
Executable File

#!/usr/bin/env python3
"""mtg.py
----------------
This module defines a command-line interface (CLI) application which allows
users to interact with a predefined list of completion options, specifically,
card names from the "Alara Reborn" set.
It leverages the `cmd` module to build the CLI and has tab-completion
functionality for adding items from the predefined list of card names.
"""
import cmd
completions = [
"Mage Slayer (Alara Reborn)",
"Magefire Wings (Alara Reborn)",
"Sages of the Anima (Alara Reborn)",
"Sanctum Plowbeast (Alara Reborn)",
"Sangrite Backlash (Alara Reborn)",
"Sanity Gnawers (Alara Reborn)",
"Sen Triplets (Alara Reborn)",
]
class mycmd(cmd.Cmd):
def __init__(self):
cmd.Cmd.__init__(self)
def do_quit(self, s):
return True
def do_add(self, s):
pass
def complete_add(self, text, line, begidx, endidx):
mline = line.partition(" ")[2]
offs = len(mline) - len(text)
return [s[offs:] for s in completions if s.startswith(mline)]
if __name__ == "__main__":
mycmd().cmdloop()