def upload_files(connection, files, folder_name, folder_accession): """ :param genestack_client.Connection connection: :param list[str] files: :param str folder_name: :param str folder_accession: """ importer = DataImporter(connection) fu = FilesUtil(connection) upload = fu.get_special_folder(SpecialFolders.UPLOADED) if not folder_accession: folder_name = folder_name or datetime.now().strftime( 'Upload %d.%m.%y %H:%M:%S') folder_accession = fu.create_folder( folder_name, parent=upload, description='Files uploaded by genestack-uploader') else: folder_name = fu.get_infos([folder_accession])[0]['name'] accession_file_map = {} for f in files: accession = importer.load_raw(f) fu.link_file(accession, folder_accession) fu.unlink_file(accession, upload) accession_file_map[accession] = f return folder_accession, folder_name, accession_file_map
help='Accession of the Genestack folder containing the files') args = parser.parse_args() csv_input = args.csv_file local_key = args.local_key print('Connecting to Genestack...') # get connection and application handlers connection = get_connection(args) files_util = FilesUtil(connection) print('Collecting files...') files = files_util.get_file_children(args.folder) print('Found %d files. Collecting metadata...' % len(files)) infos = files_util.get_infos(files) identifier_map = {info['name']: info['accession'] for info in infos} # parse the CSV file with open(csv_input, 'r') as the_file: reader = csv.DictReader(the_file, delimiter=",") field_names = reader.fieldnames if args.local_key not in field_names: raise GenestackException( "Error: the local key %s is not present in the supplied CSV file" % args.local_key) for file_data in reader: # find the corresponding file
parser.add_argument('folder', help='Accession of the Genestack folder containing the files') args = parser.parse_args() csv_input = args.csv_file local_key = args.local_key print "Connecting to Genestack..." # get connection and application handlers connection = get_connection(args) files_util = FilesUtil(connection) print "Collecting files..." files = files_util.get_file_children(args.folder) print "Found %d files. Collecting metadata..." % len(files) infos = files_util.get_infos(files) identifier_map = {info['name']: info['accession'] for info in infos} # parse the CSV file with open(csv_input, 'r') as the_file: reader = csv.DictReader(the_file, delimiter=",") field_names = reader.fieldnames if args.local_key not in field_names: raise GenestackException("Error: the local key %s is not present in the supplied CSV file" % args.local_key) for file_data in reader: # find the corresponding file local_identifier = file_data[local_key] remote_file = identifier_map.get(local_identifier)