Skip to content
This repository was archived by the owner on Jan 19, 2025. It is now read-only.
This repository was archived by the owner on Jan 19, 2025. It is now read-only.

Automatisierte Herleitung von Required Annotations #442

@GideonKoenig

Description

@GideonKoenig

Is your feature request related to a problem? Please describe

Bisher müssen Annotations von Hand markiert werden.

Desired solution

Die Analyse der Daten, die in Form der usage.json und api.json Datei gegeben sind, soll daher nun automatisch geschehen und die Requried Annotations sollen als Teil der annotations.json datei exportiert werden.

Mehr Informationen zu den Details sind hier zu finden.

Additional context

Die Analazye eines optionalen Paramters ergeben eine "annähernde Gleichverteilung" für dessen Wertzuweiseungen.
Hier kann beispielweise die Anzahl der Aufrufe der beiden meist verwendeten Werte verglichen werden.

Der am meisten verwendete Wert sollte nicht signifikant häufiger auftreten.
Sei n = Anzahl der Paramteter Werte.
Sei m die Anzahl der Aufrufe.
Die Differenz zwischen den Aufrufen des am meisten verwendete Wert und des am zweit meist verwendeten Wert sollte dabei nicht größer als m/n sein.

Dieses Kriterium gilt als Orientierung und nicht als finale Bedingung. Das Kriterium muss leicht ersetzbar sein.

Implementations Informationen

In _generate_annotations.py:
def __get_required_annotations(usages: UsageStore, api: API) -> dict["requireds", dict[str, dict[str, str]]]:
Rückgabetyp siehe Kommentar von Lars.
Der Aufruf soll anschließend den anderen in generate_annotations() beigefügt werden.

Edit: Change 2m/n to m/n since the first formula would not work for n=2.

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions