From d3d81582cd7005df16fe3f5306e6afbed75bdb74 Mon Sep 17 00:00:00 2001 From: Joe Banks Date: Sat, 17 Jul 2021 20:10:11 +0100 Subject: Initial commit --- arthur/extensions.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 arthur/extensions.py (limited to 'arthur/extensions.py') diff --git a/arthur/extensions.py b/arthur/extensions.py new file mode 100644 index 0000000..2170d68 --- /dev/null +++ b/arthur/extensions.py @@ -0,0 +1,15 @@ +"""Utilities for working with extensions.""" +from pathlib import Path +from typing import Generator + + +def find_extensions() -> Generator[tuple[Path, str], None, None]: + """Search the exts directory to find cogs to load.""" + for path in Path("arthur/exts").rglob("**/*.py"): + # Convert a path like "arthur/exts/foo/bar.py" to "arthur.exts.foo.bar" + yield path, path_to_module(path) + + +def path_to_module(path: Path) -> str: + """Convert a path like "arthur/exts/foo/bar.py" to "arthur.exts.foo.bar".""" + return str(path.parent.as_posix()).replace("/", ".") + f".{path.stem}" -- cgit v1.2.3