def suites(stid=None): session_init(session, db) suites = [] if stid is None: for st in db.filtered_query('suite'): name, notes, person_id = st.name, st.notes, st.person_id person_email = db.get_person(person_id).email spectra = spectra_for_suite(db, st.id) is_owner = (int(session['person_id']) == int(st.person_id)) suites.append({'id': st.id, 'name': name, 'notes': notes, 'person_email': person_email, 'rating': get_rating(st), 'suite_owner': is_owner, 'nspectra': len(spectra), 'spectra': spectra}) else: st = db.filtered_query('suite', id=stid)[0] name, notes, person_id = st.name, st.notes, st.person_id person_email = db.get_person(person_id).email spectra = spectra_for_suite(db, stid) is_owner = (int(session['person_id']) == int(st.person_id)) suites.append({'id': stid, 'name': name, 'notes': notes, 'person_email': person_email, 'rating': get_rating(st), 'suite_owner': is_owner, 'nspectra': len(spectra), 'spectra': spectra}) return render_template('suites.html', nsuites=len(suites), suites=suites)
def all(): session_init(session, db) spectra = [] dbspectra = db.get_spectra() for s in dbspectra: edge = db.get_edge(s.edge_id) elem_sym = db.get_element(s.element_z).symbol elem = s.element_z person = db.get_person(s.person_id) bl_id, bl_desc = beamline_for_spectrum(db, s) spectra.append({ 'id': s.id, 'name': s.name, 'element': elem, 'edge': edge.name, 'person_email': person.email, 'person_name': person.name, 'elem_sym': elem_sym, 'rating': get_rating(s), 'beamline_desc': bl_desc, 'beamline_id': bl_id, }) return render_template('ptable.html', nspectra=len(dbspectra), elem='All Elements', spectra=spectra)
def parse_review_page(restaurant: Restaurant, page: BeautifulSoup) -> Review: title = page.find("div", class_="quote").text.strip() score = utils.get_rating(page) username = page.find(class_="member_info").find(class_="username").text text = utils.get_text_with_breaks(page.find("p", class_="partial_entry")) visit_date_span = page.find(class_="prw_rup prw_reviews_stay_date_hsx") visit_date_text = visit_date_span.contents[1].strip() date = datetime.datetime.strptime(visit_date_text, '%B %Y').date() response_div = page.find(class_="mgrRspnInline") if response_div: response_element = response_div.find(class_="partial_entry") response = utils.get_text_with_breaks(response_element) else: response = None return Review(restaurant=restaurant, user=username, title=title, text=text, visit_date=date, score=score, response=response)
def all(): session_init(session, db) spectra = [] dbspectra = db.get_spectra() for s in dbspectra: edge = db.get_edge(s.edge_id) elem_sym = db.get_element(s.element_z).symbol elem = s.element_z person = db.get_person(s.person_id) bl_id, bl_desc = beamline_for_spectrum(db, s) spectra.append({'id': s.id, 'name': s.name, 'element': elem, 'edge': edge.name, 'person_email': person.email, 'person_name': person.name, 'elem_sym': elem_sym, 'rating': get_rating(s), 'beamline_desc': bl_desc, 'beamline_id': bl_id, }) return render_template('ptable.html', nspectra=len(dbspectra), elem='All Elements', spectra=spectra)
def suites(stid=None): session_init(session, db) suites = [] if stid is None: for st in db.filtered_query('suite'): name, notes, person_id = st.name, st.notes, st.person_id person_email = db.get_person(person_id).email spectra = spectra_for_suite(db, st.id) is_owner = (int(session['person_id']) == int(st.person_id)) suites.append({ 'id': st.id, 'name': name, 'notes': notes, 'person_email': person_email, 'rating': get_rating(st), 'suite_owner': is_owner, 'nspectra': len(spectra), 'spectra': spectra }) else: st = db.filtered_query('suite', id=stid)[0] name, notes, person_id = st.name, st.notes, st.person_id person_email = db.get_person(person_id).email spectra = spectra_for_suite(db, stid) is_owner = (int(session['person_id']) == int(st.person_id)) suites.append({ 'id': stid, 'name': name, 'notes': notes, 'person_email': person_email, 'rating': get_rating(st), 'suite_owner': is_owner, 'nspectra': len(spectra), 'spectra': spectra }) return render_template('suites.html', nsuites=len(suites), suites=suites)
def index(): if request.method == 'POST': salary_data = get_salary( request.form['first'], request.form['last'] ) full_name = salary_data['full_name'] salary = salary_data['salary'] # If the NYC Database does not have an entry with the given name, # scrape ratemyteachers.com for the teacher with the closest name # at the given school, and then attempt to get the salary data again. if not salary: name_and_rating_data = get_name_and_rating( full_name, request.form['school'] ) subject = name_and_rating_data['subject'] rating = name_and_rating_data['rating'] num_ratings = name_and_rating_data['num_ratings'] salary_data = get_salary( name_and_rating_data['first_name'], name_and_rating_data['last_name'] ) full_name = salary_data['full_name'] salary = salary_data['salary'] # Otherwise, only use ratemyteachers.com to get the rating. else: rating_data = get_rating( salary_data['full_name'], request.form['school'] ) subject = rating_data['subject'] rating = rating_data['rating'] num_ratings = rating_data['num_ratings'] #photo = get_photo(full_name, request.form['school']) efficiency = get_efficiency(salary, rating) return render_template( 'results.html', full_name = full_name, subject = subject, salary = salary, rating = rating, num_ratings = num_ratings, photo = None, #photo, efficiency = efficiency ) return render_template('index.html')
def edit_suite(stid=None): session_init(session, db) error=None if session['username'] is None: error='must be logged in to edit suite' return render_template('ptable.html', error=error) st = db.filtered_query('suite', id=stid)[0] name, notes, person_id = st.name, st.notes, st.person_id person_email = db.get_person(person_id).email spectra = spectra_for_suite(db, stid) is_owner = (int(session['person_id']) == int(st.person_id)) opts = {'id': stid, 'name': name, 'notes': notes, 'person_email': person_email, 'rating': get_rating(st), 'suite_owner': is_owner, 'nspectra': len(spectra), 'spectra': spectra} return render_template('edit_suite.html', **opts)
def search(elem=None, orderby=None, reverse=0): session_init(session, db) dbspectra = [] if orderby is None: orderby = 'id' if elem is not None: try: dbspectra = db.get_spectra(element=elem, orderby=orderby) except: pass reverse = int(reverse) if reverse: dbspectra.reverse() reverse = 0 else: reverse = 1 spectra = [] for s in dbspectra: edge = db.get_edge(s.edge_id) elem_sym = db.get_element(s.element_z).symbol person = db.get_person(s.person_id) bl_id, bl_desc = beamline_for_spectrum(db, s) spectra.append({ 'id': s.id, 'name': s.name, 'element': elem, 'edge': edge.name, 'person_email': person.email, 'person_name': person.name, 'elem_sym': elem_sym, 'rating': get_rating(s), 'beamline_desc': bl_desc, 'beamline_id': bl_id, }) return render_template('ptable.html', nspectra=len(dbspectra), elem=elem, spectra=spectra, reverse=reverse)
def search(elem=None, orderby=None, reverse=0): session_init(session, db) dbspectra = [] if orderby is None: orderby = 'id' if elem is not None: try: dbspectra = db.get_spectra(element=elem, orderby=orderby) except: pass reverse = int(reverse) if reverse: dbspectra.reverse() reverse = 0 else: reverse = 1 spectra = [] for s in dbspectra: edge = db.get_edge(s.edge_id) elem_sym = db.get_element(s.element_z).symbol person = db.get_person(s.person_id) bl_id, bl_desc = beamline_for_spectrum(db, s) spectra.append({'id': s.id, 'name': s.name, 'element': elem, 'edge': edge.name, 'person_email': person.email, 'person_name': person.name, 'elem_sym': elem_sym, 'rating': get_rating(s), 'beamline_desc': bl_desc, 'beamline_id': bl_id, }) return render_template('ptable.html', nspectra=len(dbspectra), elem=elem, spectra=spectra, reverse=reverse)
def edit_suite(stid=None): session_init(session, db) error = None if session['username'] is None: error = 'must be logged in to edit suite' return render_template('ptable.html', error=error) st = db.filtered_query('suite', id=stid)[0] name, notes, person_id = st.name, st.notes, st.person_id person_email = db.get_person(person_id).email spectra = spectra_for_suite(db, stid) is_owner = (int(session['person_id']) == int(st.person_id)) opts = { 'id': stid, 'name': name, 'notes': notes, 'person_email': person_email, 'rating': get_rating(st), 'suite_owner': is_owner, 'nspectra': len(spectra), 'spectra': spectra } return render_template('edit_suite.html', **opts)
def spectrum(spid=None): session_init(session, db) s = db.get_spectrum(spid) if s is None: error = 'Could not find Spectrum #%i' % spid return render_template('ptable.html', error=error) opts = parse_spectrum(s, db) opts['spectrum_owner'] = (session['person_id'] == "%i" % s.person_id) opts['rating'] = get_rating(s) modes = db.get_spectrum_mode(spid) if modes is None: modes = 1 else: modes = modes[0][1] if modes == 1: try: energy = np.array(json.loads(s.energy)) i0 = np.array(json.loads(s.i0)) itrans = np.array(json.loads(s.itrans)) mutrans = -np.log(itrans / i0) except: error = 'Could not extract data from spectrum' return render_template('spectrum.html', **opts) else: #get a fluorescence try: energy = np.array(json.loads(s.energy)) i0 = np.array(json.loads(s.i0)) ifluor = np.array(json.loads(s.ifluor)) mutrans = ifluor / i0 except: error = 'Could not extract data from spectrum' return render_template('spectrum.html', **opts) murefer = None try: irefer = np.array(json.loads(s.irefer)) murefer = -np.log(irefer / itrans) except: pass eunits = opts['energy_units'] if eunits.startswith('keV'): energy = energy / 1000.0 elif eunits.startswith('deg'): print 'Need to convert angle to energy' if modes != 7: group = preedge(energy, mutrans) e0 = group['e0'] try: e0 = edge_energies[int(s.element_z)][str(opts['edge'])] except: pass try: i1 = max(np.where(energy <= e0 - 25)[0]) except: i1 = 0 i2 = max(np.where(energy <= e0 + 75)[0]) + 1 xanes_en = energy[i1:i2] - e0 if modes != 3: xanes_mu = group['norm'][i1:i2] else: xanes_mu = mutrans[i1:i2] xanes_ref = None if murefer is not None: rgroup = preedge(energy, murefer) xanes_ref = rgroup['norm'][i1:i2] opts['e0'] = '%f' % e0 opts['fullfig'] = make_xafs_plot(energy, mutrans, s.name, ylabel='Raw XAFS') opts['xanesfig'] = make_xafs_plot(xanes_en, xanes_mu, s.name, xlabel='Energy-%.1f (eV)' % e0, ylabel='Normalized XANES', x0=e0, ref_mu=xanes_ref, ref_name='with reference') suites = [] for r in db.filtered_query('spectrum_suite', spectrum_id=s.id): st = db.filtered_query('suite', id=r.suite_id)[0] suites.append({'id': r.suite_id, 'name': st.name}) opts['nsuites'] = len(suites) opts['suites'] = suites return render_template('spectrum.html', **opts)
import utils import json from collections import defaultdict import time IN_FILE = 'electro.json' OUT_FILE = 'new_electro.json' f = open(IN_FILE) data = json.load(f) new_data = defaultdict(dict) for k in data: release_id = data[k][0] try: (rating, count) = utils.get_rating(release_id) new_data[k] = defaultdict(dict) new_data[k]['release_id'] = release_id new_data[k]['rating'] = rating new_data[k]['count'] = count print "%s: %s/%s" % (release_id, rating,count) time.sleep(1) except Exception: continue w = open(OUT_FILE,'w') json.dump(new_data, w)
def spectrum(spid=None): session_init(session, db) s = db.get_spectrum(spid) if s is None: error = 'Could not find Spectrum #%i' % spid return render_template('ptable.html', error=error) opts = parse_spectrum(s, db) opts['spectrum_owner'] = (session['person_id'] == "%i" % s.person_id) opts['rating'] = get_rating(s) modes = db.get_spectrum_mode(spid) if modes is None: modes = 1 else: modes = modes[0][1] if modes == 1: try: energy = np.array(json.loads(s.energy)) i0 = np.array(json.loads(s.i0)) itrans = np.array(json.loads(s.itrans)) mutrans = -np.log(itrans/i0) except: error = 'Could not extract data from spectrum' return render_template('spectrum.html', **opts) else: #get a fluorescence try: energy = np.array(json.loads(s.energy)) i0 = np.array(json.loads(s.i0)) ifluor = np.array(json.loads(s.ifluor)) mutrans = ifluor/i0 except: error = 'Could not extract data from spectrum' return render_template('spectrum.html', **opts) murefer = None try: irefer = np.array(json.loads(s.irefer)) murefer = -np.log(irefer/itrans) except: pass eunits = opts['energy_units'] if eunits.startswith('keV'): energy = energy /1000.0 elif eunits.startswith('deg'): print 'Need to convert angle to energy' if modes != 7: group = preedge(energy, mutrans) e0 = group['e0'] try: e0 = edge_energies[int(s.element_z)][str(opts['edge'])] except: pass try: i1 = max(np.where(energy<=e0 - 25)[0]) except: i1 = 0 i2 = max(np.where(energy<=e0 + 75)[0]) + 1 xanes_en = energy[i1:i2] - e0 if modes !=3: xanes_mu = group['norm'][i1:i2] else: xanes_mu = mutrans[i1:i2] xanes_ref = None if murefer is not None: rgroup = preedge(energy, murefer) xanes_ref = rgroup['norm'][i1:i2] opts['e0'] = '%f' % e0 opts['fullfig'] = make_xafs_plot(energy, mutrans, s.name, ylabel='Raw XAFS') opts['xanesfig'] = make_xafs_plot(xanes_en, xanes_mu, s.name, xlabel='Energy-%.1f (eV)' % e0, ylabel='Normalized XANES', x0=e0, ref_mu=xanes_ref, ref_name='with reference') suites = [] for r in db.filtered_query('spectrum_suite', spectrum_id=s.id): st = db.filtered_query('suite', id=r.suite_id)[0] suites.append({'id': r.suite_id, 'name': st.name}) opts['nsuites'] = len(suites) opts['suites'] = suites return render_template('spectrum.html', **opts)