About the code comments for bootstrapping issues in collections.py and _abcoll.py (python 2.7.3)
<p>I am reading the source the collections module. The modue is the combination of the two files:  collections.py and _abcoll.py.
Here is the <a href="http://docs.python.org/library/collections.html" rel="nofollow">doc</a> of the module, and it contains links to the source code.</p>

<p>In the beginning of collections.py:</p>

<pre><code>__all__ = ['Counter', 'deque', 'defaultdict', 'namedtuple', 'OrderedDict']
# For bootstrapping reasons, the collection ABCs are defined in _abcoll.py.
# They should however be considered an integral part of collections.py.
from _abcoll import *
import _abcoll
__all__ += _abcoll.__all__
...
</code></pre>

<p>I don't quite understand what's the actual 'bootstrapping reasons', since in _abcoll.py:</p>

<pre><code> 6 DON'T USE THIS MODULE DIRECTLY!  The classes here should be imported
 7 via collections; they are defined here only to alleviate certain
 8 bootstrapping issues.  Unit tests are in test_collections.
 9 """
10 
11 from abc import ABCMeta, abstractmethod
12 import sys
13 
14 __all__ = ["Hashable", "Iterable", "Iterator",
15            "Sized", "Container", "Callable",
16            "Set", "MutableSet",
17            "Mapping", "MutableMapping",
18            "MappingView", "KeysView", "ItemsView", "ValuesView",
19            "Sequence", "MutableSequence",
20            ]
...
</code></pre>

<p>the <code>_abc.__all__</code> contains all the classes definitions in this file, and in collections.py, it imports * from <code>_abcoll</code> and append <code>_abcoll.__all__</code> to its own <code>__all__</code>. I didn't get it about why this way can 'alleviate certain bootstrapping issues'.</p>

<p>Any thoughts? Thanks</p>
