// 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"])")