How do I write good/correct __init__.py files
<p>My package have the following structure:</p>

<pre><code>mobilescouter/
    __init__.py #1
    mapper/
        __init__.py  #2
        lxml/
            __init__.py #3
            vehiclemapper.py
            vehiclefeaturemapper.py
            vehiclefeaturesetmapper.py
        ...
        basemapper.py
   vehicle/
        __init__.py #4
        vehicle.py
        vehiclefeature.py
        vehiclefeaturemapper.py
   ...
</code></pre>

<p>I'm always not sure how the <code>__init__.py</code> files are written good and correctly.<br/> The <code>__init__.py #1</code> looks like:</p>

<pre><code>__all__ = ['mapper', 'vehicle']
import mapper
import vehicle
</code></pre>

<p>But how should for example <code>__init__.py #2</code> look like? Mine is:</p>

<pre><code>__all__ = ['basemapper', 'lxml']
from basemaper import *
import lxml
</code></pre>

<p>Is it recommend to use <code>__all__</code>? </p>
