danielgtaylor / danielgtaylor/python-betterproto
Optimize dataclasses with __slots__
- Vorherrschende Sprache
- Python
- Sterne
- 1.8k
- Forks
- 234
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
[Adding \_\_slots\_\_ to a class](https://stackoverflow.com/questions/472000/usage-of-slots) improves memory usage and performance of attribute access, at the expense of not being able to set arbitrary attributes on the resulting objects.
[This project](https://github.com/starhel/dataslots/blob/master/dataslots/__init__.py) demonstrates how dataclasses can be augmented to use __slots__, whilst still having class attributes set (normally adding the __slots__ attribute to a class definition would cause an error with dataclassess that declare default values).
Making generated dataclasses use slots in this way would be a small breaking change, though I don't see how it could be too inconvenient to work with, and I expect the performance improvement would be worthwhile.
Beitragsleitfaden
Rechercherichtung
Keine Repository-Datei oder kein Test ist benannt. Beginne mit der Prüfung der verlinkten dataslots-Implementierung und ermittle anschließend den Code, der in python-betterproto Dataclasses generiert, sowie die zugehörigen Tests. Erledigt ist die Aufgabe, wenn die generierten Dataclasses __slots__ verwenden, dabei deklarierte Klassen-Defaults beibehalten werden und Kompatibilitäts- sowie breaking-change-Verhalten durch Tests abgedeckt sind.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- devtools
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 35/100