def download_galmap_text(self, label, lang="text"): data = db.belyi_galmaps_fixed.lookup(label) if data is None: return abort(404, "Label not found: %s" % label) return self._wrap(Json.dumps(data), label, title='Data for embedded Belyi map with label %s,'%label)
def download_G2C_all(label): data = db.g2c_curves.lookup(label, label_col='label') if data is None: return genus2_jump_error(label, {}) data_list = [data] response = make_response('\n\n'.join(Json.dumps(d) for d in data_list)) response.headers['Content-type'] = 'text/plain' return response
def download_traces(self, label, lang='text'): data = self._get_traces(label) # to return errors if not isinstance(data,list): return data return self._wrap(Json.dumps(data), label + '.traces', lang=lang, title='Trace form for %s,'%(label))
def download_traces(self, label, lang='text'): data = self._get_traces(label) # to return errors if not isinstance(data, list): return data return self._wrap(Json.dumps(data), label + '.traces', lang=lang, title='Trace form for %s,' % (label))
def download_all(self, label, lang='text'): data = db.av_fq_isog.lookup(label) if data is None: return abort(404, "Label not found: %s" % label) return self._wrap( Json.dumps(data), label, lang=lang, title='Stored data for abelian variety isogeny class %s,' % (label))
def download_coefficients(self, label, lang='text'): data = db.maass_newforms.lookup(label, projection="coefficients") if data is None: return abort(404, "Coefficient data for Maass form %s not found in the database"%label) c = data data = [str(c[n]) for n in range(len(c))] return self._wrap(Json.dumps(data).replace('"',''), label + '.coefficients', lang=lang, title='Coefficients for Maass form %s,'%(label))
def download_newspace(self, label, lang='text'): data = db.mf_newspaces.lookup(label) if data is None: return abort(404, "Label not found: %s"%label) space = WebNewformSpace(data) data['newforms'] = [form['label'] for form in space.newforms] data['oldspaces'] = space.oldspaces return self._wrap(Json.dumps(data), label, lang=lang, title='Stored data for newspace %s,'%(label))
def download_newspace(self, label, lang='text'): data = db.mf_newspaces.lookup(label) if data is None: return abort(404, "Label not found: %s" % label) space = WebNewformSpace(data) data['newforms'] = [form['label'] for form in space.newforms] data['oldspaces'] = space.oldspaces return self._wrap(Json.dumps(data), label, lang=lang, title='Stored data for newspace %s,' % (label))
def download_newform(self, label, lang='text'): data = db.mf_newforms.lookup(label) if data is None: return abort(404, "Label not found: %s" % label) form = WebNewform(data) if form.has_exact_qexp: data['qexp'] = form.qexp data['traces'] = form.texp return self._wrap(Json.dumps(data), label, lang=lang, title='Stored data for newform %s,' % (label))
def download(self, label, lang='text'): data = db.maass_newforms.lookup(label) if data is None: return abort(404, "Maass form %s not found in the database"%label) for col in db.maass_newforms.col_type: if db.maass_newforms.col_type[col] == "numeric" and data.get(col): data[col] = str(data[col]) if db.maass_newforms.col_type[col] == "numeric[]" and data.get(col): data[col] = [str(data[col][n]) for n in range(len(data[col]))] return self._wrap(Json.dumps(data), label, lang=lang, title='All stored data for Maass form %s,'%(label))
def cc_generator(): yield '[\n' for ev in db.mf_hecke_cc.search( {'hecke_orbit_code': code}, ['label', 'embedding_root_real', 'embedding_root_imag', col], sort=['conrey_index', 'embedding_index']): D = {'label': ev.get('label'), col: ev.get(col)} root = (ev.get('embedding_root_real'), ev.get('embedding_root_imag')) if root != (None, None): D['root'] = root yield Json.dumps(D) + ',\n\n' yield ']\n'
def download_full_space(self, label, lang='text'): try: space = WebGamma1Space.by_label(label) except ValueError: return abort(404, "Label not found: %s"%label) data = {} for attr in ['level', 'weight', 'label', 'oldspaces']: data[attr] = getattr(space, attr) data['newspaces'] = [spc['label'] for spc, forms in space.decomp] data['newforms'] = sum([[form['label'] for form in forms] for spc, forms in space.decomp], []) data['dimgrid'] = space.dim_grid._grid return self._wrap(Json.dumps(data), label, lang=lang, title='Stored data for newspace %s,'%(label))
def download_newform(self, label, lang='text'): data = db.mf_newforms.lookup(label) if data is None: return abort(404, "Label not found: %s" % label) form = WebNewform(data) form.setup_cc_data({'m': '1-%s' % form.dim}) if form.has_exact_qexp: data['qexp'] = form.qexp data['traces'] = form.texp if form.has_complex_qexp: data['complex_embeddings'] = form.cc_data return self._wrap(Json.dumps(data), label, lang=lang, title='Stored data for newform %s,' % (label))
def download_ECNF_all(nf,conductor_label,class_label,number): conductor_label = unquote(conductor_label) conductor_label = convert_IQF_label(nf,conductor_label) try: nf_label = nf_string_to_label(nf) except ValueError: return search_input_error() label = "".join(["-".join([nf_label, conductor_label, class_label]), number]) data = db.ec_nfcurves.lookup(label) if data is None: return search_input_error() response = make_response(Json.dumps(data)) response.headers['Content-type'] = 'text/plain' return response
def download_ECNF_all(nf,conductor_label,class_label,number): conductor_label = unquote(conductor_label) conductor_label = convert_IQF_label(nf,conductor_label) try: nf_label = nf_string_to_label(nf) except ValueError: return search_input_error() label = "".join(["-".join([nf_label, conductor_label, class_label]), number]) data = db.ec_nfcurves.lookup(label) if data is None: return search_input_error() response = make_response(Json.dumps(data)) response.headers['Content-type'] = 'text/plain' return response
def download_newform(self, label, lang='text'): data = db.mf_newforms.lookup(label) if data is None: return abort(404, "Label not found: %s"%label) form = WebNewform(data) form.setup_cc_data({'m':'1-%s'%form.dim}) if form.has_exact_qexp: data['qexp'] = form.qexp data['traces'] = form.texp if form.has_complex_qexp: data['complex_embeddings'] = form.cc_data return self._wrap(Json.dumps(data), label, lang=lang, title='Stored data for newform %s,'%(label))
def download_full_space(self, label, lang='text'): try: space = WebGamma1Space.by_label(label) except ValueError: return abort(404, "Label not found: %s"%label) data = {} for attr in ['level', 'weight', 'label', 'oldspaces']: data[attr] = getattr(space, attr) data['newspaces'] = [spc['label'] for spc, forms in space.decomp] data['newforms'] = sum([[form['label'] for form in forms] for spc, forms in space.decomp], []) data['dimgrid'] = space.dim_grid._grid return self._wrap(Json.dumps(data), label, lang=lang, title='Stored data for newspace %s,'%(label))
def download_embedding(self, label, lang='text'): data = db.mf_hecke_cc.lucky({'label': label}, [ 'label', 'embedding_root_real', 'embedding_root_imag', 'an_normalized', 'angles' ]) if data is None: return abort(404, "No embedded newform found for %s" % (label)) root = (data.pop('embedding_root_real', None), data.pop('embedding_root_imag', None)) if root != (None, None): data['root'] = root return self._wrap(Json.dumps(data), label, lang=lang, title='Coefficient data for embedded newform %s,' % label)
def cc_generator(): yield '[\n' for ev in db.mf_hecke_cc.search( {'hecke_orbit_code':code}, ['label', 'embedding_root_real', 'embedding_root_imag', col], sort=['conrey_index', 'embedding_index']): D = {'label':ev.get('label'), col:ev.get(col)} root = (ev.get('embedding_root_real'), ev.get('embedding_root_imag')) if root != (None, None): D['root'] = root yield Json.dumps(D) + ',\n\n' yield ']\n'
def download_embedding(self, label, lang='text'): data = db.mf_hecke_cc.lucky({'label':label}, ['label', 'embedding_root_real', 'embedding_root_imag', 'an_normalized', 'angles']) if data is None: return abort(404, "No embedded newform found for %s"%(label)) root = (data.pop('embedding_root_real', None), data.pop('embedding_root_imag', None)) if root != (None, None): data['root'] = root return self._wrap(Json.dumps(data), label, lang=lang, title='Coefficient data for embedded newform %s,'%label)
def download_EC_all(label): try: N, iso, number = split_lmfdb_label(label) except (ValueError,AttributeError): return elliptic_curve_jump_error(label, {}) if number: data = db.ec_curvedata.lookup(label, label_col='lmfdb_label') if data is None: return elliptic_curve_jump_error(label, {}) data_list = [data] else: data_list = list(db.ec_curvedata.search({'lmfdb_iso': label}, sort=['lmfdb_number'])) if not data_list: return elliptic_curve_jump_error(label, {}) response = make_response('\n\n'.join(Json.dumps(d) for d in data_list)) response.headers['Content-type'] = 'text/plain' return response
def download_EC_all(label): try: N, iso, number = split_lmfdb_label(label) except (ValueError,AttributeError): return elliptic_curve_jump_error(label, {}) if number: data = db.ec_curves.lookup(label, label_col='lmfdb_label') if data is None: return elliptic_curve_jump_error(label, {}) data_list = [data] else: data_list = list(db.ec_curves.search({'lmfdb_iso': label}, projection=2, sort=['number'])) if len(data_list) == 0: return elliptic_curve_jump_error(label, {}) response = make_response('\n\n'.join(Json.dumps(d) for d in data_list)) response.headers['Content-type'] = 'text/plain' return response
def download_ECNF_all(nf,conductor_label,class_label,number): conductor_label = unquote(conductor_label) try: nf_label = nf_string_to_label(nf) except ValueError: flash_error("%s is not a valid number field label", nf_label) return redirect(url_for(".index")) label = "".join(["-".join([nf_label, conductor_label, class_label]), number]) if not LABEL_RE.fullmatch(label): flash_error("%s is not a valid elliptic curve label.", label) return redirect(url_for(".index")) data = db.ec_nfcurves.lookup(label) if data is None: flash_error("%s is not the label of an elliptic curve in the database.", label) return redirect(url_for(".index")) response = make_response(Json.dumps(data)) response.headers['Content-type'] = 'text/plain' return response
def download_galmap_text(self, label, lang="text"): data = db.belyi_galmaps.lookup(label) return self._wrap(Json.dumps(data), label, title='Data for embedded Belyi map with label %s,' % label)