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

Automatisierte Herleitung von Required Annotations #442

Closed
GideonKoenig opened this issue Apr 22, 2022 · 2 comments · Fixed by #452
Closed

Automatisierte Herleitung von Required Annotations #442

GideonKoenig opened this issue Apr 22, 2022 · 2 comments · Fixed by #452
Assignees
Labels
enhancement 💡 New feature or request

Comments

@GideonKoenig
Copy link
Contributor

GideonKoenig commented Apr 22, 2022

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.

@GideonKoenig GideonKoenig added the enhancement 💡 New feature or request label Apr 22, 2022
@GideonKoenig GideonKoenig moved this to Backlog in API Editor Apr 22, 2022
@lars-reimann
Copy link
Member

lars-reimann commented Apr 22, 2022

JSON-Format für erzeugte Annotationen (wie @Unused):

{
  "requireds": {
    "sklearn/sklearn._config/config_context/assume_finite": {
      "target": "sklearn/sklearn._config/config_context/assume_finite"
    }
  }
}

@GideonKoenig GideonKoenig moved this from Backlog to Todo in API Editor Apr 22, 2022
@Masara Masara moved this from Todo to In Progress in API Editor Apr 22, 2022
@lars-reimann
Copy link
Member

Usage-Daten auf sciebo: https://uni-bonn.sciebo.de/f/1825964771

@GideonKoenig GideonKoenig linked a pull request Apr 29, 2022 that will close this issue
@Masara Masara moved this from In Progress to Ready for Review in API Editor May 6, 2022
Repository owner moved this from Ready for Review to ✔️ Done in API Editor May 6, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement 💡 New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants