def __init__(self, system):
        """ Set up any LinearSolver object """
        self._system = system
        self.options = system.options
        self.custom_jacs = {}

        # A few extra checks if we call calc_gradient from a driver.
        level = 0
        if hasattr(system, '_parent_system') and \
           system._parent_system is not None and \
           hasattr(system._parent_system, '_comp'):
            drv = system._parent_system._comp

            # Figure out base indentation for printing the residual during
            # convergence.
            self.drv_name = drv.name
            if drv.itername == '-driver':
                level = 0
            else:
                level = drv.itername.count('.') + 1

            # Figure out if the user defined custom constraint gradients.
            if hasattr(drv, 'get_constraints'):
                for constraint in drv.get_constraints().values():
                    if constraint.jacs is not None:
                        key = '%s.out0' % constraint.pcomp_name
                        self.custom_jacs[key] = constraint.jacs
            if hasattr(drv, 'get_2sided_constraints'):
                for constraint in drv.get_2sided_constraints().values():
                    if constraint.jacs is not None:
                        key = constraint.pcomp_name % '%s.out0'
                        self.custom_jacs[key] = constraint.jacs

        else:
            self.drv_name = system.name

        self.indent = '   ' * level
dataset/ETHPy150Open OpenMDAO/OpenMDAO-Framework/openmdao.main/src/openmdao/main/linearsolver.py/LinearSolver.__init__/swapped operands of `%`