Skip to content

Commit

Permalink
Merge pull request #1441 from henrykironde/testcite
Browse files Browse the repository at this point in the history
Add citation lookup in Python interface
  • Loading branch information
apoorvaeternity committed Mar 5, 2020
2 parents be301cf + a6c2036 commit f88c187
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 9 deletions.
13 changes: 5 additions & 8 deletions retriever/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@

from retriever.engines import engine_list, choose_engine
from retriever.lib.datasets import datasets, dataset_names, license
from retriever.lib.defaults import sample_script, CITATION, SCRIPT_SEARCH_PATHS, LICENSE
from retriever.lib.defaults import sample_script, CITATION, SCRIPT_SEARCH_PATHS, LICENSE, VERSION
from retriever.lib.engine_tools import reset_retriever
from retriever.lib.get_opts import parser
from retriever.lib.install import _install
from retriever.lib.repository import check_for_updates
from retriever.lib.scripts import SCRIPT_LIST, reload_scripts, get_script, name_matches
from retriever.lib.scripts import SCRIPT_LIST, reload_scripts, get_script, name_matches, get_script_citation
from retriever.lib.create_scripts import create_package
from retriever.lib.provenance import commit, commit_log

Expand Down Expand Up @@ -66,12 +66,9 @@ def main():
print("\nCitation for retriever:\n")
print(CITATION)
else:
scripts = name_matches(script_list, args.dataset)
for dataset in scripts:
print("\nDataset: {}".format(dataset.name))
print("Citation: {}".format(dataset.citation))
print("Description: {}\n".format(dataset.description))

citations = get_script_citation(args.dataset)
for citation in citations:
print("Citation: {}".format(citation))
return

if args.command == 'license':
Expand Down
3 changes: 2 additions & 1 deletion retriever/lib/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,12 @@
from .scripts import reload_scripts
from .scripts import get_script_upstream
from .scripts import get_dataset_names_upstream
from .scripts import get_script_citation

__all__ = [
'check_for_updates', 'commit', 'commit_log', 'create_package', 'datasets',
'dataset_names', 'download', 'reload_scripts', 'reset_retriever', 'install_csv',
'install_mysql', 'install_postgres', 'install_sqlite', 'install_msaccess',
'install_json', 'install_xml', 'fetch', 'get_script_upstream',
'get_dataset_names_upstream'
'get_dataset_names_upstream', 'get_script_citation'
]
13 changes: 13 additions & 0 deletions retriever/lib/scripts.py
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,19 @@ def get_script_version_upstream(dataset, repo=REPOSITORY):
return version


def get_script_citation(dataset=None):
"""Get the citation list for a script"""
if dataset is None:
return [VERSION]
scripts = name_matches(reload_scripts(), dataset)
if scripts:
citations = []
for script in scripts:
citations.append(script.citation)
return citations
return None


def get_dataset_names_upstream(keywords=None, licenses=None, repo=REPOSITORY):
"""Search all datasets upstream by keywords and licenses. If the keywords
or licenses argument is passed, Github's search API is used for looking
Expand Down
6 changes: 6 additions & 0 deletions test/test_retriever.py
Original file line number Diff line number Diff line change
Expand Up @@ -491,6 +491,12 @@ def test_format_insert_value_string_complex():
assert test_engine.format_insert_value(test_str, 'char') == test_str


def test_get_script_citation():
"""Test get citation of a script"""
cite = rt.get_script_citation("iris")
expected_cite = "R. A. Fisher. 1936."
assert expected_cite.lower() in cite[0].lower()

def test_getmd5_lines():
"""Test md5 sum calculation given a line."""
lines = ['a,b,c', '1,2,3', '4,5,6']
Expand Down

0 comments on commit f88c187

Please sign in to comment.