Shortcuts

Source code for mmrazor.utils.placeholder

# Copyright (c) OpenMMLab. All rights reserved.
[docs]def get_placeholder(string: str) -> object: """Get placeholder instance which can avoid raising errors when down-stream dependency is not installed properly. Args: string (str): the dependency's name, i.e. `mmcls` Raises: ImportError: raise it when the dependency is not installed properly. Returns: object: PlaceHolder instance. """ def raise_import_error(package_name): raise ImportError( f'`{package_name}` is not installed properly, plz check.') class PlaceHolder(): def __init__(self) -> None: raise_import_error(string) return PlaceHolder
[docs]def get_package_placeholder(string: str) -> object: """Get placeholder instance which can avoid raising errors when down-stream dependency is not installed properly. Args: string (str): the dependency's name, i.e. `mmcls` Raises: ImportError: raise it when the dependency is not installed properly. Returns: object: PlaceHolder instance. """ def raise_import_error(package_name): raise ImportError( f'`{package_name}` is not installed properly, plz check.') class PlaceHolderMetaclass(type): """Used to support usage of PlaceHolder.xxxx.""" def __getattr__(self, name): raise_import_error(string) class PlaceHolder(metaclass=PlaceHolderMetaclass): def __init__(self) -> None: raise_import_error(string) return PlaceHolder