question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. ItΒ collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Multi-level package namespaces break with Setuptools 38

See original GitHub issue

Multi-level packages imported via setup.py develop work in Setuptools 37, but fail in Setuptools 38.x due to missing __init__.py in the upper levels of the namespace.

For example, after installing protobuf, a simple import google.protobuf.message should work but doesn’t. It can be hacked around by touch protobuf-3.5.0.post1-py2.7.egg/google/__init__.py in site-packages.

Setuptools 37.0

~/tmp/s38.py:

from setuptools import setup

setup(
    name="s38",
    version="0.0.1",
    install_requires=['protobuf', 'zope.deprecation', 'pastedeploy']
)
$ virtualenv --no-setuptools -p python2.7 setuptools37
Running virtualenv with interpreter /usr/local/bin/python2.7
New python executable in /Users/georgevreilly/setuptools37/bin/python2.7
Also creating executable in /Users/georgevreilly/setuptools37/bin/python
Installing pip, wheel...done.

$ source ./setuptools37/bin/activate

(setuptools37) $ pip install 'setuptools==37.0'
Collecting setuptools==37.0
  Using cached setuptools-37.0.0-py2.py3-none-any.whl
Installing collected packages: setuptools
Successfully installed setuptools-37.0.0

(setuptools37) $ python -c 'import setuptools; print(setuptools.__version__)'
37.0.0

(setuptools37) $ python ~/tmp/s38.py develop
    running develop
    running egg_info
    writing requirements to s38.egg-info/requires.txt
    writing s38.egg-info/PKG-INFO
    writing top-level names to s38.egg-info/top_level.txt
    writing dependency_links to s38.egg-info/dependency_links.txt
    reading manifest file 's38.egg-info/SOURCES.txt'
    writing manifest file 's38.egg-info/SOURCES.txt'
    running build_ext
    Creating /Users/georgevreilly/setuptools37/lib/python2.7/site-packages/s38.egg-link (link to .)
    Adding s38 0.0.1 to easy-install.pth file

    Installed /Users/georgevreilly
    Processing dependencies for s38==0.0.1
    Searching for pastedeploy
    Reading https://pypi.python.org/simple/pastedeploy/
    Downloading https://pypi.python.org/packages/0f/90/8e20cdae206c543ea10793cbf4136eb9a8b3f417e04e40a29d72d9922cbd/PasteDeploy-1.5.2.tar.gz#md5=352b7205c78c8de4987578d19431af3b
    Best match: PasteDeploy 1.5.2
    Processing PasteDeploy-1.5.2.tar.gz
    Writing /var/folders/2t/tx6brjtj21vfs98xcmfq1jvr0000gn/T/easy_install-TZTFFm/PasteDeploy-1.5.2/setup.cfg
    Running PasteDeploy-1.5.2/setup.py -q bdist_egg --dist-dir /var/folders/2t/tx6brjtj21vfs98xcmfq1jvr0000gn/T/easy_install-TZTFFm/PasteDeploy-1.5.2/egg-dist-tmp-a2YwV8
    creating /Users/georgevreilly/setuptools37/lib/python2.7/site-packages/PasteDeploy-1.5.2-py2.7.egg
    Extracting PasteDeploy-1.5.2-py2.7.egg to /Users/georgevreilly/setuptools37/lib/python2.7/site-packages
    Adding PasteDeploy 1.5.2 to easy-install.pth file

    Installed /Users/georgevreilly/setuptools37/lib/python2.7/site-packages/PasteDeploy-1.5.2-py2.7.egg
    Searching for zope.deprecation
    Reading https://pypi.python.org/simple/zope.deprecation/
    Downloading https://pypi.python.org/packages/a1/18/2dc5e6bfe64fdc3b79411b67464c55bb0b43b127051a20f7f492ab767758/zope.deprecation-4.3.0.tar.gz#md5=2166b2cb7e0e96a21104e6f8f9b696bb
    Best match: zope.deprecation 4.3.0
    Processing zope.deprecation-4.3.0.tar.gz
    Writing /var/folders/2t/tx6brjtj21vfs98xcmfq1jvr0000gn/T/easy_install-hWzALQ/zope.deprecation-4.3.0/setup.cfg
    Running zope.deprecation-4.3.0/setup.py -q bdist_egg --dist-dir /var/folders/2t/tx6brjtj21vfs98xcmfq1jvr0000gn/T/easy_install-hWzALQ/zope.deprecation-4.3.0/egg-dist-tmp-hANPOl
    warning: no previously-included files matching '*.pyc' found anywhere in distribution
    creating /Users/georgevreilly/setuptools37/lib/python2.7/site-packages/zope.deprecation-4.3.0-py2.7.egg
    Extracting zope.deprecation-4.3.0-py2.7.egg to /Users/georgevreilly/setuptools37/lib/python2.7/site-packages
    Adding zope.deprecation 4.3.0 to easy-install.pth file

    Installed /Users/georgevreilly/setuptools37/lib/python2.7/site-packages/zope.deprecation-4.3.0-py2.7.egg
    Searching for protobuf
    Reading https://pypi.python.org/simple/protobuf/
    Downloading https://pypi.python.org/packages/e9/96/61a46b3cb4b25e4eb1b685266a98463f4a1887b7d4bf8142986c443215d2/protobuf-3.5.0.post1-py2.7.egg#md5=17755f6139c1d85aa75d1c4d77d04cf5
    Best match: protobuf 3.5.0.post1
    Processing protobuf-3.5.0.post1-py2.7.egg
    creating /Users/georgevreilly/setuptools37/lib/python2.7/site-packages/protobuf-3.5.0.post1-py2.7.egg
    Extracting protobuf-3.5.0.post1-py2.7.egg to /Users/georgevreilly/setuptools37/lib/python2.7/site-packages
    Adding protobuf 3.5.0.post1 to easy-install.pth file

    Installed /Users/georgevreilly/setuptools37/lib/python2.7/site-packages/protobuf-3.5.0.post1-py2.7.egg
    Searching for six>=1.9
    Reading https://pypi.python.org/simple/six/
    Downloading https://pypi.python.org/packages/16/d8/bc6316cf98419719bd59c91742194c111b6f2e85abac88e496adefaf7afe/six-1.11.0.tar.gz#md5=d12789f9baf7e9fb2524c0c64f1773f8
    Best match: six 1.11.0
    Processing six-1.11.0.tar.gz
    Writing /var/folders/2t/tx6brjtj21vfs98xcmfq1jvr0000gn/T/easy_install-84SWpD/six-1.11.0/setup.cfg
    Running six-1.11.0/setup.py -q bdist_egg --dist-dir /var/folders/2t/tx6brjtj21vfs98xcmfq1jvr0000gn/T/easy_install-84SWpD/six-1.11.0/egg-dist-tmp-Kh1NXs
    no previously-included directories found matching 'documentation/_build'
    zip_safe flag not set; analyzing archive contents...
    six: module references __path__
    creating /Users/georgevreilly/setuptools37/lib/python2.7/site-packages/six-1.11.0-py2.7.egg
    Extracting six-1.11.0-py2.7.egg to /Users/georgevreilly/setuptools37/lib/python2.7/site-packages
    Adding six 1.11.0 to easy-install.pth file

    Installed /Users/georgevreilly/setuptools37/lib/python2.7/site-packages/six-1.11.0-py2.7.egg
    Searching for setuptools==37.0.0
    Best match: setuptools 37.0.0
    Adding setuptools 37.0.0 to easy-install.pth file
    Installing easy_install script to /Users/georgevreilly/setuptools37/bin
    Installing easy_install-3.6 script to /Users/georgevreilly/setuptools37/bin

    Using /Users/georgevreilly/setuptools37/lib/python2.7/site-packages
    Finished processing dependencies for s38==0.0.1

