diff --git a/cython/gtsam/__init__.py b/cython/gtsam/__init__.py index 724572240..f27c6fa44 100644 --- a/cython/gtsam/__init__.py +++ b/cython/gtsam/__init__.py @@ -1,19 +1,26 @@ from .gtsam import * -import gtsam_unstable +try: + import gtsam_unstable -def deprecated_wrapper(item, name): - def wrapper(*args, **kwargs): - from warnings import warn - warn('importing the unstable item "{}" from gtsam is deprecated. Please import it from gtsam_unstable.'.format(name)) - return item(*args, **kwargs) - return wrapper + def _deprecated_wrapper(item, name): + def wrapper(*args, **kwargs): + from warnings import warn + message = ('importing the unstable item "{}" directly from gtsam is deprecated. '.format(name) + + 'Please import it from gtsam_unstable.') + warn(message, category=DeprecationWarning) + return item(*args, **kwargs) + return wrapper -for name in dir(gtsam_unstable): - if not name.startswith('__'): - item = getattr(gtsam_unstable, name) - if callable(item): - item = deprecated_wrapper(item, name) - globals()[name] = item + + for name in dir(gtsam_unstable): + if not name.startswith('__'): + item = getattr(gtsam_unstable, name) + if callable(item): + item = _deprecated_wrapper(item, name) + globals()[name] = item + +except ImportError: + pass