def eigenvals(self, **flags):
        # roots doesn't like Floats, so replace them with Rationals
        # unless the nsimplify flag indicates that this has already
        # been done, e.g. in eigenvects
        mat = self

        if not mat:
            return {}
        if flags.pop('rational', True):
            if any(v.has(Float) for v in mat):
                mat = mat._new(mat.rows, mat.cols,
                    [nsimplify(v, rational=True) for v in mat])

        flags.pop('simplify', None)  # pop unsupported flag
        return mat.berkowitz_eigenvals(**flags)
Returns an "action callback" which will initiate a dialog thread
dataset/ETHPy150Open sympy/sympy/sympy/matrices/matrices.py/MatrixBase.eigenvals--crossover with--dataset/ETHPy150Open lsaffre/lino/lino/core/kernel.py/Kernel.add_callback