(setuptools37) $ lssitepackages
    PasteDeploy-1.5.2-py2.7.egg      pkg_resources                    six-1.11.0-py2.7.egg
    easy-install.pth                 protobuf-3.5.0.post1-py2.7.egg   wheel
    easy_install.py                  s38.egg-link                     wheel-0.30.0.dist-info
    easy_install.pyc                 setuptools                       zope.deprecation-4.3.0-py2.7.egg
    pip                              setuptools-37.0.0.dist-info
    pip-9.0.1.dist-info              setuptools.pth

(setuptools37) $ python -c 'from paste.deploy.loadwsgi import AttrDict' && echo yes
yes

(setuptools37) $ python -c 'import google.protobuf.message' && echo yes
yes

(setuptools37) $ python -c 'from zope.deprecation import deprecated' && echo yes
yes

Setuptools 38.2.1

$ virtualenv -p python2.7 setuptools38b
    Running virtualenv with interpreter /usr/local/bin/python2.7
    New python executable in /Users/georgevreilly/setuptools38b/bin/python2.7
    Also creating executable in /Users/georgevreilly/setuptools38b/bin/python
    Installing setuptools, pip, wheel...done.

$ source setuptools38b/bin/activate

(setuptools38b) $ python -c 'import setuptools; print(setuptools.__version__)'
38.2.1

