def render_maass_waveforms(level=0, weight=-1, character=-1, r1=0, r2=0, **kwds): info = get_args_mwf(level=level, weight=weight, character=character, r1=r1, r2=r2, **kwds) info["credit"] = "" info["learnmore"] = [] mwf_logger.debug("args=%s" % request.args) mwf_logger.debug("method=%s" % request.method) mwf_logger.debug("req.form=%s" % request.form) mwf_logger.debug("info=%s" % info) mwf_logger.debug("level,weight,char={0},{1},{2}".format(level, weight, character)) if info.get('maass_id', None) and info.get('db', None): return render_one_maass_waveform_wp(**info) if info['search'] or (info['browse'] and int(info['weight']) != 0): search = get_search_parameters(info) mwf_logger.debug("search=%s" % search) return render_search_results_wp(info, search) if info['browse']: mwf_logger.debug("browse info=%s" % info) return render_browse_all_eigenvalues(**info) DB = connect_db() if not info['collection'] or info['collection'] == 'all': # FIXME: metadata returned by get_collections_info is never used, only side effect appears to be logging messages # md = get_collections_info() get_collections_info() info['cur_character'] = character if level > 0: info['maass_weight'] = DB.weights(int(level)) info['cur_level'] = level if weight > -1: info['cur_weight'] = weight if level > 0: info['maass_character'] = DB.characters(int(level), float(weight)) if character > - 1: info['cur_character'] = character if level > 0 or weight > -1 or character > -1: search = get_search_parameters(info) mwf_logger.debug("info=%s" % info) mwf_logger.debug("search=%s" % search) return render_search_results_wp(info, search) title = 'Maass forms' info['list_of_levels'] = DB.levels() if info['list_of_levels']: info['max_level'] = max(info['list_of_levels']) else: info['max_level'] = 0 mwf_logger.debug("info3=%s" % info) bread = [('Modular forms', url_for('mf.modular_form_main_page')), ('Maass forms', url_for('.render_maass_waveforms'))] info['bread'] = bread info['title'] = title DB.set_table() DB.table['ncols'] = 10 info['DB'] = DB info['dbcount'] = DB.count() info['limit'] = maxNumberOfResultsToShow return render_template("mwf_navigate.html", **info)
def render_maass_waveforms(level=0, weight=-1, character=-1, r1=0, r2=0, **kwds): info = get_args_mwf(level=level, weight=weight, character=character, r1=r1, r2=r2, **kwds) info["credit"] = "" info["learnmore"] = learnmore_list() mwf_logger.debug("args=%s" % request.args) mwf_logger.debug("method=%s" % request.method) mwf_logger.debug("req.form=%s" % request.form) mwf_logger.debug("info=%s" % info) mwf_logger.debug("level,weight,char={0},{1},{2}".format(level, weight, character)) if info.get('maass_id', None) and info.get('db', None): return render_one_maass_waveform_wp(**info) if info['search'] or (info['browse'] and int(info['weight']) != 0): search = get_search_parameters(info) mwf_logger.debug("search=%s" % search) return render_search_results_wp(info, search) if info['browse']: mwf_logger.debug("browse info=%s" % info) return render_browse_all_eigenvalues(**info) info['cur_character'] = character if level > 0: info['maass_weight'] = maass_db.weights(int(level)) info['cur_level'] = level if weight > -1: info['cur_weight'] = weight if level > 0: info['maass_character'] = maass_db.characters(int(level), float(weight)) if character > - 1: info['cur_character'] = character if level > 0 or weight > -1 or character > -1: search = get_search_parameters(info) mwf_logger.debug("info=%s" % info) mwf_logger.debug("search=%s" % search) return render_search_results_wp(info, search) title = 'Maass Forms' info['list_of_levels'] = maass_db.levels() if info['list_of_levels']: info['max_level'] = max(info['list_of_levels']) else: info['max_level'] = 0 mwf_logger.debug("info3=%s" % info) bread = [('Modular Forms', url_for('mf.modular_form_main_page')), ('Maass Forms', url_for('.render_maass_waveforms'))] info['bread'] = bread info['title'] = title maass_db.set_table() maass_db.table['ncols'] = 10 info['DB'] = maass_db info['dbcount'] = maass_db.count() info['limit'] = maxNumberOfResultsToShow return render_template("mwf_navigate.html", **info)
def get_table(): search = get_search_parameters({}) mwf_logger.debug("args=%s" % request.args) mwf_logger.debug("method=%s" % request.method) # mwf_logger.debug("req.form=%s"%request.form) if isinstance(request.form, dict): for key in request.form.keys(): mwf_logger.debug("{0}:{1}".format(key, request.form[key])) mwf_logger.debug("search:{0}".format(search)) if not isinstance(search, dict): search = {} # if not search.has_key('limit'): search['limit'] = request.form.get('iDisplayLength', 10000) if 'skip' not in search: search['skip'] = 0 search['skip'] = request.form.get('iDisplayStart', 0) evs = evs_table2(search, True) res = { "aoColumns": evs['table']['colheads'], "aaData": evs['table']['data'], "iTotalRecords": evs['totalrecords'], "iTotalDisplayRecords": evs['totalrecords_filtered']} res = json.dumps(res) mwf_logger.debug("table.nrows:{0}".format(evs['table']['nrows'])) mwf_logger.debug("totalrecords:{0}".format(evs['totalrecords'])) # print "res=",res return res
def get_table(): search = get_search_parameters({}) mwf_logger.debug("args=%s" % request.args) mwf_logger.debug("method=%s" % request.method) # mwf_logger.debug("req.form=%s"%request.form) if isinstance(request.form, dict): for key in request.form.keys(): mwf_logger.debug("{0}:{1}".format(key, request.form[key])) mwf_logger.debug("search:{0}".format(search)) if not isinstance(search, dict): search = {} # if not search.has_key('limit'): search['limit'] = request.form.get('iDisplayLength', 10000) if 'skip' not in search: search['skip'] = 0 search['skip'] = request.form.get('iDisplayStart', 0) evs = evs_table2(search, True) res = { "aoColumns": evs['table']['colheads'], "aaData": evs['table']['data'], "iTotalRecords": evs['totalrecords'], "iTotalDisplayRecords": evs['totalrecords_filtered'] } res = json.dumps(res) mwf_logger.debug("table.nrows:{0}".format(evs['table']['nrows'])) mwf_logger.debug("totalrecords:{0}".format(evs['totalrecords'])) # print "res=",res return res
def render_maass_waveforms(level=0, weight=-1, character=-1, r1=0, r2=0, **kwds): info = get_args_mwf(level=level, weight=weight, character=character, r1=r1, r2=r2, **kwds) info[ "credit"] = u"Data computed by Stefan Lemurell and Fredrik Str\u00f6mberg." info["bread"] = [('Modular Forms', url_for('mf.modular_form_main_page')), ('Maass Forms', url_for('.render_maass_waveforms'))] info["learnmore"] = learnmore_list() mwf_logger.debug("args=%s" % request.args) mwf_logger.debug("method=%s" % request.method) mwf_logger.debug("req.form=%s" % request.form) mwf_logger.debug("info=%s" % info) mwf_logger.debug("level,weight,char={0},{1},{2}".format( level, weight, character)) if info.get('maass_id', None) and info.get('db', None): return render_one_maass_waveform_wp(**info) if info['search'] or (info['browse'] and int(info['weight']) != 0): # This isn't the right place to do input validation, but it is easier to flash errors here (this is a hack to address issue #1820) if info.get('level_range'): if not re.match(POSINT_RE, info['level_range']): if "-" in info['level_range']: info['level_range'] = "..".join( info['level_range'].split("-")) if not re.match(POSINT_RANGE_RE, info['level_range']): flash_error( "%s is not a level, please specify a positive integer <span style='color:black'>n</span> or postivie integer range <span style='color:black'>m..n</span>.", info['level_range']) return render_template('mwf_navigate.html', **info) if info['character'] != -1: if info['character'] == '1' or info['character'] == '1.1': info['character'] = '1' else: try: N = int(info.get('level_range', '0')) except: flash_error( "Only the trivial character can be specified in combination with a range of levels.", info['character']) return render_template('mwf_navigate.html', **info) if re.match(POSINT_RE, info['character']): if N == 0: flash_error( "Character %s is ambiguous. Please either specify a level or use a character label of the form <span style='color:black'>q.n</span>, where q specifies the level.", info['character']) return render_template('mwf_navigate.html', **info) n = int(info['character']) if gcd(N, n) != 1: flash_error( "Character %s is not coprime to the level %s.", info['character'], str(N)) return render_template('mwf_navigate.html', **info) else: if not re.match(r'^[1-9][0-9]*\.[1-9][0-9]*$', info['character']): flash_error( "%s is not a valid label for a Dirichlet character. It should be either be 1 (for the trivial character) or of the form <span style='color:black'>q.n</span>, where q and n are coprime positive integers with n < q, or q=n=1.", info['character']) return render_template('mwf_navigate.html', **info) s = info['character'].split('.') q, n = int(s[0]), int(s[1]) if n > q or gcd(q, n) != 1: flash_error( "%s is not a valid label for a Dirichlet character. It should be of the form <span style='color:black'>q.n</span>, where q and n are coprime positive integers with n < q, or q=n=1.", info['character']) return render_template('mwf_navigate.html', **info) if N > 0 and q != N: flash_error( "The specified character %s is not compatible with the level %s.", info['character'], info['level']) return render_template('mwf_navigate.html', **info) info['level_range'] = str(q) info['character'] = str(n) if info['weight'] != -1: if not re.match(INT_RE, info['weight']): flash_error( "%s is not a valid weight. It should be a nonnegative integer.", info['weight']) return render_template('mwf_navigate.html', **info) if info.get('ev_range'): if not re.match(FLOAT_RE, info['ev_range']): if "-" in info['ev_range']: info['ev_range'] = "..".join(info['ev_range'].split("-")) s = info['ev_range'].split("..") if len(s) != 2: flash_error( "%s is not a valid eigenvalue range. It should be postive real interval.", info['ev_range']) return render_template('mwf_navigate.html', **info) if not re.match(FLOAT_RE, s[0]) or not re.match( FLOAT_RE, s[1]): flash_error( "%s is not a valid eigenvalue range. It should be postive real interval.", info['ev_range']) return render_template('mwf_navigate.html', **info) search = get_search_parameters(info) mwf_logger.debug("search=%s" % search) return render_search_results_wp(info, search) if info['browse']: mwf_logger.debug("browse info=%s" % info) return render_browse_all_eigenvalues(**info) info['cur_character'] = character if level > 0: info['maass_weight'] = maass_db.weights(int(level)) info['cur_level'] = level if weight > -1: info['cur_weight'] = weight if level > 0: info['maass_character'] = maass_db.characters( int(level), float(weight)) if character > -1: info['cur_character'] = character if level > 0 or weight > -1 or character > -1: search = get_search_parameters(info) mwf_logger.debug("info=%s" % info) mwf_logger.debug("search=%s" % search) return render_search_results_wp(info, search) title = 'Maass Forms' info['list_of_levels'] = maass_db.levels() if info['list_of_levels']: info['max_level'] = max(info['list_of_levels']) else: info['max_level'] = 0 mwf_logger.debug("info3=%s" % info) bread = [('Modular Forms', url_for('mf.modular_form_main_page')), ('Maass Forms', url_for('.render_maass_waveforms'))] info['bread'] = bread info['title'] = title maass_db.set_table() maass_db.table['ncols'] = 10 info['DB'] = maass_db info['dbcount'] = maass_db.count() info['limit'] = maxNumberOfResultsToShow return render_template("mwf_navigate.html", **info)
def render_maass_waveforms(level=0, weight=-1, character=-1, r1=0, r2=0, **kwds): info = get_args_mwf(level=level, weight=weight, character=character, r1=r1, r2=r2, **kwds) info["credit"] = "" info["learnmore"] = learnmore_list() mwf_logger.debug("args=%s" % request.args) mwf_logger.debug("method=%s" % request.method) mwf_logger.debug("req.form=%s" % request.form) mwf_logger.debug("info=%s" % info) mwf_logger.debug("level,weight,char={0},{1},{2}".format(level, weight, character)) if info.get('maass_id', None) and info.get('db', None): return render_one_maass_waveform_wp(**info) if info['search'] or (info['browse'] and int(info['weight']) != 0): # This isn't the right place to do input validation, but it is easier to flash errors here (this is a hack to address issue #1820) if info.get('level_range'): if not re.match(POSINT_RE, info['level_range']): if "-" in info['level_range']: info['level_range'] = "..".join(info['level_range'].split("-")) if not re.match(POSINT_RANGE_RE, info['level_range']): flash_error("%s is not a level, please specify a positive integer <span style='color:black'>n</span> or postivie integer range <span style='color:black'>m..n</span>.", info['level_range']) return render_template('mwf_navigate.html', **info) if info['character'] != -1: try: N = int(info.get('level_range','0')) except: flash_error("Character %s cannot be specified in combination with a range of levels.", info['character']) return render_template('mwf_navigate.html', **info) if not re.match(r'^[1-9][0-9]*\.[1-9][0-9]*$', info['character']): flash_error("%s is not a valid label for a Dirichlet character. It should be of the form <span style='color:black'>q.n</span>, where q and n are coprime positive integers with n < q, or q=n=1.", info['character']) return render_template('mwf_navigate.html', **info) s = info['character'].split('.') q,n = int(s[0]), int(s[1]) if n > q or gcd(q,n) != 1 or (N > 0 and q != N): flash_error("%s is not a valid label for a Dirichlet character. It should be of the form <span style='color:black'>q.n</span>, where q and n are coprime positive integers with n < q, or q=n=1.", info['character']) return render_template('mwf_navigate.html', **info) info['level_range'] = str(q) info['character'] = str(n) if info['weight'] != -1: if not re.match(INT_RE, info['weight']): flash_error("%s is not a valid weight. It should be a nonnegative integer.", info['weight']) return render_template('mwf_navigate.html', **info) if info.get('ev_range'): if not re.match(FLOAT_RE,info['ev_range']): if "-" in info['ev_range']: info['ev_range'] = "..".join(info['ev_range'].split("-")) s = info['ev_range'].split("..") if len(s) != 2: flash_error("%s is not a valid eigenvalue range. It should be postive real interval.", info['ev_range']) return render_template('mwf_navigate.html', **info) if not re.match(FLOAT_RE,s[0]) or not re.match(FLOAT_RE,s[1]): flash_error("%s is not a valid eigenvalue range. It should be postive real interval.", info['ev_range']) return render_template('mwf_navigate.html', **info) search = get_search_parameters(info) mwf_logger.debug("search=%s" % search) return render_search_results_wp(info, search) if info['browse']: mwf_logger.debug("browse info=%s" % info) return render_browse_all_eigenvalues(**info) info['cur_character'] = character if level > 0: info['maass_weight'] = maass_db.weights(int(level)) info['cur_level'] = level if weight > -1: info['cur_weight'] = weight if level > 0: info['maass_character'] = maass_db.characters(int(level), float(weight)) if character > - 1: info['cur_character'] = character if level > 0 or weight > -1 or character > -1: search = get_search_parameters(info) mwf_logger.debug("info=%s" % info) mwf_logger.debug("search=%s" % search) return render_search_results_wp(info, search) title = 'Maass Forms' info['list_of_levels'] = maass_db.levels() if info['list_of_levels']: info['max_level'] = max(info['list_of_levels']) else: info['max_level'] = 0 mwf_logger.debug("info3=%s" % info) bread = [('Modular Forms', url_for('mf.modular_form_main_page')), ('Maass Forms', url_for('.render_maass_waveforms'))] info['bread'] = bread info['title'] = title maass_db.set_table() maass_db.table['ncols'] = 10 info['DB'] = maass_db info['dbcount'] = maass_db.count() info['limit'] = maxNumberOfResultsToShow return render_template("mwf_navigate.html", **info)