explorer-data/script.py
2024-09-18 11:06:17 +02:00

64 lines
2.2 KiB
Python

import yaml
import os
# Funkce pro načtení YAML souboru
def load_yaml(file_path):
with open(file_path, 'r', encoding='utf-8') as file:
return yaml.safe_load(file)
# Funkce pro zápis YAML souboru
def save_yaml(file_path, data):
with open(file_path, 'w', encoding='utf-8') as file:
yaml.dump(data, file, allow_unicode=True)
# Funkce pro odstranění všeho kromě 'usecase'
def keep_only_usecase(file_path):
try:
# Načti YAML soubor
data = load_yaml(file_path)
# Ponechej jen klíč 'usecase', pokud existuje
if 'usecase' in data:
filtered_data = {'usecase': data['usecase']}
else:
filtered_data = {}
# Ulož upravený soubor zpět
save_yaml(file_path, filtered_data)
return True
except Exception as e:
print(f"Chyba při zpracování souboru {file_path}: {e}")
return False
# Funkce pro procházení složek a zpracování souborů index.yaml
def process_yaml_projects(projects_dir):
total_files = 0
processed_files = 0
for project in os.listdir(projects_dir):
project_path = os.path.join(projects_dir, project)
index_file_path = os.path.join(project_path, 'index.yaml')
# Ověř, že cesta je složka a obsahuje soubor 'index.yaml'
if os.path.isdir(project_path):
total_files += 1
if os.path.isfile(index_file_path):
success = keep_only_usecase(index_file_path)
if success:
print(f"Zpracováno: {index_file_path}")
processed_files += 1
else:
print(f"Nelze zpracovat: {index_file_path}")
else:
print(f"Složka {project_path} neobsahuje soubor 'index.yaml'")
print(f"Celkový počet složek: {total_files}")
print(f"Úspěšně zpracovaných souborů: {processed_files}")
print(f"Nepřepsaných složek (bez 'index.yaml' nebo s chybou): {total_files - processed_files}")
# Použití
# Zde nastav složku, kde jsou tvé projekty (src/projects)
projects_dir = "src/projects"
# Spusť zpracování
process_yaml_projects(projects_dir)