(setuptools38b) $ python ~/tmp/s38.py develop
    running develop
    running egg_info
    creating s38.egg-info
    writing requirements to s38.egg-info/requires.txt
    writing s38.egg-info/PKG-INFO
    writing top-level names to s38.egg-info/top_level.txt
    writing dependency_links to s38.egg-info/dependency_links.txt
    writing manifest file 's38.egg-info/SOURCES.txt'
    reading manifest file 's38.egg-info/SOURCES.txt'
    writing manifest file 's38.egg-info/SOURCES.txt'
    running build_ext
    Creating /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages/s38.egg-link (link to .)
    Adding s38 0.0.1 to easy-install.pth file

    Installed /Users/georgevreilly
    Processing dependencies for s38==0.0.1
    Searching for pastedeploy
    Reading https://pypi.python.org/simple/pastedeploy/
    Downloading https://pypi.python.org/packages/31/28/51201a54aeecbd02eff767d17050b302f6fd98fdfecb4e3f4c9301ba6ef8/PasteDeploy-1.5.2-py2.py3-none-any.whl#md5=1134e25af0d52190abd9f8d7c6867f9e
    Best match: PasteDeploy 1.5.2
    Processing PasteDeploy-1.5.2-py2.py3-none-any.whl
    Installing PasteDeploy-1.5.2-py2.py3-none-any.whl to /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages
    writing requirements to /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages/PasteDeploy-1.5.2-py2.7.egg/EGG-INFO/requires.txt
    Adding PasteDeploy 1.5.2 to easy-install.pth file

    Installed /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages/PasteDeploy-1.5.2-py2.7.egg
    Searching for zope.deprecation
    Reading https://pypi.python.org/simple/zope.deprecation/
    Downloading https://pypi.python.org/packages/ee/33/625098914ec59b3006adf2cdf44a721e9671f4836af9eeb8cbe14e485954/zope.deprecation-4.3.0-py2.py3-none-any.whl#md5=fb3b24ef645dcfaff8ab3028da7209f2
    Best match: zope.deprecation 4.3.0
    Processing zope.deprecation-4.3.0-py2.py3-none-any.whl
    Installing zope.deprecation-4.3.0-py2.py3-none-any.whl to /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages
    writing requirements to /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages/zope.deprecation-4.3.0-py2.7.egg/EGG-INFO/requires.txt
    Adding zope.deprecation 4.3.0 to easy-install.pth file

    Installed /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages/zope.deprecation-4.3.0-py2.7.egg
    Searching for protobuf
    Reading https://pypi.python.org/simple/protobuf/
    Downloading https://pypi.python.org/packages/74/34/52e4fcc023f36ba8c408765032e6b9052eff115b01a17e3d2af48fac3a97/protobuf-3.5.0.post1-py2.py3-none-any.whl#md5=74c4b42404b6f55348c280dc511b95c1
    Best match: protobuf 3.5.0.post1
    Processing protobuf-3.5.0.post1-py2.py3-none-any.whl
    Installing protobuf-3.5.0.post1-py2.py3-none-any.whl to /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages
    writing requirements to /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages/protobuf-3.5.0.post1-py2.7.egg/EGG-INFO/requires.txt
    Adding protobuf 3.5.0.post1 to easy-install.pth file

    Installed /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages/protobuf-3.5.0.post1-py2.7.egg
    Searching for six>=1.9
    Reading https://pypi.python.org/simple/six/
    Downloading https://pypi.python.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl#md5=866ab722be6bdfed6830f3179af65468
    Best match: six 1.11.0
    Processing six-1.11.0-py2.py3-none-any.whl
    Installing six-1.11.0-py2.py3-none-any.whl to /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages
    Adding six 1.11.0 to easy-install.pth file

    Installed /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages/six-1.11.0-py2.7.egg
    Searching for setuptools==38.2.1
    Best match: setuptools 38.2.1
    Adding setuptools 38.2.1 to easy-install.pth file
    Installing easy_install script to /Users/georgevreilly/setuptools38b/bin
    Installing easy_install-3.6 script to /Users/georgevreilly/setuptools38b/bin

    Using /Users/georgevreilly/setuptools38b/lib/python2.7/site-packages
    Finished processing dependencies for s38==0.0.1

(setuptools38b) $ lssitepackages
    PasteDeploy-1.5.2-py2.7.egg      pkg_resources                    six-1.11.0-py2.7.egg
    easy-install.pth                 protobuf-3.5.0.post1-py2.7.egg   wheel
    easy_install.py                  s38.egg-link                     wheel-0.30.0.dist-info
    easy_install.pyc                 setuptools                       zope.deprecation-4.3.0-py2.7.egg
    pip                              setuptools-38.2.1.dist-info
    pip-9.0.1.dist-info              setuptools.pth

(setuptools38b) $ python -c 'from paste.deploy.loadwsgi import AttrDict' && echo yes
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named paste.deploy.loadwsgi

