require_optional_import(modules, dep_target, *, except_for=None)
Decorator to handle optional module dependencies
PARAMETER | DESCRIPTION |
modules | Module name or list of module names required TYPE: Union[str, Iterable[str]] |
dep_target | Target name for pip installation (e.g. 'test' in pip install ag2[test]) TYPE: str |
except_for | Name or list of names of objects to exclude from patching TYPE: Optional[Union[str, Iterable[str]]] DEFAULT: None |
Source code in autogen/import_utils.py
| def require_optional_import(
modules: Union[str, Iterable[str]],
dep_target: str,
*,
except_for: Optional[Union[str, Iterable[str]]] = None,
) -> Callable[[T], T]:
"""Decorator to handle optional module dependencies
Args:
modules: Module name or list of module names required
dep_target: Target name for pip installation (e.g. 'test' in pip install ag2[test])
except_for: Name or list of names of objects to exclude from patching
"""
missing_modules = get_missing_imports(modules)
if not missing_modules:
def decorator(o: T) -> T:
return o
else:
def decorator(o: T) -> T:
return patch_object(o, missing_modules=missing_modules, dep_target=dep_target, except_for=except_for)
return decorator
|