Dieses Repository stellt optionales Begleitmaterial für das Projekt zur Verfügung. Es kann, muss aber nicht für das Projekt verwendet werden. Enthalten sind:
- Ordner
downloaded_files
: 25563 Python Skripte aus öffentlich zugänglichen Github-Repositories zum Thema Machine Learning. Die jeweiligen Unterordner, in denen die Skripte liegen, bilden die Namen des entsprechenden Github-Repositories ab. - Skript
script_metrics.xlsx
: Diverse Metriken zu den Skripten (siehe unten). - Skript
filter_sample_metrics.py
: Python Tool zum Filtern der ML-Skripte (siehe unten).
file
: Dateinamelines
: Anzahl Zeilen (inkl. Leerzeilen, Kommentare, etc.)classes
: Anzahl der Klassenfunctions
: Anzahl Funktionennon_class_function_lines
: Anzahl der Zeilen die nicht zu einer Funktion gehörennested_lines
: Anzahl der Zeilen, die eingerückt sind (also 1 oder mehr Leerzeichen zu Beginn der Zeile haben, einschließlich Codezeilen in Funktionen)non_nested_lines
: Anzahl der Zeilen, die nicht eingerückt sind (also keine Leerzeichen zu Beginn der Zeile haben)import_statements
: Anzahl Import-Statementsloops
: Summe der While- und For-Loopsif_statements
: Anzahl der If-Statementsvariables
: Summe der zugewiesenen Variablenfiles_read
: Summe der Stellen, an denen eine externe Date eingelesen wird (berücksichtigt Funktionsaufrufe mit dem Muster.open()
und.read()
functions_with_docstring
: Anzahl Funktionen, die einen Docstring enthaltensingle_line_comments
: Summe der Zeilenkommentareaverage_line_length
: Durchschnittliche Zeilenlängemaximum_line_length
: Maximale Zeilenlängeaverage_function_length
: Durchschnittliche Funktionslängemax_function_length
: Maximale Funktionslänge
Mit dem Tool können die oben genannten ML Skripte gefiltert werden. Das Tool liest die Datei script_metrics.xlsx
ein und filtert diejenigen Zeilen, die den definierten Conditions entsprechen. Diese gefilterten Zeilen werden dann standardmäßig in filtered_files.xlsx
aus gegeben.
Die Conditions werden als Lambda Function in einem Dictionary definiert. Als Key wird der Spaltenname in script_metrics.xlsx
angegeben, als Value wird die Lambda Function eingetragen. Beispiele:
conditions = {
"lines": lambda x: 30 <= x <= 300, # between 30 and 300 lines
"functions": lambda x: x >= 3, # at least three functions
"functions_with_docstring": lambda x: x >= 3, # at least three functions with a docstring
...
}