From bc962f43734be718e83377152bb3f604b3e62e36 Mon Sep 17 00:00:00 2001 From: Pedram Bakh <56321501+PedramBakh@users.noreply.github.com> Date: Wed, 13 Sep 2023 08:24:06 +0200 Subject: [PATCH] Enhance carbonTracker CLI to support arbitrary commands --- carbontracker/cli.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/carbontracker/cli.py b/carbontracker/cli.py index 27f5aac..908a272 100644 --- a/carbontracker/cli.py +++ b/carbontracker/cli.py @@ -6,7 +6,10 @@ def main(): parser = argparse.ArgumentParser(description="CarbonTracker CLI") - parser.add_argument("--script", type=str, required=True, help="Python file to execute") + + # Accept a list of arguments + parser.add_argument("command", type=str, nargs='+', + help="Command and arguments to execute. E.g., 'python myscript.py arg1 arg2'") parser.add_argument("--log_dir", type=str, help="Log directory", default="./logs") parser.add_argument("--api_keys", type=str, help="API keys in a dictionary-like format, e.g., " "'{\"electricitymaps\": \"YOUR_KEY\"}'", default=None) @@ -18,11 +21,11 @@ def main(): tracker = CarbonTracker(epochs=1, log_dir=args.log_dir, epochs_before_pred=0, api_keys=api_keys) tracker.epoch_start() - # Execute script with python + # Execute the provided command with its arguments try: - subprocess.run(["python", args.script], check=True) + subprocess.run(args.command, check=True) except subprocess.CalledProcessError: - print(f"Error executing script: {args.script}") + print(f"Error executing command: {' '.join(args.command)}") # Handle errors or exceptions if needed tracker.epoch_end()