Unexpected behaviour with explicitly setting seconds = 0 with timedelta and using to_dict
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 45/100
Rechercherichtung
Beginne damit, die für Message.to_dict verwendete timedelta-Behandlung zu lokalisieren und die beiden Beispiele aus dem Issue unter Python 3.11 zu reproduzieren. Überprüfe, dass eine explizit angegebene timedelta von null Sekunden im Dictionary erhalten bleibt und die Ausgabe dem erwarteten Fall {'timeout': '0s'} entspricht.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Summary
When using timedelta with explicitly setting the seconds to 0 the output is empty instead of being explicitly set
Reproduction Steps
>>> from datetime import timedelta
>>> from dataclasses import dataclass
>>> import betterproto
>>>
>>> @dataclass(eq=False, repr=False)
... class TestTimeout(betterproto.Message):
... timeout: timedelta = betterproto.message_field(1)
...
>>> TestTimeout(timeout=timedelta(seconds=0)).to_dict()
{}
>>> from datetime import timedelta
>>> from dataclasses import dataclass
>>> import betterproto
>>>
>>> @dataclass(eq=False, repr=False)
... class TestTimeout(betterproto.Message):
... timeout: timedelta = betterproto.message_field(1)
...
>>> TestTimeout(timeout=timedelta(seconds=1)).to_dict()
{'timeout': '1.000s'}
Expected Results
Output expected to be {'timeout': '0s'}
Actual Results
Output is an empty dict {}
System Information
betterproto==2.0.0b6
python 3.11
Checklist
- I have searched the issues for duplicates.
- I have shown the entire traceback, if possible.
- I have verified this issue occurs on the latest prelease of betterproto which can be installed using
pip install -U --pre betterproto, if possible.
- Vorherrschende Sprache
- Python
- Sterne
- 1.8k
- Forks
- 235
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus danielgtaylor/python-betterproto
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 15/100
-
bug investigation needed
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 42/100
-
bug investigation needed
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
-
bug investigation needed
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 38/100
danielgtaylor/python-betterproto#676 · 3 Kommentare ·
Alle Issues in danielgtaylor/python-betterproto
Ähnliche Issues
-
Python Volcengine provider returns failures instead of raising themEvtl. vergeben @Ricardo-M-L hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 79/100
agent-infra/sandbox#248 ·
-
Textractor leaves empty temporary files when remote retrieval failsEvtl. vergeben @HuaTNA hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
Maintainer antworten meist innerhalb von 1 Tag
-
test(bm_generation): pin the learning parameters and CPU sync shortcutEvtl. vergeben @iloveeyjafjalla hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
qboson/kaiwu-pytorch-plugin#1341 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
elder-plinius/V3R1T4S#625 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
foxglove/mcap#1907 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag