Skip to content

require_optional_import

autogen.import_utils.require_optional_import #

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