pgleeson commited on
Commit
ea08d7a
·
1 Parent(s): d8aadd5

Improved publication formatting

Browse files
Files changed (2) hide show
  1. app.py +4 -4
  2. publications.py +46 -13
app.py CHANGED
@@ -108,10 +108,10 @@ with tab_data:
108
  from datasources import query_data_source
109
 
110
 
111
- text = st.text_area("Which neuron would you like to know about:", "AVBL")
112
 
113
- source = st.selectbox('Which data source to use?', (DS_WORMNEUROATLAS,))
114
- format = st.selectbox('Return format', FORMATS)
115
 
116
  submitted = st.form_submit_button("Submit")
117
 
@@ -151,7 +151,7 @@ with tab_model:
151
  ax.plot(ts,vs, label=key)
152
  ax.legend()
153
 
154
- plt.xlabel("Time (ms)")
155
  plt.ylabel("(SI units)")
156
 
157
 
 
108
  from datasources import query_data_source
109
 
110
 
111
+ text = st.text_area("Which neuron would you like to know about?", "AVBL")
112
 
113
+ source = st.selectbox('Select data source to use:', (DS_WORMNEUROATLAS,))
114
+ format = st.selectbox('Return format:', FORMATS)
115
 
116
  submitted = st.form_submit_button("Submit")
117
 
 
151
  ax.plot(ts,vs, label=key)
152
  ax.legend()
153
 
154
+ plt.xlabel("Time (s)")
155
  plt.ylabel("(SI units)")
156
 
157
 
publications.py CHANGED
@@ -21,28 +21,61 @@ def find_basis_paper(query, result_limit=10):
21
  if not query:
22
  continue
23
 
24
- rsp = requests.get('https://api.semanticscholar.org/graph/v1/paper/search',
25
- headers={'X-API-KEY': S2_API_KEY},
26
- params={'query': query, 'limit': result_limit, 'fields': 'title,url,authors,year,tldr,journal'})
27
- rsp.raise_for_status()
28
- results = rsp.json()
29
- total = results["total"]
30
- if not total:
31
- print('No matches found. Please try another query.')
32
- continue
 
 
 
 
 
33
 
34
- print(f'Found {total} results. Showing up to {result_limit}.')
35
- papers = results['data']
36
- info += format_paper_list(papers)
37
 
38
  print(info)
39
  return info
40
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  def format_paper_list(papers):
42
  list = ''
43
  for idx, paper in enumerate(papers):
44
  print(paper)
45
- list+=(f"{idx}: **{paper['authors'][0]['name']} et al. {paper['year']}**, [{paper['journal']['name']}]({paper['url']}) {paper['title'].strip()}\n\n")
46
  if paper['tldr'] and paper['tldr']['text']:
47
  list+=(f"> _{paper['tldr']['text'].strip()}_ \n\n")
48
 
 
21
  if not query:
22
  continue
23
 
24
+ try:
25
+ rsp = requests.get('https://api.semanticscholar.org/graph/v1/paper/search',
26
+ headers={'X-API-KEY': S2_API_KEY},
27
+ params={'query': query, 'limit': result_limit, 'fields': 'title,url,authors,year,tldr,journal'})
28
+ rsp.raise_for_status()
29
+ results = rsp.json()
30
+ total = results["total"]
31
+ if not total:
32
+ print('No matches found. Please try another query.')
33
+ continue
34
+
35
+ print(f'Found {total} results. Showing up to {result_limit}.')
36
+ papers = results['data']
37
+ info += format_paper_list(papers)
38
 
39
+ except Exception as e:
40
+ info += ('There was a problem...\n\n%s'%e)
 
41
 
42
  print(info)
43
  return info
44
 
45
+
46
+ def get_element(paper, part):
47
+ simple_parts = ['year','url','title']
48
+ if part in simple_parts:
49
+ if part in paper and paper[part] is not None:
50
+ v = paper[part]
51
+ return v.strip() if type(v)==str else v
52
+ else:
53
+ return '???'
54
+
55
+ elif part == 'journal':
56
+ if part in paper and paper[part] is not None:
57
+ return paper[part]['name'].strip()
58
+ else:
59
+ return '???'
60
+ elif part == 'authors':
61
+ if part in paper and paper[part] is not None:
62
+ return paper[part][0]['name'].strip()
63
+ else:
64
+ return '???'
65
+ elif part == 'tldr':
66
+ if part in paper and paper[part] is not None:
67
+ return paper[part]['text'].strip()
68
+ else:
69
+ return '???'
70
+ else:
71
+ return '<unknown field %s>'%part
72
+
73
+
74
  def format_paper_list(papers):
75
  list = ''
76
  for idx, paper in enumerate(papers):
77
  print(paper)
78
+ list+=(f"{idx}: **{get_element(paper, 'authors')} et al. {get_element(paper, 'year')}**, [{get_element(paper, 'journal')}]({get_element(paper, 'url')}) {get_element(paper, 'title')}\n\n")
79
  if paper['tldr'] and paper['tldr']['text']:
80
  list+=(f"> _{paper['tldr']['text'].strip()}_ \n\n")
81