ParamManagerScripts/lib/group_manager.py

46 lines
1.7 KiB
Python

import os
import json
from typing import Dict, Any, List
class GroupManager:
def __init__(self, script_groups_path: str):
self.script_groups_path = script_groups_path
def get_script_groups(self) -> List[Dict[str, Any]]:
"""Returns list of available script groups with their descriptions."""
groups = []
if not os.path.isdir(self.script_groups_path):
print(
f"Warning: Script groups directory not found: {self.script_groups_path}"
)
return []
for d in os.listdir(self.script_groups_path):
group_path = os.path.join(self.script_groups_path, d)
if os.path.isdir(group_path):
description = self._get_group_description(group_path)
groups.append(
{
"id": d,
"name": description.get("name", d),
"description": description.get(
"description", "Sin descripción"
),
"version": description.get("version", "1.0"),
"author": description.get("author", "Unknown"),
}
)
return groups
def _get_group_description(self, group_path: str) -> Dict[str, Any]:
"""Get description for a script group."""
description_file = os.path.join(group_path, "description.json")
try:
if os.path.exists(description_file):
with open(description_file, "r", encoding="utf-8") as f:
return json.load(f)
except Exception as e:
print(f"Error reading group description from {description_file}: {e}")
return {}