Mercurial > repos > metexplore > met4j
comparison findToolsWithoutTests.py @ 6:7a6f2380fc1d draft
planemo upload for repository https://forgemia.inra.fr/metexplore/met4j-galaxy
author | metexplore |
---|---|
date | Wed, 17 May 2023 13:26:37 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
5:35c9abcd8934 | 6:7a6f2380fc1d |
---|---|
1 import os | |
2 import xml.etree.ElementTree as ET | |
3 | |
4 def find_xml_files_without_tests(directory): | |
5 for filename in os.listdir(directory): | |
6 filepath = os.path.join(directory, filename) | |
7 if os.path.isdir(filepath): | |
8 # Récursivement, recherche dans les sous-répertoires | |
9 yield from find_xml_files_without_tests(filepath) | |
10 elif filename.endswith(".xml"): | |
11 # Traitement du fichier XML | |
12 tree = ET.parse(filepath) | |
13 root = tree.getroot() | |
14 tool_elements = root.findall(".//tool") | |
15 tests_elements = root.findall(".//tests") | |
16 if tool_elements and not tests_elements: | |
17 yield filepath | |
18 elif tests_elements: | |
19 # On vérifie qu'il n'y a rien à l'intérieur de <tests> | |
20 tests_children = list(tests_elements[0]) | |
21 if len(tests_children) == 0: | |
22 yield filepath | |
23 | |
24 if __name__ == "__main__": | |
25 import argparse | |
26 parser = argparse.ArgumentParser(description="Trouve les fichiers XML sans élément <tests>") | |
27 parser.add_argument("directory", metavar="DIRECTORY", type=str, help="Le répertoire à explorer") | |
28 args = parser.parse_args() | |
29 | |
30 for filepath in find_xml_files_without_tests(args.directory): | |
31 print(filepath) |