Skip to content
This repository was archived by the owner on Feb 10, 2026. It is now read-only.

Commit ae07a26

Browse files
author
Reece Hart
committed
move package back to eutils (not biocommons.eutils) as with 0.6.0
1 parent 2267bff commit ae07a26

33 files changed

+58
-43
lines changed

docs/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
import sphinx_rtd_theme
1616

17-
from biocommons import eutils
17+
import eutils
1818

1919
# If extensions (or modules to document with autodoc) are in another directory,
2020
# add these directories to sys.path here. If the directory is relative to the

sbin/eutils-shell

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,48 +2,61 @@
22

33
import gzip
44
import logging
5-
import os
5+
from pathlib import Path
66

77
import lxml.etree as le
88

9-
from biocommons.eutils import Client
9+
from eutils import Client
10+
from eutils._internal.xmlfacades.entrezgeneset import EntrezgeneSet
1011

1112
# new style
12-
from biocommons.eutils._internal.xmlfacades.esearchresult import ESearchResult
13-
from biocommons.eutils._internal.xmlfacades.entrezgeneset import EntrezgeneSet
13+
from eutils._internal.xmlfacades.esearchresult import ESearchResult
1414

1515
logging.basicConfig(level=logging.DEBUG)
16-
17-
data_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)),'..','tests','data')
16+
data_dir = Path(__file__).resolve().parent.parent / "tests" / "data"
1817
ec = Client()
1918

2019

2120
if True:
22-
xml = gzip.open(os.path.join(data_dir,'esearch.fcgi?term=hart%20rk[author].xml.gz')).read()
21+
with gzip.open(data_dir / "esearch.fcgi?term=hart%20rk[author].xml.gz") as f:
22+
xml = f.read()
2323
doc = le.XML(xml)
2424
esr = ESearchResult(doc)
2525

2626

2727
if False:
28-
xml = gzip.open(os.path.join(data_dir,'entrezgeneset.xml.gz')).read()
29-
doc = lxml.etree.XML(xml)
28+
with gzip.open(data_dir / "entrezgeneset.xml.gz") as f:
29+
xml = f.read()
30+
doc = le.XML(xml)
3031
egs = EntrezgeneSet(doc)
3132

32-
print("{} genes in EntrezgeneSet".format(len(egs.entrezgenes)))
33+
print(f"{len(egs.entrezgenes)} genes in EntrezgeneSet")
3334
for eg in egs:
34-
print("\t".join(map(str,[eg.gene_id,eg.maploc,eg.hgnc,
35-
eg.summary[:30] + "..." if eg.summary else None])))
35+
print(
36+
"\t".join(
37+
map(
38+
str,
39+
[
40+
eg.gene_id,
41+
eg.maploc,
42+
eg.hgnc,
43+
eg.summary[:30] + "..." if eg.summary else None,
44+
],
45+
)
46+
)
47+
)
3648

3749
if False:
38-
esr = ec.esearch(db='gene',term='tumor necrosis factor')
39-
egs = ec.efetch(db='gene',id=esr.ids[0])
50+
esr = ec.esearch(db="gene", term="tumor necrosis factor")
51+
egs = ec.efetch(db="gene", id=esr.ids[0])
4052
eg = egs.entrezgenes[0]
4153

4254
if False:
43-
esr = ec.esearch(db='nuccore',term='NM_000533.3')
44-
gbset = ec.efetch(db='nuccore',id=esr.ids[0])
55+
esr = ec.esearch(db="nuccore", term="NM_000533.3")
56+
gbset = ec.efetch(db="nuccore", id=esr.ids[0])
4557
gbseq = gbset.gbseqs[0]
4658

4759

48-
import IPython; IPython.embed()
60+
import IPython # noqa: E402
4961

62+
IPython.embed()

sbin/test-script

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,35 @@ This script queries NCBI for human gene records in Entrez.
66
77
"""
88

9-
import csv
10-
import logging
119
import lxml.etree as le
1210
import requests
13-
import sys
14-
import time
1511

16-
from biocommons.eutils._internal.xmlfacades.entrezgeneset import EntrezgeneSet
12+
from eutils._internal.xmlfacades.entrezgeneset import EntrezgeneSet
1713

18-
eutils_base_url = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils'
14+
eutils_base_url = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils"
1915
retmax_request = 250
2016

17+
2118
def fetch_gene(hgnc):
2219
# search for all human genes, saving history at NCBI
23-
esearch_url = eutils_base_url+"/esearch.fcgi?db=gene&usehistory=y&retmax=0&term=human[orgn] AND alive[property] AND {hgnc}[PREF]".format(hgnc=hgnc)
24-
r1 = requests.get(esearch_url)
20+
esearch_url = (
21+
eutils_base_url
22+
+ f"/esearch.fcgi?db=gene&usehistory=y&retmax=0&term=human[orgn] AND alive[property] AND {hgnc}[PREF]"
23+
)
24+
r1 = requests.get(esearch_url, timeout=10)
2525
r1_x = le.XML(r1.content)
26-
webenv_key = r1_x.find('WebEnv').text
27-
query_key = r1_x.find('QueryKey').text
28-
count = int(r1_x.find('Count').text)
29-
assert count == 1, "hgnc {} returned {} hits".format(hgnc,count)
30-
31-
efetch_url = eutils_base_url+"/efetch.fcgi?db=gene&usehistory=&retmode=XML&WebEnv={}&query_key={}&retmax={}".format(webenv_key,query_key,retmax_request)
32-
r2 = requests.get(efetch_url + "&retstart=" + str(0))
26+
webenv_key = r1_x.find("WebEnv").text
27+
query_key = r1_x.find("QueryKey").text
28+
count = int(r1_x.find("Count").text)
29+
assert count == 1, f"hgnc {hgnc} returned {count} hits" # noqa: S101
30+
31+
efetch_url = (
32+
eutils_base_url
33+
+ f"/efetch.fcgi?db=gene&usehistory=&retmode=XML&WebEnv={webenv_key}&query_key={query_key}&retmax={retmax_request}"
34+
)
35+
r2 = requests.get(efetch_url + "&retstart=" + str(0), timeout=10)
3336
egs = EntrezgeneSet(le.XML(r2.content))
34-
assert len(egs.entrezgenes) == 1, "more than one entrezgene entry in efetch reply"
37+
assert len(egs.entrezgenes) == 1, "more than one entrezgene entry in efetch reply" # noqa: S101
3538

3639
return egs.entrezgenes[0]
3740

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)