1. import json
  2. import datetime
  3. def pretty_print_metadata(metadata):
  4. """
  5. Pretty-prints metadata for maintenance tasks with basic input validation.
  6. """
  7. if not isinstance(metadata, dict):
  8. print("Error: Metadata must be a dictionary.")
  9. return
  10. print("Metadata:")
  11. for key, value in metadata.items():
  12. print(f" {key}: ", end="")
  13. if isinstance(value, dict):
  14. print(json.dumps(value, indent=4)) # Pretty-print nested dicts
  15. elif isinstance(value, list):
  16. print("[")
  17. for item in value:
  18. print(f" {item}")
  19. print("]")
  20. else:
  21. print(value)
  22. print("-" * 20)
  23. def get_metadata_input():
  24. """
  25. Gets metadata input from the user with basic validation.
  26. """
  27. metadata = {}
  28. while True:
  29. key = input("Enter key (or 'done' to finish): ")
  30. if key.lower() == 'done':
  31. break
  32. value = input(f"Enter value for '{key}': ")
  33. # Basic validation: check if value is empty
  34. if not value:
  35. print("Value cannot be empty.")
  36. continue
  37. metadata[key] = value
  38. return metadata
  39. if __name__ == "__main__":
  40. # Example usage
  41. metadata = get_metadata_input()
  42. pretty_print_metadata(metadata)

Add your comment