mirror of
https://github.com/ck-zhang/EyePy.git
synced 2025-12-31 00:10:06 -06:00
Lazy import
This commit is contained in:
@@ -1,20 +1,34 @@
|
||||
from ._version import __version__
|
||||
from .gaze import GazeEstimator
|
||||
from .filters import make_kalman
|
||||
from importlib import metadata as _md
|
||||
|
||||
from .calibration import (
|
||||
run_9_point_calibration,
|
||||
run_5_point_calibration,
|
||||
run_lissajous_calibration,
|
||||
fine_tune_kalman_filter,
|
||||
)
|
||||
__version__: str = _md.version(__name__)
|
||||
|
||||
__all__ = [
|
||||
"__version__",
|
||||
"GazeEstimator",
|
||||
"make_kalman",
|
||||
"run_9_point_calibration",
|
||||
"run_5_point_calibration",
|
||||
"run_lissajous_calibration",
|
||||
"fine_tune_kalman_filter",
|
||||
]
|
||||
_lazy_map = {
|
||||
"GazeEstimator": ("eyetrax.gaze", "GazeEstimator"),
|
||||
"make_kalman": ("eyetrax.filters", "make_kalman"),
|
||||
"run_9_point_calibration": ("eyetrax.calibration", "run_9_point_calibration"),
|
||||
"run_5_point_calibration": ("eyetrax.calibration", "run_5_point_calibration"),
|
||||
"run_lissajous_calibration": ("eyetrax.calibration", "run_lissajous_calibration"),
|
||||
"fine_tune_kalman_filter": ("eyetrax.calibration", "fine_tune_kalman_filter"),
|
||||
}
|
||||
|
||||
|
||||
def __getattr__(name: str):
|
||||
try:
|
||||
module_name, symbol = _lazy_map[name]
|
||||
except KeyError:
|
||||
raise AttributeError(name) from None
|
||||
|
||||
import importlib
|
||||
|
||||
module = importlib.import_module(module_name)
|
||||
value = getattr(module, symbol)
|
||||
globals()[name] = value
|
||||
return value
|
||||
|
||||
|
||||
def __dir__():
|
||||
std_attrs = set(globals()) | {"__getattr__", "__dir__"}
|
||||
return sorted(std_attrs | _lazy_map.keys())
|
||||
|
||||
|
||||
__all__ = list(_lazy_map) + ["__version__"]
|
||||
|
||||
Reference in New Issue
Block a user