def load_csv_course(app_context): """Loads course data from the CSV files.""" logging.info('Initializing datastore from CSV files.') unit_file = os.path.join(app_context.get_data_home(), 'unit.csv') lesson_file = os.path.join(app_context.get_data_home(), 'lesson.csv') # Check files exist. if (not app_context.fs.isfile(unit_file) or not app_context.fs.isfile(lesson_file)): return None, None unit_stream = app_context.fs.open(unit_file) lesson_stream = app_context.fs.open(lesson_file) # Verify CSV file integrity. units = verify.read_objects_from_csv_stream( unit_stream, verify.UNITS_HEADER, verify.Unit) lessons = verify.read_objects_from_csv_stream( lesson_stream, verify.LESSONS_HEADER, verify.Lesson) verifier = verify.Verifier() verifier.verify_unit_fields(units) verifier.verify_lesson_fields(lessons) verifier.verify_unit_lesson_relationships(units, lessons) assert verifier.errors == 0 assert verifier.warnings == 0 # Load data from CSV files into a datastore. units = verify.read_objects_from_csv_stream( app_context.fs.open(unit_file), verify.UNITS_HEADER, Unit12, converter=verify.UNIT_CSV_TO_DB_CONVERTER) lessons = verify.read_objects_from_csv_stream( app_context.fs.open(lesson_file), verify.LESSONS_HEADER, Lesson12, converter=verify.LESSON_CSV_TO_DB_CONVERTER) return units, lessons
def load_csv_course(app_context): """Loads course data from the CSV files.""" logging.info('Initializing datastore from CSV files') unit_file = os.path.join(app_context.get_data_home(), 'unit.csv') lesson_file = os.path.join(app_context.get_data_home(), 'lesson.csv') # Load and validate data from CSV files. units = verify.read_objects_from_csv_stream( app_context.fs.open(unit_file), verify.UNITS_HEADER, verify.Unit) lessons = verify.read_objects_from_csv_stream( app_context.fs.open(lesson_file), verify.LESSONS_HEADER, verify.Lesson) verifier = verify.Verifier() verifier.verify_unit_fields(units) verifier.verify_lesson_fields(lessons) verifier.verify_unit_lesson_relationships(units, lessons) assert verifier.errors == 0 assert verifier.warnings == 0 # Load data from CSV files into a datastore. new_units = [] new_lessons = [] units = verify.read_objects_from_csv_stream( app_context.fs.open(unit_file), verify.UNITS_HEADER, Unit) lessons = verify.read_objects_from_csv_stream( app_context.fs.open(lesson_file), verify.LESSONS_HEADER, Lesson) for unit in units: entity = Unit() copy_attributes(unit, entity, verify.UNIT_CSV_TO_DB_CONVERTER) new_units.append(entity) for lesson in lessons: entity = Lesson() copy_attributes(lesson, entity, verify.LESSON_CSV_TO_DB_CONVERTER) new_lessons.append(entity) return new_units, new_lessons
def load_csv_course(app_context): """Loads course data from the CSV files.""" logging.info('Initializing datastore from CSV files') unit_file = os.path.join(app_context.get_data_home(), 'unit.csv') lesson_file = os.path.join(app_context.get_data_home(), 'lesson.csv') biblio_file = os.path.join(app_context.get_data_home(), 'biblio.csv') # Load and validate data from CSV files. units = verify.read_objects_from_csv_stream(app_context.fs.open(unit_file), verify.UNITS_HEADER, verify.Unit) lessons = verify.read_objects_from_csv_stream( app_context.fs.open(lesson_file), verify.LESSONS_HEADER, verify.Lesson) references = verify.read_objects_from_csv_stream( app_context.fs.open(biblio_file), verify.BIBLIO_HEADER, verify.Reference) verifier = verify.Verifier() verifier.verify_unit_fields(units) verifier.verify_lesson_fields(lessons) verifier.verify_unit_lesson_relationships(units, lessons) assert verifier.errors == 0 assert verifier.warnings == 0 # Load data from CSV files into a datastore. new_units = [] new_lessons = [] new_references = [] units = verify.read_objects_from_csv_stream(app_context.fs.open(unit_file), verify.UNITS_HEADER, Unit) lessons = verify.read_objects_from_csv_stream( app_context.fs.open(lesson_file), verify.LESSONS_HEADER, Lesson) references = verify.read_objects_from_csv_stream( app_context.fs.open(biblio_file), verify.BIBLIO_HEADER, Reference) for unit in units: entity = Unit() copy_attributes(unit, entity, verify.UNIT_CSV_TO_DB_CONVERTER) new_units.append(entity) for lesson in lessons: entity = Lesson() copy_attributes(lesson, entity, verify.LESSON_CSV_TO_DB_CONVERTER) new_lessons.append(entity) for reference in references: entity = Reference() copy_attributes(reference, entity, verify.BIBLIO_CSV_TO_DB_CONVERTER) new_references.append(entity) return new_units, new_lessons, new_references