[Python] List data files from subdirectories

This commit is contained in:
Ray Speth 2024-04-04 20:57:10 -04:00 committed by Ray Speth
parent 9ec376ec06
commit 0c5fa1b201
2 changed files with 14 additions and 8 deletions

View File

@ -7,19 +7,19 @@ from ._utils import get_data_directories, add_directory
def list_data_files(ext=".yaml"):
"""
Lists input data files.
Lists input data files. Includes files in subdirectories, except for subdirectories
of the current working directory.
:param ext:
Extension of files to be displayed.
:return:
List of input data files.
"""
data_files = []
data_files = set()
for folder in get_data_directories():
here = Path(folder)
if here.is_dir():
files = [x.name for x in here.iterdir() if x.name.endswith(ext)]
data_files.extend(files)
data_files = list(set(data_files))
data_files.sort()
return data_files
if folder == ".":
data_files.update(f.name for f in here.glob(f"*{ext}"))
elif here.is_dir():
data_files.update(str(f.relative_to(here)) for f in here.glob(f"**/*{ext}"))
return sorted(data_files)

View File

@ -1,3 +1,4 @@
from pathlib import Path
import numpy as np
import pytest
from pytest import approx
@ -322,3 +323,8 @@ class TestAnyMap(utilities.CanteraTest):
outer.set_activation_energy('cheese', 12, 'V/m')
with pytest.raises(ct.CanteraError):
_py_to_anymap_to_py(outer)
def test_list_data_files():
data_files = ct.list_data_files()
assert "gri30.yaml" in data_files
assert str(Path("example_data/oxygen-plasma-itikawa.yaml")) in data_files