(setuptools38b) $ python -c 'import google.protobuf.message' && echo yes
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named google.protobuf.message

(setuptools38b) $ python -c 'from zope.deprecation import deprecated' && echo yes
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named zope.deprecation

Diffing the Trees

(setuptools38b) $ diff -u <(tree setuptools37/lib/python2.7/site-packages) <(tree setuptools38b/lib/python2.7/site-packages)
--- /dev/fd/63	2017-11-26 19:06:51.000000000 -0800
+++ /dev/fd/62	2017-11-26 19:06:51.000000000 -0800
@@ -1,28 +1,23 @@
-setuptools37/lib/python2.7/site-packages
+setuptools38b/lib/python2.7/site-packages
 β”œβ”€β”€ PasteDeploy-1.5.2-py2.7.egg
 β”‚Β Β  β”œβ”€β”€ EGG-INFO
+β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DESCRIPTION.rst
 β”‚Β Β  β”‚Β Β  β”œβ”€β”€ PKG-INFO
-β”‚Β Β  β”‚Β Β  β”œβ”€β”€ SOURCES.txt
-β”‚Β Β  β”‚Β Β  β”œβ”€β”€ dependency_links.txt
+β”‚Β Β  β”‚Β Β  β”œβ”€β”€ RECORD
+β”‚Β Β  β”‚Β Β  β”œβ”€β”€ WHEEL
 β”‚Β Β  β”‚Β Β  β”œβ”€β”€ entry_points.txt
 β”‚Β Β  β”‚Β Β  β”œβ”€β”€ namespace_packages.txt
-β”‚Β Β  β”‚Β Β  β”œβ”€β”€ not-zip-safe
+β”‚Β Β  β”‚Β Β  β”œβ”€β”€ pydist.json
 β”‚Β Β  β”‚Β Β  β”œβ”€β”€ requires.txt
 β”‚Β Β  β”‚Β Β  └── top_level.txt
+β”‚Β Β  β”œβ”€β”€ PasteDeploy-1.5.2-py2.6-nspkg.pth
 β”‚Β Β  └── paste
-β”‚Β Β      β”œβ”€β”€ __init__.py
-β”‚Β Β      β”œβ”€β”€ __init__.pyc
 β”‚Β Β      └── deploy
 β”‚Β Β          β”œβ”€β”€ __init__.py
-β”‚Β Β          β”œβ”€β”€ __init__.pyc
 β”‚Β Β          β”œβ”€β”€ compat.py
-β”‚Β Β          β”œβ”€β”€ compat.pyc
 β”‚Β Β          β”œβ”€β”€ config.py
-β”‚Β Β          β”œβ”€β”€ config.pyc
 β”‚Β Β          β”œβ”€β”€ converters.py
-β”‚Β Β          β”œβ”€β”€ converters.pyc
 β”‚Β Β          β”œβ”€β”€ loadwsgi.py
-β”‚Β Β          β”œβ”€β”€ loadwsgi.pyc
 β”‚Β Β          β”œβ”€β”€ paster_templates
 β”‚Β Β          β”‚Β Β  └── paste_deploy
 β”‚Β Β          β”‚Β Β      β”œβ”€β”€ +package+
@@ -31,9 +26,7 @@
 β”‚Β Β          β”‚Β Β      └── docs
 β”‚Β Β          β”‚Β Β          └── devel_config.ini_tmpl
 β”‚Β Β          β”œβ”€β”€ paster_templates.py
-β”‚Β Β          β”œβ”€β”€ paster_templates.pyc
-β”‚Β Β          β”œβ”€β”€ util.py
-β”‚Β Β          └── util.pyc
+β”‚Β Β          └── util.py
 β”œβ”€β”€ easy-install.pth
 β”œβ”€β”€ easy_install.py
 β”œβ”€β”€ easy_install.pyc
@@ -607,210 +600,116 @@
 β”‚Β Β  └── py31compat.pyc
 β”œβ”€β”€ protobuf-3.5.0.post1-py2.7.egg
 β”‚Β Β  β”œβ”€β”€ EGG-INFO
+β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DESCRIPTION.rst
 β”‚Β Β  β”‚Β Β  β”œβ”€β”€ PKG-INFO
-β”‚Β Β  β”‚Β Β  β”œβ”€β”€ SOURCES.txt
-β”‚Β Β  β”‚Β Β  β”œβ”€β”€ dependency_links.txt
+β”‚Β Β  β”‚Β Β  β”œβ”€β”€ RECORD
+β”‚Β Β  β”‚Β Β  β”œβ”€β”€ WHEEL
+β”‚Β Β  β”‚Β Β  β”œβ”€β”€ metadata.json
 β”‚Β Β  β”‚Β Β  β”œβ”€β”€ namespace_packages.txt
