diff --git a/smash/web/importer/csv_subject_import_reader.py b/smash/web/importer/csv_subject_import_reader.py index 03741b71bca29c5997758b775ac1f57fbc466da2..74e02edc480b91bc52771faa28063051d9409dc7 100644 --- a/smash/web/importer/csv_subject_import_reader.py +++ b/smash/web/importer/csv_subject_import_reader.py @@ -1,10 +1,10 @@ import csv import datetime import logging +from typing import List +from web.models import StudySubject, Subject, SubjectImportData from .subject_import_reader import SubjectImportReader -from web.models import StudySubject, Subject, Study, SubjectImportData -from web.models.constants import GLOBAL_STUDY_ID CSV_DATE_FORMAT = "%d-%m-%Y" @@ -15,7 +15,7 @@ class CsvSubjectImportReader(SubjectImportReader): def __init__(self, import_data: SubjectImportData): super().__init__(import_data) - def load_data(self): + def load_data(self) -> List[StudySubject]: study_subjects = [] with open(self.import_data.get_absolute_file_path()) as csv_file: reader = csv.reader(csv_file, delimiter=self.import_data.csv_delimiter) @@ -32,8 +32,7 @@ class CsvSubjectImportReader(SubjectImportReader): study_subjects.append(study_subject) return study_subjects - def add_data(self, study_subject, column_name, value): - # type: (StudySubject, str, str) -> None + def add_data(self, study_subject: StudySubject, column_name: str, value: str): if column_name == "first_name": study_subject.subject.first_name = self.get_new_value(study_subject.subject.first_name, column_name, value) elif column_name == "last_name": @@ -46,8 +45,7 @@ class CsvSubjectImportReader(SubjectImportReader): else: logger.warning("Don't know how to handle column " + column_name + " with data " + value) - def get_new_value(self, old_value, column_name, new_value): - # type: (unicode,unicode,unicode) -> unicode + def get_new_value(self, old_value: str, column_name: str, new_value: str) -> str: if old_value is None or old_value == "": return new_value if new_value is None or new_value == "": @@ -57,8 +55,7 @@ class CsvSubjectImportReader(SubjectImportReader): "). Latest value will be used") return new_value - def get_new_date_value(self, old_value, column_name, new_value): - # type: (datetime,unicode,unicode) -> datetime + def get_new_date_value(self, old_value: datetime, column_name: str, new_value: str) -> datetime: if old_value is None or old_value == "": try: result = datetime.datetime.strptime(new_value, CSV_DATE_FORMAT) diff --git a/smash/web/importer/csv_tns_subject_import_reader.py b/smash/web/importer/csv_tns_subject_import_reader.py index 1dd70e307eff836fa151d2530fd50e464c971f7b..33f29abef9654c78908f8ae128bf29f2efeb5ae3 100644 --- a/smash/web/importer/csv_tns_subject_import_reader.py +++ b/smash/web/importer/csv_tns_subject_import_reader.py @@ -2,9 +2,9 @@ import codecs import csv import datetime import logging +from typing import List -from web.models import StudySubject, Subject, Study, SubjectImportData -from web.models.constants import GLOBAL_STUDY_ID +from web.models import StudySubject, Subject, SubjectImportData from .subject_import_reader import SubjectImportReader CSV_DATE_FORMAT = "%d/%m/%Y" @@ -16,7 +16,7 @@ class TnsCsvSubjectImportReader(SubjectImportReader): def __init__(self, import_data: SubjectImportData): super().__init__(import_data) - def load_data(self): + def load_data(self) -> List[StudySubject]: study_subjects = [] with open(self.import_data.get_absolute_file_path()) as csv_file: reader = csv.reader((remove_bom(line) for line in csv_file), delimiter=self.import_data.csv_delimiter) @@ -33,8 +33,7 @@ class TnsCsvSubjectImportReader(SubjectImportReader): study_subjects.append(study_subject) return study_subjects - def add_data(self, study_subject, column_name, value): - # type: (StudySubject, str, str) -> None + def add_data(self, study_subject: StudySubject, column_name: str, value: str): if column_name == "firstname" or column_name == "sig_firstname": study_subject.subject.first_name = self.get_new_value(study_subject.subject.first_name, column_name, value) elif column_name == "lastname" or column_name == "sig_lastname": @@ -66,8 +65,7 @@ class TnsCsvSubjectImportReader(SubjectImportReader): else: logger.warning("Don't know how to handle column " + column_name + " with data " + value) - def get_new_value(self, old_value, column_name, new_value): - # type: (unicode,unicode,unicode) -> unicode + def get_new_value(self, old_value: str, column_name: str, new_value: str) -> str: if old_value is None or old_value == "": return new_value if new_value is None or new_value == "": @@ -79,8 +77,7 @@ class TnsCsvSubjectImportReader(SubjectImportReader): "). Latest value will be used") return new_value - def get_new_date_value(self, old_value, column_name, new_value): - # type: (datetime,unicode,unicode) -> datetime + def get_new_date_value(self, old_value: datetime, column_name: str, new_value: str) -> datetime: if old_value is None or old_value == "": try: result = datetime.datetime.strptime(new_value, CSV_DATE_FORMAT)