1. import json
  2. import os
  3. def load_metadata(metadata_file):
  4. """Loads metadata from a JSON file."""
  5. try:
  6. with open(metadata_file, 'r') as f:
  7. return json.load(f)
  8. except FileNotFoundError:
  9. print(f"Error: Metadata file not found: {metadata_file}")
  10. return {}
  11. except json.JSONDecodeError:
  12. print(f"Error: Invalid JSON in {metadata_file}")
  13. return {}
  14. def generate_script(script_name, metadata, overrides):
  15. """Generates a script with headers/metadata and manual overrides."""
  16. script_content = f"""#!/usr/bin/env python3
  17. # Script: {script_name}
  18. # Description: [Add a brief description of the script]
  19. # Author: [Your Name]
  20. # Date: {datetime.now().strftime("%Y-%m-%d")}
  21. """
  22. if 'dependencies' in metadata:
  23. script_content += "# Dependencies:\n"
  24. for dep in metadata['dependencies']:
  25. script_content += f"import {dep}\n"
  26. if 'imports' in metadata:
  27. script_content += "\n# Imports:\n"
  28. for import_statement in metadata['imports']:
  29. script_content += f"{import_statement}\n"
  30. if 'functions' in metadata:
  31. script_content += "\n# Functions:\n"
  32. for func_name, func_doc in metadata['functions'].items():
  33. script_content += f"def {func_name}({func_doc})\n"
  34. script_content += "\n# Main Script\n"
  35. script_content += "if __name__ == '__main__':\n"
  36. script_content += " pass # Replace with your script logic\n"
  37. # Apply overrides
  38. for key, value in overrides.items():
  39. script_content = script_content.replace(f"# {key}:", f"# {key}: {value}")
  40. return script_content
  41. def save_script(script_content, script_name):
  42. """Saves the generated script to a file."""
  43. try:
  44. with open(script_name, 'w') as f:
  45. f.write(script_content)
  46. print(f"Script generated: {script_name}")
  47. except Exception as e:
  48. print(f"Error saving script: {e}")
  49. if __name__ == "__main__":
  50. import datetime
  51. metadata_file = "metadata.json"
  52. script_name = "my_script.py"
  53. metadata = load_metadata(metadata_file)
  54. #Example overrides. Can be loaded from a file.
  55. overrides = {
  56. "Description": "This is a modified script.",
  57. "Author": "Jane Doe"
  58. }
  59. script = generate_script(script_name, metadata, overrides)
  60. save_script(script, script_name)

Add your comment