def render_Heckewebpage(number_field=None, modulus=None, number=None): #args = request.args #temp_args = to_dict(args) args = {} args['type'] = 'Hecke' args['number_field'] = number_field args['modulus'] = modulus args['number'] = number if number_field == None: info = WebHeckeExamples(**args).to_dict() return render_template('Hecke.html', **info) else: WNF = WebNumberField(number_field) if WNF.is_null(): return flask.abort(404, "Number field %s not found."%number_field) if modulus == None: try: info = WebHeckeFamily(**args).to_dict() except (ValueError,KeyError,TypeError) as err: return flask.abort(404,err.args) return render_template('CharFamily.html', **info) elif number == None: try: info = WebHeckeGroup(**args).to_dict() except (ValueError,KeyError,TypeError) as err: # Typical failure case is a GP error inside bnrinit which we don't really want to display return flask.abort(404,'Unable to construct modulus %s for number field %s'%(modulus,number_field)) m = info['modlabel'] info['bread'] = [('Characters', url_for(".render_characterNavigation")), ('Hecke', url_for(".render_Heckewebpage")), ('Number Field %s'%number_field, url_for(".render_Heckewebpage", number_field=number_field)), ('%s'%m, url_for(".render_Heckewebpage", number_field=number_field, modulus=m))] info['code'] = dict([(k[4:],info[k]) for k in info if k[0:4] == "code"]) info['code']['show'] = { lang:'' for lang in info['codelangs'] } # use default show names return render_template('CharGroup.html', **info) else: try: X = WebHeckeCharacter(**args) except (ValueError,KeyError,TypeError) as err: return flask.abort(404, 'Unable to construct Hecke character %s modulo %s in number field %s.'%(number,modulus,number_field)) info = X.to_dict() info['bread'] = [('Characters',url_for(".render_characterNavigation")), ('Hecke', url_for(".render_Heckewebpage")), ('Number Field %s'%number_field,url_for(".render_Heckewebpage", number_field=number_field)), ('%s'%X.modulus, url_for(".render_Heckewebpage", number_field=number_field, modulus=X.modlabel)), ('%s'%X.number2label(X.number), '')] info['code'] = dict([(k[4:],info[k]) for k in info if k[0:4] == "code"]) info['code']['show'] = { lang:'' for lang in info['codelangs'] } # use default show names return render_template('Character.html', **info)
def hc_calc(calc, number_field, modulus, number): val = request.args.get("val", []) args = {'type':'Hecke', 'number_field':number_field, 'modulus':modulus, 'number':number} if not val: return flask.abort(404) try: if calc == 'value': return WebHeckeCharacter(**args).value(val) else: return flask.abort(404) except Exception, e: return "<span style='color:red;'>ERROR: %s</span>" % e