def _get_fd_params(self):
        if self._fd_params is None:
            conns = self.connections
            mypath = self.pathname + '.' if self.pathname else ''
            mplen = len(mypath)

            params = self._fd_params = []
            for tgt, (src, idxs) in iteritems(conns):
                if mypath == tgt[:mplen]:
                    # look up the Component that contains the source variable
                    scname = src.rsplit('.', 1)[0]
                    if mypath == scname[:mplen]:
                        src_comp = self._subsystem(scname[mplen:])
                        if isinstance(src_comp, IndepVarComp):
                            params.append(tgt[mplen:])
                    else:
                        scoped_tgt = tgt[mplen:]
                        if not self.params._dat[scoped_tgt].pbo:
                            params.append(scoped_tgt)

        return self._fd_params
Checking total twice doesn't query db for count twice.
dataset/ETHPy150Open OpenMDAO/OpenMDAO/openmdao/core/group.py/Group._get_fd_params--crossover with--dataset/ETHPy150Open mozilla/moztrap/tests/view/lists/test_pagination.py/TestPager.test_total_cached