import json
import os
def load_metadata(metadata_file):
"""Loads metadata from a JSON file."""
try:
with open(metadata_file, 'r') as f:
return json.load(f)
except FileNotFoundError:
print(f"Error: Metadata file not found: {metadata_file}")
return {}
except json.JSONDecodeError:
print(f"Error: Invalid JSON in {metadata_file}")
return {}
def generate_script(script_name, metadata, overrides):
"""Generates a script with headers/metadata and manual overrides."""
script_content = f"""#!/usr/bin/env python3
# Script: {script_name}
# Description: [Add a brief description of the script]
# Author: [Your Name]
# Date: {datetime.now().strftime("%Y-%m-%d")}
"""
if 'dependencies' in metadata:
script_content += "# Dependencies:\n"
for dep in metadata['dependencies']:
script_content += f"import {dep}\n"
if 'imports' in metadata:
script_content += "\n# Imports:\n"
for import_statement in metadata['imports']:
script_content += f"{import_statement}\n"
if 'functions' in metadata:
script_content += "\n# Functions:\n"
for func_name, func_doc in metadata['functions'].items():
script_content += f"def {func_name}({func_doc})\n"
script_content += "\n# Main Script\n"
script_content += "if __name__ == '__main__':\n"
script_content += " pass # Replace with your script logic\n"
# Apply overrides
for key, value in overrides.items():
script_content = script_content.replace(f"# {key}:", f"# {key}: {value}")
return script_content
def save_script(script_content, script_name):
"""Saves the generated script to a file."""
try:
with open(script_name, 'w') as f:
f.write(script_content)
print(f"Script generated: {script_name}")
except Exception as e:
print(f"Error saving script: {e}")
if __name__ == "__main__":
import datetime
metadata_file = "metadata.json"
script_name = "my_script.py"
metadata = load_metadata(metadata_file)
#Example overrides. Can be loaded from a file.
overrides = {
"Description": "This is a modified script.",
"Author": "Jane Doe"
}
script = generate_script(script_name, metadata, overrides)
save_script(script, script_name)
Add your comment