diff --git a/doc/install.rst b/doc/install.rst index ae79f49f..2e63a6a3 100644 --- a/doc/install.rst +++ b/doc/install.rst @@ -12,6 +12,7 @@ pyOpt has the following dependencies: * Swig 1.3+ * c/FORTRAN compiler (compatible with f2py) * mpi4py +* six 1.13 Notes: diff --git a/pyoptsparse/pyOpt_optimization.py b/pyoptsparse/pyOpt_optimization.py index fe231e7e..2c800407 100644 --- a/pyoptsparse/pyOpt_optimization.py +++ b/pyoptsparse/pyOpt_optimization.py @@ -30,16 +30,15 @@ except ImportError: try: from ordereddict import OrderedDict - except ImportError: - print('Could not find any OrderedDict class. For 2.6 and earlier, \ + except: + raise ImportError('Could not find any OrderedDict class. For 2.6 and earlier, \ use:\n pip install ordereddict') try: import six from six import iteritems, iterkeys, next -except ImportError: - six = None - print ('Could not import \'six\' OpenMDAO type tuple return not available.') +except: + raise ImportError('Could not import \'six\'. To install, use\n pip install six') from .sqlitedict.sqlitedict import SqliteDict @@ -1325,12 +1324,8 @@ def processObjectiveGradient(self, funcsSens): gobj = numpy.zeros((nobj, self.ndvs)) cond = False - if six: - # this version is required for python 3 compatibility - cond = isinstance(next(iterkeys(funcsSens)), str) - else: - # fallback if six is not available - cond = isinstance(funcsSens.keys()[0], str) + # this version is required for python 3 compatibility + cond = isinstance(next(iterkeys(funcsSens)), str) if cond: iObj = 0