summaryrefslogtreecommitdiff
path: root/lab
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2018-11-09 06:09:20 -0500
committerNed Batchelder <ned@nedbatchelder.com>2018-11-09 06:09:20 -0500
commitcc12f4b7c40347b7297f7f6d938150bfde8c9ed5 (patch)
treeed7a0f8ceaf331f560f918bbecb94496dc24de2b /lab
parent4534dca7187ce8ffa841ca53448ae1555a07cc44 (diff)
downloadpython-coveragepy-git-cc12f4b7c40347b7297f7f6d938150bfde8c9ed5.tar.gz
Better error handling in set_env.py
Diffstat (limited to 'lab')
-rwxr-xr-xlab/set_env.py28
1 files changed, 22 insertions, 6 deletions
diff --git a/lab/set_env.py b/lab/set_env.py
index 184649ee..c87fa48a 100755
--- a/lab/set_env.py
+++ b/lab/set_env.py
@@ -52,6 +52,7 @@ def set_by_num(values, n, value):
setting_name = SETTINGS[int(n)-1][0]
values[setting_name] = value
+PROMPT = "(<N> val | x <N> | q) ::> "
def get_new_values(values):
show = True
while True:
@@ -59,10 +60,10 @@ def get_new_values(values):
show_them(values)
show = False
pstderr("")
- pstderr("> ", end='')
+ pstderr(PROMPT, end='')
sys.stderr.flush()
try:
- cmd = input("").strip().split(None, 1)
+ cmd = input("").strip().split()
except EOFError:
pstderr("\n")
break
@@ -71,14 +72,29 @@ def get_new_values(values):
if cmd[0] == 'q':
break
if cmd[0] == 'x':
- set_by_num(values, cmd[1], None)
+ if len(cmd) < 2:
+ pstderr("Need numbers of entries to delete")
+ continue
+ try:
+ nums = map(int, cmd[1:])
+ except ValueError:
+ pstderr("Need numbers of entries to delete")
+ continue
+ else:
+ for num in nums:
+ set_by_num(values, num, None)
else:
try:
- nsetting = int(cmd[0])
+ num = int(cmd[0])
except ValueError:
- pass
+ pstderr("Don't understand option {!r}".format(cmd[0]))
+ continue
else:
- set_by_num(values, nsetting, cmd[1])
+ if len(cmd) >= 2:
+ set_by_num(values, num, " ".join(cmd[1:]))
+ else:
+ pstderr("Need a value to set")
+ continue
show = True
return values