fixed __init__.py to not crash if gtsam_unstable doesn't exist

release/4.3a0
Matthew Broadway 2019-03-07 10:05:02 +00:00
parent fcfcceef71
commit 7161c04610
1 changed files with 20 additions and 13 deletions

View File

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