From 6408c2d404426233877b8a01ddae97920a213152 Mon Sep 17 00:00:00 2001 From: Joseph Hu Date: Thu, 15 Mar 2018 19:46:09 -0400 Subject: [PATCH 1/3] error checks --- caduceus/core.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/caduceus/core.py b/caduceus/core.py index 56b9472..77086ae 100644 --- a/caduceus/core.py +++ b/caduceus/core.py @@ -19,16 +19,24 @@ def build_snakes(common_file, sci_file): with open(common_file, 'rt') as csvfile: reader = csv.DictReader(csvfile) for row in reader: - s = Snake(0, 0, row["common name"], row["scientific name"]) - snakes.append(s) + try: + s = Snake(0, 0, row['common name'], row['scientific name']) + snakes.append(s) + except ValueError: + print("Caduceus expects specific columns in csv files to work.\ + See help(build_snakes) for the specifications") for snake in snakes: with open(sci_file, 'rt') as csvfile2: reader2 = csv.DictReader(csvfile2) for row in reader2: if snake.sci_name == row['scientific name']: - snake.weight = int(row["weight"]) - snake.length = int(row['length']) + try: + snake.weight = int(row['weight']) + snake.length = int(row['length']) + except ValueError: + print("Caduceus expects specific columns in csv files \ + to work. See help(build_snakes) for the specifications") return snakes From 94afe3e0efb98fe20a5c79fa15938bb7074ffe1c Mon Sep 17 00:00:00 2001 From: Joseph Hu Date: Thu, 15 Mar 2018 19:55:28 -0400 Subject: [PATCH 2/3] added printing sorted by length --- caduceus/core.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/caduceus/core.py b/caduceus/core.py index 77086ae..1552331 100644 --- a/caduceus/core.py +++ b/caduceus/core.py @@ -40,6 +40,19 @@ def build_snakes(common_file, sci_file): return snakes +def print_snakes_by_length(snakes): + ''' + prints common names of snakes, one per line, sorted by length + Args: + snakes: a list of Snake objects + ''' + + sorterer = SnakeSorter(snakes) + sorterer.sort_by_weight() + + for snek in sorterer.sorted_snakes: + print('{name}: {wt}cm'.format(name=snek.common_name, wt=snek.length)) + def print_snakes_by_weight(snakes): ''' Prints common names of snakes, one per line, sorted by weight @@ -50,4 +63,4 @@ def print_snakes_by_weight(snakes): sorterer.sort_by_weight() for snek in sorterer.sorted_snakes: - print('{name}: {wt}g'.format(name=snek.common_name, wt=snek.weight)) + print('{name}: {len}g'.format(name=snek.common_name, len=snek.weight)) From 168049ba6ca3624cdbc0ed70c47b689ce0966702 Mon Sep 17 00:00:00 2001 From: Joseph Hu Date: Thu, 15 Mar 2018 20:19:44 -0400 Subject: [PATCH 3/3] fixed error --- caduceus/core.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/caduceus/core.py b/caduceus/core.py index 1552331..b2aece6 100644 --- a/caduceus/core.py +++ b/caduceus/core.py @@ -48,10 +48,10 @@ def print_snakes_by_length(snakes): ''' sorterer = SnakeSorter(snakes) - sorterer.sort_by_weight() + sorterer.sort_by_length() for snek in sorterer.sorted_snakes: - print('{name}: {wt}cm'.format(name=snek.common_name, wt=snek.length)) + print('{name}: {len}cm'.format(name=snek.common_name, len=snek.length)) def print_snakes_by_weight(snakes): ''' @@ -63,4 +63,4 @@ def print_snakes_by_weight(snakes): sorterer.sort_by_weight() for snek in sorterer.sorted_snakes: - print('{name}: {len}g'.format(name=snek.common_name, len=snek.weight)) + print('{name}: {wt}g'.format(name=snek.common_name, wt=snek.weight))