def create_csv_file(self, file_name, body_dict, spreadsheet_range_name): """ Creates the csv file with the passed arguments, and then save it locally. Args: file_name: File string name. body_dict: Dict with the data to write the csv file. spreadsheet_range_name: Range name to update the spreadsheet file in A notation: https://developers.google.com/sheets/api/guides/concepts#a1_notation """ file_path = '{parent_folder}/result/{file_name}.csv'.format( parent_folder=os.path.join(os.path.dirname(__file__), os.pardir), file_name=file_name, ) try: headers = body_dict[0].keys() except IndexError: return None with open(file_path, mode='w', encoding='utf-8') as csv_file: writer = csv.DictWriter(csv_file, fieldnames=headers) writer.writeheader() for row in body_dict: writer.writerow(row) self.upload_file_to_storage(file_path, file_name) update_sheets_data( file_path, self.spreadsheet_data.get('enrollment_per_site', ''), spreadsheet_range_name, )
def create_csv_file(self, course, body_dict, spreadsheet_id): """ Creates the csv file with the passed arguments, and then save it locally. """ path_file = '{parent_folder}/result/{course}.csv'.format( parent_folder=os.path.join(os.path.dirname(__file__), os.pardir), course=course) if body_dict: with open(path_file, mode='w', encoding='utf-8') as csv_file: column_headers = body_dict[0].keys() writer = csv.DictWriter(csv_file, fieldnames=column_headers) writer.writeheader() static_headers = ['user_id', 'username', 'cohort', 'team'] for row in body_dict: for key, value in row.items(): if key not in static_headers: if not value and isinstance(value, bool): row[key] = '' elif isinstance(value, bool): row[key] = 'X' writer.writerow(row) self.upload_file_to_storage(course, path_file) update_sheets_data(path_file, spreadsheet_id)
def create_csv_file(self, file_name, body_dict, course_id): """ Creates the csv file with the passed arguments, and then save it locally. Args: file_name: File string name. body_dict: Dict with the data to write the csv file. course_id: Course key value. """ file_path = '{parent_folder}/result/{file_name}.csv'.format( parent_folder=os.path.join(os.path.dirname(__file__), os.pardir), file_name=file_name, ) try: headers = body_dict[0].keys() except IndexError: return None with open(file_path, mode='w', encoding='utf-8') as csv_file: writer = csv.DictWriter(csv_file, fieldnames=headers) writer.writeheader() for row in body_dict: writer.writerow(row) self.upload_file_to_storage(course_id, file_path) update_sheets_data( file_path=file_path, spreadsheet_id=self.spreadsheet_data.get('last_login_report_{}'.format(course_id)), spreadsheet_range_name=self.spreadsheet_range, )
def create_csv_file(self, file_name, body_dict, course_id, headers, *args, **kwargs): """ Create the csv file with the passed arguments, and then save it locally. """ path_file = '{parent_folder}/result/{file_name}.csv'.format( parent_folder=os.path.join(os.path.dirname(__file__), os.pardir), file_name=file_name, ) with open(path_file, mode='w', encoding='utf-8') as csv_file: column_headers = headers writer = csv.DictWriter(csv_file, fieldnames=column_headers) writer.writeheader() for row in body_dict: writer.writerow(row) self.upload_file_to_storage(file_name, path_file) update_sheets_data( file_path=path_file, spreadsheet_id=self.spreadsheet_data.get( 'activity_completion_report_{}'.format(course_id)), spreadsheet_range_name=self.spreadsheet_range, )
def create_csv_file(self, file_name, body_dict, headers, spreadsheet_id): """ Creates the csv file with the passed arguments, and then save it locally. """ path_file = '{parent_folder}/result/{file_name}.csv'.format( parent_folder=os.path.join(os.path.dirname(__file__), os.pardir), file_name=file_name) with open(path_file, mode='w', encoding='utf-8') as csv_file: column_headers = headers writer = csv.DictWriter(csv_file, fieldnames=column_headers) writer.writeheader() for row in body_dict: writer.writerow(row) self.upload_file_to_storage(file_name, path_file) update_sheets_data(path_file, spreadsheet_id)