# SageMath code for working with modular form 273.2.bt.b


# Compute space of new eigenforms: 
from sage.modular.dirichlet import DirichletCharacter
H = DirichletGroup(273, base_ring=CyclotomicField(12))
chi = DirichletCharacter(H, H._module([0, 2, 5]))
B = ModularForms(chi, 1).cuspidal_submodule().basis()
N = [B[i] for i in range(len(B))]

# Compute space of new eigenforms: 
from sage.modular.dirichlet import DirichletCharacter
H = DirichletGroup(273, base_ring=CyclotomicField(12))
chi = DirichletCharacter(H, H._module([0, 2, 5]))
N = Newforms(chi, 2, names="a") 

# select newform: 
traces = [40]
f = next(g for g in N if [g.coefficient(i+1).trace() for i in range(1)] == traces)

# q-expansion: 
f.q_expansion() # note that sage often uses an isomorphic number field