From 767aad132ab66a2f038b0d67c022b89a8ff81736 Mon Sep 17 00:00:00 2001 From: Philippe Bardou <philippe.bardou@inra.fr> Date: Thu, 23 Feb 2017 15:51:14 +0000 Subject: [PATCH] Upload list : Test the input file - Each line must have the same number of field - File must be text... --- bin/jvenn_server.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/bin/jvenn_server.py b/bin/jvenn_server.py index 6b866e4..d7afe46 100644 --- a/bin/jvenn_server.py +++ b/bin/jvenn_server.py @@ -38,7 +38,10 @@ class AppServer(object): delimiter = '\t' if (kwargs["delimiter"] == "," or kwargs["delimiter"] == ";") : delimiter = kwargs["delimiter"] - file_path = self.__upload(**kwargs) + try: + file_path = self.__upload(**kwargs) + except: + return json.dumps([{'error':"Error: Please provide a delimited text file."}]) return self.__compare_lists(file_path, kwargs["header"], delimiter) def __upload(self, **kwargs): @@ -67,11 +70,15 @@ class AppServer(object): FH = open(file,'r') names = {} samples = {} + linenb = 0 for i, line in enumerate(FH.readlines()): + if i == 0: + linenb = len(line.split(spliter)) if i == 0 and header: for j, val in enumerate(line.split(spliter)): names[string.ascii_uppercase[j]] = val.rstrip('\n\r') + linenb = len(names) else: for j, val in enumerate(line.split(spliter)): if i == 0: @@ -80,7 +87,10 @@ class AppServer(object): samples[j].append(val) else: samples[j] = [val] - + if linenb != len(line.split(spliter)): + return json.dumps([{'error':"Error: Inconsistent number of fields line " + str(i+1) + + " (" + str(len(line.split(spliter))) + " for " + str(linenb) + " expected)"}]) + d = {} j = 1 -- GitLab