Skip to content
Snippets Groups Projects

add search functions for licenses, grants, funders, communities and records

Merged Vuillaume requested to merge search_functions into master
All threads resolved!
1 file
+ 2
24
Compare changes
  • Side-by-side
  • Inline
@@ -759,30 +759,8 @@ def get_zenodo_records(search='', sandbox=False, **kwargs):
:return:
list of `Record`
"""
search = search.replace("/", " ") # zenodo can't handle '/' in search query
params = {
'q': search,
**kwargs
}
params.setdefault('size', 100)
def lowercase(param):
if isinstance(param, str):
param = param.lower()
if isinstance(param, list):
param = [char.lower() for char in param]
return param
for param_name in ['communities', 'type', 'file_type']:
if param_name in kwargs:
params[param_name] = lowercase(kwargs[param_name])
api_url = zenodo_sandbox_api_url if sandbox else zenodo_api_url
url = api_url + "/records?" + urlencode(params, doseq=True)
recs = [Record(hit) for hit in requests.get(url).json()["hits"]["hits"]]
hits = search_records(search=search, sandbox=sandbox, **kwargs)
recs = [Record(hit) for hit in hits]
if not recs:
raise LookupError(f"No records found for search {search}")
Loading