import hashlib
import argparse
import sys
def hash_cli_args(args):
"""Hashes the arguments to enable dry-run comparison."""
stringified_args = str(args) # Convert args to a string representation
hashed_args = hashlib.sha256(stringified_args.encode('utf-8')).hexdigest() # Hash the string
return hashed_args
if __name__ == "__main__":
parser = argparse.ArgumentParser() # Create an argument parser
# Add arguments
parser.add_argument("--param1", type=str, default="default_value", help="First parameter")
parser.add_argument("--param2", type=int, default=10, help="Second parameter")
parser.add_argument("--flag", action="store_true", help="A flag")
args = parser.parse_args() # Parse arguments
hashed_value = hash_cli_args(args) # Hash the arguments
print(f"Hashed arguments: {hashed_value}") # Print the hashed value
# Example usage: Compare hashed values for dry-run
if len(sys.argv) > 1:
test_args = parser.parse_args(sys.argv[1:])
test_hashed = hash_cli_args(test_args)
if hashed_value == test_hashed:
print("Arguments are the same (dry-run)")
else:
print("Arguments are different")
Add your comment