Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Zusammenfassen mehrerer Funktionen #6

Closed
severinsimmler opened this issue Sep 28, 2017 · 5 comments
Closed

Zusammenfassen mehrerer Funktionen #6

severinsimmler opened this issue Sep 28, 2017 · 5 comments
Assignees

Comments

@severinsimmler
Copy link
Collaborator

Macht es Sinn verschiedene Funktionen, die gleiche Dinge mit verschiedenen Dateiformaten machen zusammenzufassen?

Zum Beispiel wird aus:

  • read_from_txt
  • read_from_tei
  • read_from_csv

die Funktion read_from_file, die dann ungefähr so aufgebaut ist:

def read_from_file(path):
    if extension == 'txt':
        spezifisches zeug für txt-dateien
    elif extension == 'xml':
        spezifisches zeug für xml-dateien
    elif extension == 'csv':
        spezifisches zeug für csv-dateien
    else:
        dateiformat nicht unterstützt
@severinsimmler
Copy link
Collaborator Author

So müsste man nicht überlegen in welchem Format das Korpus vorliegt und man könnte Verzeichnisse mit gemischten Dateiformaten auf einmal einlesen.

@SinaB0ck
Copy link
Collaborator

Hatten wir auch für remove_features (arbeitet mit einem DataFrame) und remove_features_from_file (arbeitet mit dem MultiIndex) überlegt.

@thvitt
Copy link
Member

thvitt commented Sep 29, 2017

Bei Dateien würde ich die Unterscheidung nach Dateinamen nicht zwingend machen.

def read_from_file(path, format=None):
    if format == 'text' or path.suffix == '.txt':
        …
    else:
        raise ValueError(…)

@severinsimmler
Copy link
Collaborator Author

severinsimmler commented Oct 1, 2017

Alles klar, dann mache ich das so.

Also räume ich mal alles, was Features entfernt in eine Funktion, @sinabock? Lässt sich ja mit einem if isinstance() schön handhaben.

@thvitt
Copy link
Member

thvitt commented Oct 2, 2017

wenn das größere Mengen an Code sind, die unterschiedlich sind, würde ich eher separate interne Funktionen (_foo) verwenden und die von der gemeinsamen Frontend-Funktion aufrufen: So bleibt die Gesamtgröße der Funktion überschaubar, die Kapselung gewahrt und man kann offensichtlicher individuelle Tests schreiben.

@severinsimmler severinsimmler self-assigned this Oct 4, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants