danielgtaylor / danielgtaylor/python-betterproto

Create `__all__` to explicitly export only the important parts

Abierto
#486 0 comentarios 0 reacciones 0 asignados Ver en GitHub
enhancement
Lenguaje dominante
Python
Estrellas
1.8k
Forks
234
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

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

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.