Coverage for collectra/tasks/machine_learning/__init__.py: 42.86%
14 statements
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-16 09:56 +0000
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-16 09:56 +0000
1"""Machine-learning task classes with lazy backend imports."""
3from __future__ import annotations
5from importlib import import_module
7_EXPORTS = {
8 "YOLOTask": "collectra.tasks.machine_learning.yolo",
9 "ImageOrienter": "collectra.tasks.machine_learning.orienters",
10}
12__all__ = sorted(_EXPORTS)
15def __getattr__(name: str):
16 try:
17 module_name = _EXPORTS[name]
18 except KeyError as error:
19 raise AttributeError(
20 f"module {__name__!r} has no attribute {name!r}"
21 ) from error
22 value = getattr(import_module(module_name), name)
23 globals()[name] = value
24 return value
27def __dir__() -> list[str]:
28 return sorted([*globals(), *__all__])