refactor: pkg_resources -> importlib.resources (#24578)

This commit is contained in:
cwegener
2023-07-05 21:26:07 +00:00
committed by GitHub
parent 383dac6a5e
commit 7081a0e73d
3 changed files with 22 additions and 22 deletions

View File

@@ -16,11 +16,11 @@
# under the License.
import logging
import re
from importlib.resources import files
from pathlib import Path
from typing import Any
import yaml
from pkg_resources import resource_isdir, resource_listdir, resource_stream
from superset.commands.exceptions import CommandInvalidError
from superset.commands.importers.v1.examples import ImportExamplesCommand
@@ -44,28 +44,30 @@ def load_examples_from_configs(
def load_contents(load_test_data: bool = False) -> dict[str, Any]:
"""Traverse configs directory and load contents"""
root = Path("examples/configs")
resource_names = resource_listdir("superset", str(root))
queue = [root / resource_name for resource_name in resource_names]
root = files("superset") / "examples/configs"
resource_names = (files("superset") / str(root)).iterdir()
queue = [root / str(resource_name) for resource_name in resource_names]
contents: dict[Path, str] = {}
while queue:
path_name = queue.pop()
test_re = re.compile(r"\.test\.|metadata\.yaml$")
if resource_isdir("superset", str(path_name)):
if (files("superset") / str(path_name)).is_dir():
queue.extend(
path_name / child_name
for child_name in resource_listdir("superset", str(path_name))
path_name / str(child_name)
for child_name in (files("superset") / str(path_name)).iterdir()
)
elif path_name.suffix.lower() in YAML_EXTENSIONS:
elif Path(str(path_name)).suffix.lower() in YAML_EXTENSIONS:
if load_test_data and test_re.search(str(path_name)) is None:
continue
contents[path_name] = (
resource_stream("superset", str(path_name)).read().decode("utf-8")
)
contents[Path(str(path_name))] = (
files("superset") / str(path_name)
).read_text("utf-8")
return {str(path.relative_to(root)): content for path, content in contents.items()}
return {
str(path.relative_to(str(root))): content for path, content in contents.items()
}
def load_configs_from_directory(