# backend/script_groups/example_group/x1.py from ..base_script import BaseScript import os from pathlib import Path class FileCounter(BaseScript): """ Count Files in Directory Lists and counts files in the working directory by extension """ def run(self, work_dir: str, profile: dict) -> dict: try: # Get configuration if any config = self.get_config(work_dir, "example_group") exclude_dirs = config.get("exclude_dirs", []) # Initialize counters extension_counts = {} total_files = 0 # Walk through directory for root, dirs, files in os.walk(work_dir): # Skip excluded directories dirs[:] = [d for d in dirs if d not in exclude_dirs] for file in files: total_files += 1 ext = Path(file).suffix.lower() or 'no extension' extension_counts[ext] = extension_counts.get(ext, 0) + 1 return { "status": "success", "data": { "total_files": total_files, "extension_counts": extension_counts }, "output": f"Found {total_files} files\n" + "\n".join( f"{ext}: {count} files" for ext, count in sorted(extension_counts.items()) ) } except Exception as e: return { "status": "error", "error": str(e) }