def METHOD_NAME():
    field_label = None
    S = hmf_forms.find({})
    S = S.sort("label")
    while True:
        v = next(S)
        NN_label = v["level_label"]
        v_label = v["label"]
        try:
            if v["AL_eigenvalues_fixed"] == 'done' or v["AL_eigenvalues_fixed"] == 'working':
                continue
        except KeyError:
            print(v_label)
            print("...new, computing!")
            v["AL_eigenvalues_fixed"] = 'working'
            hmf_forms.save(v)
        if field_label is None or not field_label == v["field_label"]:
            field_label = v["field_label"]
            print("...new field " + field_label)
            F = fields.find_one({"label": field_label})
            F_hmf = hmf_fields.find_one({"label": field_label})
            magma.eval('P<x> := PolynomialRing(Rationals());')
            magma.eval('F<w> := NumberField(Polynomial(' + str(F["coefficients"]) + '));')
            magma.eval('ZF := Integers(F);')
            magma.eval('ideals_str := [' + ','.join([st for st in F_hmf["ideals"]]) + '];')
            magma.eval('ideals := [ideal<ZF | {F!x : x in I}> : I in ideals_str];')
            magma.eval('primes_str := [' + ','.join([st for st in F_hmf["primes"]]) + '];')
            magma.eval('primes := [ideal<ZF | {F!x : x in I}> : I in primes_str];')
        NN_index = NN_label[NN_label.index('.') + 1:]
        magma.eval(
            'NN := [I : I in ideals | Norm(I) eq ' + str(v["level_norm"]) + '][' + str(NN_index) + '];')
        magma.eval('M := HilbertCuspForms(F, NN);')
        if v["hecke_polynomial"] != 'x':
            magma.eval('K<e> := NumberField(' + v["hecke_polynomial"] + ');')
        else:
            magma.eval('K := Rationals(); e := 1;')
        magma.eval('hecke_eigenvalues := [' + ','.join([st for st in v["hecke_eigenvalues"]]) + '];')
        print("...Hecke eigenvalues loaded...")
        magma.eval('s := 0; KT := []; '
                   'while KT cmpeq [] or Dimension(KT) gt 1 do '
                   '  s +:= 1; '
                   '  pp := primes[s]; '
                   '  if Valuation(NN, pp) eq 0 then '
                   '    T_pp := HeckeOperator(M, pp); '
                   '    a_pp := hecke_eigenvalues[s]; '
                   '    if KT cmpeq [] then '
                   '      KT := Kernel(ChangeRing(Matrix(T_pp),K)-a_pp); '
                   '    else '
                   '      KT := KT meet Kernel(ChangeRing(Matrix(T_pp),K)-a_pp); '
                   '    end if; '
                   '  end if; '
                   'end while;')
        magma.eval('assert Dimension(KT) eq 1;')
        print("...dimension 1 subspace found...")
        magma.eval('NNfact := Factorization(NN);')
        magma.eval('f := Vector(Basis(KT)[1]); '
                   'AL_eigenvalues := []; '
                   'for pp in NNfact do '
                   '  U_ppf := f*ChangeRing(AtkinLehnerOperator(M, pp[1]),K); '
                   '  assert U_ppf eq f or U_ppf eq -f; '
                   '  if U_ppf eq f then '
                   '    Append(~AL_eigenvalues, 1); '
                   '  else '
                   '    Append(~AL_eigenvalues, -1); '
                   '  end if; '
                   'end for;')