Add __init__.py files to compiler and util subpackages (#4117)

The compiler and util subpackages are created by the build_py class in
setup.py. This has caused an issue in the protobuf package in
conda-forge (https://github.com/conda-forge/protobuf-feedstock/issues/40),
which is fixed by this commit.
This commit is contained in:
Thomas Hisch 2018-04-09 21:43:10 +02:00 committed by Jie Luo
parent 3b6d027ba2
commit 451e0446ab
5 changed files with 3 additions and 11 deletions

2
.gitignore vendored
View File

@ -58,8 +58,6 @@ python/*.egg
python/.eggs/
python/.tox
python/build/
python/google/protobuf/compiler/
python/google/protobuf/util/
src/js_embed
src/protoc

View File

@ -763,6 +763,7 @@ python_EXTRA_DIST= \
python/MANIFEST.in \
python/google/__init__.py \
python/google/protobuf/__init__.py \
python/google/protobuf/compiler/__init__.py \
python/google/protobuf/descriptor.py \
python/google/protobuf/descriptor_database.py \
python/google/protobuf/descriptor_pool.py \
@ -858,6 +859,7 @@ python_EXTRA_DIST= \
python/google/protobuf/symbol_database.py \
python/google/protobuf/text_encoding.py \
python/google/protobuf/text_format.py \
python/google/protobuf/util/__init__.py \
python/release.sh \
python/mox.py \
python/setup.cfg \

View File

View File

@ -120,9 +120,7 @@ class clean(_clean):
for filename in filenames:
filepath = os.path.join(dirpath, filename)
if filepath.endswith("_pb2.py") or filepath.endswith(".pyc") or \
filepath.endswith(".so") or filepath.endswith(".o") or \
filepath.endswith('google/protobuf/compiler/__init__.py') or \
filepath.endswith('google/protobuf/util/__init__.py'):
filepath.endswith(".so") or filepath.endswith(".o"):
os.remove(filepath)
# _clean is an old-style class, so super() doesn't work.
_clean.run(self)
@ -144,12 +142,6 @@ class build_py(_build_py):
generate_proto("../src/google/protobuf/wrappers.proto")
GenerateUnittestProtos()
# Make sure google.protobuf/** are valid packages.
for path in ['', 'internal/', 'compiler/', 'pyext/', 'util/']:
try:
open('google/protobuf/%s__init__.py' % path, 'a').close()
except EnvironmentError:
pass
# _build_py is an old-style class, so super() doesn't work.
_build_py.run(self)