44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
# 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__)
|