Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
https://stackoverflow.com/a/16493707/4651668
Command modeled after:
git --work-tree=webpage checkout upstream/gh-pages -- v
"""
if not args.checkout:
return
command = [
"git",
f"--work-tree={args.webpage_directory}",
"checkout",
args.checkout,
"--",
"v",
]
logging.info(
f"Attempting checkout with the following command:\n{shlex_join(command)}"
)
process = subprocess.run(command, stderr=subprocess.PIPE)
if process.returncode == 0:
# Addresses an odd behavior where git checkout stages v/* files that don't actually exist
subprocess.run(["git", "add", "v"])
else:
stderr = process.stderr.decode()
message = (
f"Checkout returned a nonzero exit status. See stderr:\n{stderr.rstrip()}"
)
if "pathspec" in stderr:
message += (
"\nManubot note: if there are no preexisting webpage versions (like for a newly created manuscript), "
"the pathspec error above is expected and can be safely ignored."
) # see https://github.com/manubot/rootstock/issues/183
logging.warning(message)
def test_citation_to_citeproc_pmc():
"""
https://api.ncbi.nlm.nih.gov/lit/ctxp/v1/pmc/?format=csl&id=3041534
"""
citation = f'pmcid:PMC3041534'
citeproc = citation_to_citeproc(citation)
assert citeproc['id'] == 'RoOhUFKU'
assert citeproc['URL'] == 'https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3041534/'
assert citeproc['container-title-short'] == 'AMIA Jt Summits Transl Sci Proc'
assert citeproc['title'] == 'Secondary Use of EHR: Data Quality Issues and Informatics Opportunities'
authors = citeproc['author']
assert authors[0]['family'] == 'Botsis'
assert citeproc['PMID'] == '21347133'
assert citeproc['PMCID'] == 'PMC3041534'
def test_citation_to_citeproc_pubmed_2():
"""
Generated from XML returned by
https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=27094199&rettype=full
"""
citation = 'pmid:27094199'
citeproc = citation_to_citeproc(citation)
print(citeproc)
assert citeproc['id'] == 'alaFV9OY'
assert citeproc['type'] == 'article-journal'
assert citeproc['URL'] == 'https://www.ncbi.nlm.nih.gov/pubmed/27094199'
assert citeproc['container-title'] == 'Circulation. Cardiovascular genetics'
assert citeproc['container-title-short'] == 'Circ Cardiovasc Genet'
assert citeproc['page'] == '179-84'
assert citeproc['title'] == 'Genetic Association-Guided Analysis of Gene Networks for the Study of Complex Traits.'
assert citeproc['issued']['date-parts'] == [[2016, 4]]
authors = citeproc['author']
assert authors[0]['given'] == 'Casey S'
assert authors[0]['family'] == 'Greene'
assert citeproc['PMID'] == '27094199'
assert citeproc['DOI'] == '10.1161/circgenetics.115.001181'
def test_citation_to_citeproc_isbn():
csl_item = citation_to_citeproc('isbn:9780387950693')
assert csl_item['type'] == 'book'
assert csl_item['title'] == 'Complex analysis'
def test_citation_to_citeproc_doi_datacite():
citation = 'doi:10.7287/peerj.preprints.3100v1'
citeproc = citation_to_citeproc(citation)
assert citeproc['id'] == '11cb5HXoY'
assert citeproc['URL'] == 'https://doi.org/10.7287/peerj.preprints.3100v1'
assert citeproc['DOI'] == '10.7287/peerj.preprints.3100v1'
assert citeproc['type'] == 'report'
assert citeproc['title'] == 'Sci-Hub provides access to nearly all scholarly literature'
authors = citeproc['author']
assert authors[0]['family'] == 'Himmelstein'
assert authors[-1]['family'] == 'Greene'
def test_citation_to_citeproc_arxiv():
citation = 'arxiv:cond-mat/0703470v2'
citeproc = citation_to_citeproc(citation)
assert citeproc['id'] == 'ES92tcdg'
assert citeproc['URL'] == 'https://arxiv.org/abs/cond-mat/0703470v2'
assert citeproc['number'] == 'cond-mat/0703470v2'
assert citeproc['version'] == '2'
assert citeproc['type'] == 'report'
assert citeproc['container-title'] == 'arXiv'
assert citeproc['title'] == 'Portraits of Complex Networks'
authors = citeproc['author']
assert authors[0]['literal'] == 'J. P. Bagrow'
assert citeproc['DOI'] == '10.1209/0295-5075/81/68004'
def test_citation_to_citeproc_pubmed_book():
"""
Extracting CSL metadata from books in PubMed is not supported.
Logic not implemented to parse XML returned by
https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=29227604&rettype=full
"""
with pytest.raises(NotImplementedError):
citation_to_citeproc('pmid:29227604')
def test_citation_to_citeproc_pubmed_with_numeric_month():
"""
Generated from XML returned by
https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=29028984&rettype=full
See https://github.com/greenelab/manubot/issues/69
"""
citation = 'pmid:29028984'
citeproc = citation_to_citeproc(citation)
print(citeproc)
assert citeproc['issued']['date-parts'] == [[2018, 3, 15]]
def test_citation_to_citeproc_pubmed_1():
"""
Generated from XML returned by
https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=21347133&rettype=full
"""
citation = 'pmid:21347133'
citeproc = citation_to_citeproc(citation)
assert citeproc['id'] == 'y9ONtSZ9'
assert citeproc['type'] == 'article-journal'
assert citeproc['URL'] == 'https://www.ncbi.nlm.nih.gov/pubmed/21347133'
assert citeproc['container-title'] == 'AMIA Joint Summits on Translational Science proceedings. AMIA Joint Summits on Translational Science'
assert citeproc['title'] == 'Secondary Use of EHR: Data Quality Issues and Informatics Opportunities.'
assert citeproc['issued']['date-parts'] == [[2010, 3, 1]]
authors = citeproc['author']
assert authors[0]['given'] == 'Taxiarchis'
assert authors[0]['family'] == 'Botsis'
assert citeproc['PMID'] == '21347133'
assert citeproc['PMCID'] == 'PMC3041534'
def test_version():
stdout = subprocess.check_output(
['manubot', '--version'],
universal_newlines=True,
)
version_str = f'v{manubot.__version__}'
assert version_str == stdout.rstrip()