danielgtaylor / danielgtaylor/python-betterproto

Import not generated for package/module if only referenced in service declaration.

Offen
#426 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Python
Sterne
1.8k
Forks
234
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

As a basic example I have the below, the generated service will not import the `test` package, however if i reference any message in the return it imports it correctly.

```syntax = "proto3";

package test;

import "test2.proto";

message TestMessage {}

service Test {
rpc test(test2.DemoRequest) returns (TestMessage);
}
```

From a shallow look seems to stem from the `ServiceMethodCompiler.__post_init__` method. The return type is referenced using `py_output_message_type` which calls `get_type_reference` which adds it to imports, however nowhere in the `__post_init__` is the input type referenced for it to be added with `get_type_reference` to imports.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit der Untersuchung von ServiceMethodCompiler.__post_init__, py_output_message_type und get_type_reference, kompiliere dann das Proto-Beispiel aus dem Issue und untersuche die generierten Service-Imports. Als erledigt gilt die Aufgabe, wenn der generierte Service das Package enthält, das den RPC-Eingabetyp enthält, selbst wenn dieser Typ nur in der Service-Deklaration verwendet wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
tooling
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.