-β”‚Β Β  β”‚Β Β  β”œβ”€β”€ not-zip-safe
 β”‚Β Β  β”‚Β Β  β”œβ”€β”€ requires.txt
 β”‚Β Β  β”‚Β Β  └── top_level.txt
-β”‚Β Β  └── google
-β”‚Β Β      β”œβ”€β”€ __init__.py
-β”‚Β Β      β”œβ”€β”€ __init__.pyc
-β”‚Β Β      └── protobuf
-β”‚Β Β          β”œβ”€β”€ __init__.py
-β”‚Β Β          β”œβ”€β”€ __init__.pyc
-β”‚Β Β          β”œβ”€β”€ any_pb2.py
-β”‚Β Β          β”œβ”€β”€ any_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ any_test_pb2.py
-β”‚Β Β          β”œβ”€β”€ any_test_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ api_pb2.py
-β”‚Β Β          β”œβ”€β”€ api_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ compiler
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ __init__.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ __init__.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ plugin_pb2.py
-β”‚Β Β          β”‚Β Β  └── plugin_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ descriptor.py
-β”‚Β Β          β”œβ”€β”€ descriptor.pyc
-β”‚Β Β          β”œβ”€β”€ descriptor_database.py
-β”‚Β Β          β”œβ”€β”€ descriptor_database.pyc
-β”‚Β Β          β”œβ”€β”€ descriptor_pb2.py
-β”‚Β Β          β”œβ”€β”€ descriptor_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ descriptor_pool.py
-β”‚Β Β          β”œβ”€β”€ descriptor_pool.pyc
-β”‚Β Β          β”œβ”€β”€ duration_pb2.py
-β”‚Β Β          β”œβ”€β”€ duration_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ empty_pb2.py
-β”‚Β Β          β”œβ”€β”€ empty_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ field_mask_pb2.py
-β”‚Β Β          β”œβ”€β”€ field_mask_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ internal
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ __init__.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ __init__.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ _parameterized.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ _parameterized.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ any_test_pb2.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ any_test_pb2.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ api_implementation.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ api_implementation.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ containers.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ containers.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ decoder.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ decoder.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ descriptor_database_test.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ descriptor_database_test.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ descriptor_pool_test.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ descriptor_pool_test.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ descriptor_pool_test1_pb2.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ descriptor_pool_test1_pb2.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ descriptor_pool_test2_pb2.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ descriptor_pool_test2_pb2.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ descriptor_test.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ descriptor_test.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ encoder.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ encoder.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ enum_type_wrapper.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ enum_type_wrapper.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ factory_test1_pb2.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ factory_test1_pb2.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ factory_test2_pb2.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ factory_test2_pb2.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ file_options_test_pb2.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ file_options_test_pb2.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ generator_test.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ generator_test.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ import_test_package
-β”‚Β Β          β”‚Β Β  β”‚Β Β  β”œβ”€β”€ __init__.py
-β”‚Β Β          β”‚Β Β  β”‚Β Β  β”œβ”€β”€ __init__.pyc
-β”‚Β Β          β”‚Β Β  β”‚Β Β  β”œβ”€β”€ inner_pb2.py
-β”‚Β Β          β”‚Β Β  β”‚Β Β  β”œβ”€β”€ inner_pb2.pyc
-β”‚Β Β          β”‚Β Β  β”‚Β Β  β”œβ”€β”€ outer_pb2.py
-β”‚Β Β          β”‚Β Β  β”‚Β Β  └── outer_pb2.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ json_format_test.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ json_format_test.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ message_factory_test.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ message_factory_test.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ message_listener.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ message_listener.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ message_set_extensions_pb2.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ message_set_extensions_pb2.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ message_test.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ message_test.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ missing_enum_values_pb2.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ missing_enum_values_pb2.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ more_extensions_dynamic_pb2.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ more_extensions_dynamic_pb2.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ more_extensions_pb2.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ more_extensions_pb2.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ more_messages_pb2.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ more_messages_pb2.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ packed_field_test_pb2.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ packed_field_test_pb2.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ proto_builder_test.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ proto_builder_test.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ python_message.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ python_message.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ reflection_test.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ reflection_test.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ service_reflection_test.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ service_reflection_test.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ symbol_database_test.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ symbol_database_test.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ test_bad_identifiers_pb2.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ test_bad_identifiers_pb2.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ test_util.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ test_util.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ testing_refleaks.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ testing_refleaks.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ text_encoding_test.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ text_encoding_test.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ text_format_test.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ text_format_test.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ type_checkers.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ type_checkers.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ unknown_fields_test.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ unknown_fields_test.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ well_known_types.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ well_known_types.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ well_known_types_test.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ well_known_types_test.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ wire_format.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ wire_format.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ wire_format_test.py
-β”‚Β Β          β”‚Β Β  └── wire_format_test.pyc
-β”‚Β Β          β”œβ”€β”€ json_format.py
-β”‚Β Β          β”œβ”€β”€ json_format.pyc
-β”‚Β Β          β”œβ”€β”€ map_proto2_unittest_pb2.py
-β”‚Β Β          β”œβ”€β”€ map_proto2_unittest_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ map_unittest_pb2.py
-β”‚Β Β          β”œβ”€β”€ map_unittest_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ message.py
-β”‚Β Β          β”œβ”€β”€ message.pyc
-β”‚Β Β          β”œβ”€β”€ message_factory.py
-β”‚Β Β          β”œβ”€β”€ message_factory.pyc
-β”‚Β Β          β”œβ”€β”€ proto_builder.py
-β”‚Β Β          β”œβ”€β”€ proto_builder.pyc
-β”‚Β Β          β”œβ”€β”€ pyext
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ __init__.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ __init__.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ cpp_message.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ cpp_message.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ python_pb2.py
-β”‚Β Β          β”‚Β Β  └── python_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ reflection.py
-β”‚Β Β          β”œβ”€β”€ reflection.pyc
-β”‚Β Β          β”œβ”€β”€ service.py
-β”‚Β Β          β”œβ”€β”€ service.pyc
-β”‚Β Β          β”œβ”€β”€ service_reflection.py
-β”‚Β Β          β”œβ”€β”€ service_reflection.pyc
-β”‚Β Β          β”œβ”€β”€ source_context_pb2.py
-β”‚Β Β          β”œβ”€β”€ source_context_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ struct_pb2.py
-β”‚Β Β          β”œβ”€β”€ struct_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ symbol_database.py
-β”‚Β Β          β”œβ”€β”€ symbol_database.pyc
-β”‚Β Β          β”œβ”€β”€ test_messages_proto2_pb2.py
-β”‚Β Β          β”œβ”€β”€ test_messages_proto2_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ test_messages_proto3_pb2.py
-β”‚Β Β          β”œβ”€β”€ test_messages_proto3_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ text_encoding.py
-β”‚Β Β          β”œβ”€β”€ text_encoding.pyc
-β”‚Β Β          β”œβ”€β”€ text_format.py
-β”‚Β Β          β”œβ”€β”€ text_format.pyc
-β”‚Β Β          β”œβ”€β”€ timestamp_pb2.py
-β”‚Β Β          β”œβ”€β”€ timestamp_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ type_pb2.py
-β”‚Β Β          β”œβ”€β”€ type_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ unittest_arena_pb2.py
-β”‚Β Β          β”œβ”€β”€ unittest_arena_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ unittest_custom_options_pb2.py
-β”‚Β Β          β”œβ”€β”€ unittest_custom_options_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ unittest_import_pb2.py
-β”‚Β Β          β”œβ”€β”€ unittest_import_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ unittest_import_public_pb2.py
-β”‚Β Β          β”œβ”€β”€ unittest_import_public_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ unittest_mset_pb2.py
-β”‚Β Β          β”œβ”€β”€ unittest_mset_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ unittest_mset_wire_format_pb2.py
-β”‚Β Β          β”œβ”€β”€ unittest_mset_wire_format_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ unittest_no_arena_import_pb2.py
-β”‚Β Β          β”œβ”€β”€ unittest_no_arena_import_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ unittest_no_arena_pb2.py
-β”‚Β Β          β”œβ”€β”€ unittest_no_arena_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ unittest_no_generic_services_pb2.py
-β”‚Β Β          β”œβ”€β”€ unittest_no_generic_services_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ unittest_pb2.py
-β”‚Β Β          β”œβ”€β”€ unittest_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ unittest_proto3_arena_pb2.py
-β”‚Β Β          β”œβ”€β”€ unittest_proto3_arena_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ util
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ __init__.py
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ __init__.pyc
-β”‚Β Β          β”‚Β Β  β”œβ”€β”€ json_format_proto3_pb2.py
-β”‚Β Β          β”‚Β Β  └── json_format_proto3_pb2.pyc
-β”‚Β Β          β”œβ”€β”€ wrappers_pb2.py
-β”‚Β Β          └── wrappers_pb2.pyc
+β”‚Β Β  β”œβ”€β”€ google
+β”‚Β Β  β”‚Β Β  └── protobuf
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ __init__.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ any_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ any_test_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ api_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ compiler
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ __init__.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  └── plugin_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ descriptor.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ descriptor_database.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ descriptor_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ descriptor_pool.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ duration_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ empty_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ field_mask_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ internal
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ __init__.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ _parameterized.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ any_test_pb2.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ api_implementation.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ containers.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ decoder.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ descriptor_database_test.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ descriptor_pool_test.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ descriptor_pool_test1_pb2.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ descriptor_pool_test2_pb2.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ descriptor_test.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ encoder.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ enum_type_wrapper.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ factory_test1_pb2.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ factory_test2_pb2.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ file_options_test_pb2.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ generator_test.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ import_test_package
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ __init__.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ inner_pb2.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  └── outer_pb2.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ json_format_test.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ message_factory_test.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ message_listener.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ message_set_extensions_pb2.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ message_test.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ missing_enum_values_pb2.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ more_extensions_dynamic_pb2.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ more_extensions_pb2.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ more_messages_pb2.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ packed_field_test_pb2.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ proto_builder_test.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ python_message.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ reflection_test.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ service_reflection_test.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ symbol_database_test.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ test_bad_identifiers_pb2.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ test_util.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ testing_refleaks.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ text_encoding_test.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ text_format_test.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ type_checkers.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ unknown_fields_test.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ well_known_types.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ well_known_types_test.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ wire_format.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  └── wire_format_test.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ json_format.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ map_proto2_unittest_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ map_unittest_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ message.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ message_factory.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ proto_builder.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ pyext
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ __init__.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ cpp_message.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  └── python_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ reflection.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ service.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ service_reflection.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ source_context_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ struct_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ symbol_database.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ test_messages_proto2_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ test_messages_proto3_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ text_encoding.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ text_format.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ timestamp_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ type_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ unittest_arena_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ unittest_custom_options_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ unittest_import_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ unittest_import_public_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ unittest_mset_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ unittest_mset_wire_format_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ unittest_no_arena_import_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ unittest_no_arena_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ unittest_no_generic_services_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ unittest_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ unittest_proto3_arena_pb2.py
+β”‚Β Β  β”‚Β Β      β”œβ”€β”€ util
+β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ __init__.py
+β”‚Β Β  β”‚Β Β      β”‚Β Β  └── json_format_proto3_pb2.py
+β”‚Β Β  β”‚Β Β      └── wrappers_pb2.py
+β”‚Β Β  └── protobuf-3.5.0.post1-py2.7-nspkg.pth
 β”œβ”€β”€ s38.egg-link
 β”œβ”€β”€ setuptools
 β”‚Β Β  β”œβ”€β”€ __init__.py
