[Biopython-dev] Setting the NCBI Entrez tool parameter globally

Peter biopython at maubp.freeserve.co.uk
Mon Mar 29 11:05:25 UTC 2010


Hi Michiel et al,

The NCBI looks to be encouraging more use of the email and tool
parameters in their revised guidelines. To make this easy to use
we have a global setting for the email - I think we should do the
same for the tool (for when users are building their own application
or script on top of Biopython). Something like this patch?

What do you think?

Peter

------------------------

diff --git a/Bio/Entrez/__init__.py b/Bio/Entrez/__init__.py
index 33d8d14..f64015c 100644
--- a/Bio/Entrez/__init__.py
+++ b/Bio/Entrez/__init__.py
@@ -12,6 +12,9 @@ http://www.ncbi.nlm.nih.gov/Entrez/
 A list of the Entrez utilities is available at:
 http://www.ncbi.nlm.nih.gov/entrez/utils/utils_index.html

+Variables:
+email        Set the Entrez email parameter globally (default is not set).
+tool         Set the Entrez tool parameter globally (defaults to biopython).

 Functions:
 efetch       Retrieves records in the requested format from a list of one or
@@ -50,7 +53,7 @@ from Bio import File


 email = None
-
+tool = "biopython"

 # XXX retmode?
 def epost(db, **keywds):
@@ -275,6 +278,7 @@ def _open(cgi, params={}, post=False):
     This function also enforces the "up to three queries per second rule"
     to avoid abusing the NCBI servers.
     """
+    global tool, email
     # NCBI requirement: At most three queries per second.
     # Equivalently, at least a third of second between queries
     delay = 0.333333334
@@ -291,7 +295,7 @@ def _open(cgi, params={}, post=False):
             del params[key]
     # Tell Entrez that we are using Biopython
     if not "tool" in params:
-        params["tool"] = "biopython"
+        params["tool"] = tool
     # Tell Entrez who we are
     if not "email" in params:
         if email!=None:



More information about the Biopython-dev mailing list