biopython/biopython — pull request #280 by edliaw (2014-01-28 22:37:54+00:00)
Title: Python 3 raises "dictionary size changed during iteration" during parameter modification in Entrez._open

The dict method for `items()` returns an iterator instead of a list in Python 3. Before trying to delete keys in a loop the items need to be copied to a list.

Here's the error that comes up if any of the params passed to `elink` are `None`:

File "...lib/python3.3/site-packages/Bio/Entrez/__init__.py", line 224, in elink
return _open(cgi, variables)
File "...lib/python3.3/site-packages/Bio/Entrez/__init__.py", line 429, in _open
for key, value in params.items():
RuntimeError: dictionary changed size during iteration