@@ -887,6 +786,8 @@
 β”‚Β Β  β”œβ”€β”€ extern
 β”‚Β Β  β”‚Β Β  β”œβ”€β”€ __init__.py
 β”‚Β Β  β”‚Β Β  └── __init__.pyc
+β”‚Β Β  β”œβ”€β”€ glibc.py
+β”‚Β Β  β”œβ”€β”€ glibc.pyc
 β”‚Β Β  β”œβ”€β”€ glob.py
 β”‚Β Β  β”œβ”€β”€ glob.pyc
 β”‚Β Β  β”œβ”€β”€ gui-32.exe
@@ -904,6 +805,8 @@
 β”‚Β Β  β”œβ”€β”€ namespaces.pyc
 β”‚Β Β  β”œβ”€β”€ package_index.py
 β”‚Β Β  β”œβ”€β”€ package_index.pyc
+β”‚Β Β  β”œβ”€β”€ pep425tags.py
+β”‚Β Β  β”œβ”€β”€ pep425tags.pyc
 β”‚Β Β  β”œβ”€β”€ py27compat.py
 β”‚Β Β  β”œβ”€β”€ py27compat.pyc
 β”‚Β Β  β”œβ”€β”€ py31compat.py
@@ -924,9 +827,11 @@
 β”‚Β Β  β”œβ”€β”€ unicode_utils.pyc
 β”‚Β Β  β”œβ”€β”€ version.py
 β”‚Β Β  β”œβ”€β”€ version.pyc
