|
// retoor <retoor@molodetz.nl>
|
|
|
|
import "argparse" for ArgumentParser
|
|
|
|
System.print("=== Argparse Module Demo ===")
|
|
|
|
System.print("\n--- Basic Usage ---")
|
|
var parser = ArgumentParser.new("A sample program")
|
|
parser.prog = "sample"
|
|
parser.addArgument("input", {"help": "Input file"})
|
|
parser.addArgument("-o", {"long": "--output", "default": "output.txt", "help": "Output file"})
|
|
parser.addArgument("-v", {"long": "--verbose", "action": "storeTrue", "help": "Verbose output"})
|
|
parser.addArgument("-n", {"type": "int", "default": 1, "help": "Number of iterations"})
|
|
|
|
System.print("Help message:")
|
|
parser.printHelp()
|
|
|
|
System.print("\n--- Parsing Example Args ---")
|
|
var args = parser.parseArgs(["data.txt", "-v", "-n", "5", "--output", "result.txt"])
|
|
System.print("Input: %(args["input"])")
|
|
System.print("Output: %(args["output"])")
|
|
System.print("Verbose: %(args["verbose"])")
|
|
System.print("Iterations: %(args["n"])")
|
|
|
|
System.print("\n--- Count Action ---")
|
|
var parser2 = ArgumentParser.new()
|
|
parser2.addArgument("-v", {"action": "count"})
|
|
var args2 = parser2.parseArgs(["-v", "-v", "-v"])
|
|
System.print("Verbosity level: %(args2["v"])")
|
|
|
|
System.print("\n--- Append Action ---")
|
|
var parser3 = ArgumentParser.new()
|
|
parser3.addArgument("-i", {"long": "--include", "action": "append"})
|
|
var args3 = parser3.parseArgs(["-i", "module1", "-i", "module2", "--include", "module3"])
|
|
System.print("Included modules: %(args3["include"])")
|