danielgtaylor / danielgtaylor/python-betterproto
Create `__all__` to explicitly export only the important parts
- Vorherrschende Sprache
- Python
- Sterne
- 1.8k
- Forks
- 234
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Currently, it generates the following:
```py
# Generated by the protocol buffer compiler. DO NOT EDIT!
# sources: example.proto
# plugin: python-betterproto
from dataclasses import dataclass
import betterproto
@dataclass
class Greeting(betterproto.Message):
"""Greeting represents a message you can tell a user."""
message: str = betterproto.string_field(1)
```
If you try to import from it, you'll get suggestions for importing `dataclass`, `betterproto` and `Greeting`.
Those first two, though, aren't meant to be re-exported there, only `Greeting` is supposed to be importable.
By generating with an `__all__ = ["Greeting"]`, Python would know that the only thing it's supposed to import is `Greeting`:
```py
# Generated by the protocol buffer compiler. DO NOT EDIT!
# sources: example.proto
# plugin: python-betterproto
__all__ = ["Greeting"]
from dataclasses import dataclass
import betterproto
@dataclass
class Greeting(betterproto.Message):
"""Greeting represents a message you can tell a user."""
message: str = betterproto.string_field(1)
```
https://docs.python.org/3/tutorial/modules.html#importing-from-a-package
https://pep8.org/#module-level-dunder-names
Beitragsleitfaden
Rechercherichtung
The issue targets the generated Python module and its public exports. Locate the generator entry point that assembles this module, then inspect any existing generator tests or fixtures before changing output. Done means generated modules contain an __all__ listing only intended message and service symbols, with tests covering the resulting imports.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- tooling
- Issue-Typ
- Feature
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100