+β”‚Β Β  β”œβ”€β”€ wheel.py
+β”‚Β Β  β”œβ”€β”€ wheel.pyc
 β”‚Β Β  β”œβ”€β”€ windows_support.py
 β”‚Β Β  └── windows_support.pyc
-β”œβ”€β”€ setuptools-37.0.0.dist-info
+β”œβ”€β”€ setuptools-38.2.1.dist-info
 β”‚Β Β  β”œβ”€β”€ DESCRIPTION.rst
 β”‚Β Β  β”œβ”€β”€ INSTALLER
 β”‚Β Β  β”œβ”€β”€ LICENSE.txt
@@ -941,13 +846,13 @@
 β”œβ”€β”€ setuptools.pth
 β”œβ”€β”€ six-1.11.0-py2.7.egg
 β”‚Β Β  β”œβ”€β”€ EGG-INFO
+β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DESCRIPTION.rst
 β”‚Β Β  β”‚Β Β  β”œβ”€β”€ PKG-INFO
-β”‚Β Β  β”‚Β Β  β”œβ”€β”€ SOURCES.txt
-β”‚Β Β  β”‚Β Β  β”œβ”€β”€ dependency_links.txt
-β”‚Β Β  β”‚Β Β  β”œβ”€β”€ not-zip-safe
+β”‚Β Β  β”‚Β Β  β”œβ”€β”€ RECORD
+β”‚Β Β  β”‚Β Β  β”œβ”€β”€ WHEEL
+β”‚Β Β  β”‚Β Β  β”œβ”€β”€ metadata.json
 β”‚Β Β  β”‚Β Β  └── top_level.txt
