danielgtaylor / danielgtaylor/python-betterproto
Add option to turn off adding of empty __init__.py files
- Dominant language
- Python
- Stars
- 1.8k
- Forks
- 234
- PR merge metrics
- No merged PRs in 30d
Description
### Summary
Improve compatibility in monorepo/Bazel usages, so that package path can be treated as native namespace packages
### What is the feature request for?
The core library
### The Problem
When using two proto files that have a similar prefix such as `a.b.c` and `a.b.d`, when these are produced as two separate artifacts consuming both of these as libraries would cause a import path collision since they both share `__init__.py` files in `a` and `a/b` folders.
### The Ideal Solution
Add an option to skip creation of empty `__init__.py` files. Build tools treat the folders without `__init__.py` as namespace packages.
### The Current Solution
I made the change as a patch and applied the patch on the library to get this capability.
I can roll the change up as a PR if there's interest in this.
### Related Solution
A similar option called `legacy_create_init=False` was introduced on bazel to solve this exact issue with package names. See https://rules-proto-grpc.com/en/latest/lang/python.html#python-grpc-compile:~:text=legacy_create_init%3DFalse .
Contributor guide
Assessment
This issue has not been assessed yet.