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) +
'Please import it from gtsam_unstable.')
warn(message, category=DeprecationWarning)
return item(*args, **kwargs) return item(*args, **kwargs)
return wrapper return wrapper
for name in dir(gtsam_unstable):
for name in dir(gtsam_unstable):
if not name.startswith('__'): if not name.startswith('__'):
item = getattr(gtsam_unstable, name) item = getattr(gtsam_unstable, name)
if callable(item): if callable(item):
item = deprecated_wrapper(item, name) item = _deprecated_wrapper(item, name)
globals()[name] = item globals()[name] = item
except ImportError:
pass