-β”‚Β Β  β”œβ”€β”€ six.py
-β”‚Β Β  └── six.pyc
+β”‚Β Β  └── six.py
 β”œβ”€β”€ wheel
 β”‚Β Β  β”œβ”€β”€ __init__.py
 β”‚Β Β  β”œβ”€β”€ __init__.pyc
@@ -999,24 +904,20 @@
 β”‚Β Β  └── top_level.txt
 └── zope.deprecation-4.3.0-py2.7.egg
     β”œβ”€β”€ EGG-INFO
+    β”‚Β Β  β”œβ”€β”€ DESCRIPTION.rst
     β”‚Β Β  β”œβ”€β”€ PKG-INFO
-    β”‚Β Β  β”œβ”€β”€ SOURCES.txt
-    β”‚Β Β  β”œβ”€β”€ dependency_links.txt
+    β”‚Β Β  β”œβ”€β”€ RECORD
+    β”‚Β Β  β”œβ”€β”€ WHEEL
+    β”‚Β Β  β”œβ”€β”€ metadata.json
     β”‚Β Β  β”œβ”€β”€ namespace_packages.txt
-    β”‚Β Β  β”œβ”€β”€ not-zip-safe
     β”‚Β Β  β”œβ”€β”€ requires.txt
     β”‚Β Β  └── top_level.txt
-    └── zope
-        β”œβ”€β”€ __init__.py
-        β”œβ”€β”€ __init__.pyc
-        └── deprecation
-            β”œβ”€β”€ __init__.py
-            β”œβ”€β”€ __init__.pyc
-            β”œβ”€β”€ deprecation.py
-            β”œβ”€β”€ deprecation.pyc
-            β”œβ”€β”€ fixture.py
-            β”œβ”€β”€ fixture.pyc
-            β”œβ”€β”€ tests.py
-            └── tests.pyc
+    β”œβ”€β”€ zope
+    β”‚Β Β  └── deprecation
+    β”‚Β Β      β”œβ”€β”€ __init__.py
+    β”‚Β Β      β”œβ”€β”€ deprecation.py
+    β”‚Β Β      β”œβ”€β”€ fixture.py
+    β”‚Β Β      └── tests.py
+    └── zope.deprecation-4.3.0-py3.6-nspkg.pth

-69 directories, 950 files
+69 directories, 851 files

Issue Analytics

  • State:closed
  • Created 6 years ago
  • Reactions:4
  • Comments:11 (11 by maintainers)

github_iconTop GitHub Comments

2reactions
benoit-pierrecommented, Nov 27, 2017

Proposed fix here: #1215

0reactions
leorochaelcommented, Dec 1, 2017

It’s still closed πŸ˜‰

And I can’t reproduce it either. don’t know what I did wrong the first time on my reproduction. Sorry for the noise.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Packaging namespace packages
Namespace packages allow you to split the sub-packages and modules within a single package across multiple, separate distribution packages (referred to asΒ ...
Read more >
Why does setup.py sweeps the content of the namespace ...
I'm using namespaces with setuptools to distribute a same module in two different repositories. The goal is to get mymodule.one and mymodule.twoΒ ...
Read more >
https://packages.cloud.google.com/apt/dists/mendel...
This package contains the main data files required by 0 A.D. Homepage: ... Breaks: apt-venv (<< 1.0.0-1~), command-not-found (<< 0.2.38-2~),Β ...
Read more >
History - setuptools 65.6.3.post20221216 documentation
#3512: Added capability of handling namespace packages created ... extra requirements at load time: - the functionality has been broken since v60.8.0.
Read more >
Package List β€” Spack 0.16.2 documentation
Spack package: aomp/package.py. Versions: 3.8.0, 3.7.0, 3.5.0; Build Dependencies: cmake, mesa, py-setuptools, python, py-pip, py-wheel, perl-data-dumper,Β ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found