SDA SE Wiki

Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering

User Tools

Site Tools


Story 1: Überprüfung benannter Argumente

→ Präsentation des Use Case (PDF, ODP, PPTX)

Das Ziel ist fehlerhafte Verwendung von Named Arguments bei Funktions- und Konstruktoraufrufen wie in den Beispielen auf Folie 3 bereits vor der Ausführung zu erkennen. In der Fehlermeldung sollten folgende Informationen vorhanden sein:

  • Dateipfad
  • Zeilennummer
  • Erklärung des Fehlers, z.B.:
    • Call to constructor sklearn.tree.DecisionTreeClassifier has unexpected keyword argument „maxdepth“, which is not defined.
    • Call to constructor torch.nn.Linear has unexpected keyword argument „out_featres“, which is not defined.

Nach dem Parsing von Funktions-Aufrufen (im Benutzercode) muss der Typ des Objektes auf dem die Funktion aufgerufen wird bestimmt werden, um in Gegenwart von dynamischem Binden zu wissen, welche Version der Funktion (aus welcher Klasse / welchem Typ) genau aufgerufen wird. Nur so können wir die passenden Argumente bestimmen.

Dafür müssen wir also, wenn der Aufruf die Form var.f(…) hat, den Typ von var bestimmen. Dabei dürfen wir voraussetzen, dass der Code Typannotationen enthält. Wir müssen keine komplette, auf Datenflussanalyse basierende Typ-Inferenz implementieren.

Der Check muss in der Lage sein

  • jede beliebige Version einer ML-Bibliothek parsen zu können. Es reicht wenn eine einzige Bibliothek (zB Scikit ODER PyTorch ODER Keras ODER …) in einer einzigen Version geparst wird.
  • mit der aktuellen Python-Version zu laufen.

Klaudia & Bernhard

Tasks

  • siehe Jira
  • das Google-Doc war nur als Nothilfe gedacht, solange wir Jira noch nicht eingeführt hatten.
teaching/projectgroups/ast/2020/story/01.txt · Last modified: 2020/05/15 06:53 by Günter Kniesel

SEWiki, © 2020