# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license __version__ = "8.3.204" import importlib import os # Set ENV variables (place before imports) if not os.environ.get("OMP_NUM_THREADS"): os.environ["OMP_NUM_THREADS"] = "1" # default for reduced CPU utilization during training from ultralytics.utils import ASSETS, SETTINGS from ultralytics.utils.checks import check_yolo as checks from ultralytics.utils.downloads import download settings = SETTINGS MODELS = ("YOLO", "YOLOWorld", "YOLOE", "NAS", "SAM", "FastSAM", "RTDETR") __all__ = ( "__version__", "ASSETS", *MODELS, "checks", "download", "settings", ) def __getattr__(name: str): """Lazy-import model classes on first access.""" if name in MODELS: return getattr(importlib.import_module("ultralytics.models"), name) raise AttributeError(f"module {__name__} has no attribute {name}") def __dir__(): """Extend dir() to include lazily available model names for IDE autocompletion.""" return sorted(set(globals()) | set(MODELS)) if __name__ == "__main__": print(__version__)