Mercurial > repos > shellac > guppy_basecaller
comparison env/lib/python3.7/site-packages/boto/manage/propget.py @ 5:9b1c78e6ba9c draft default tip
"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author | shellac |
---|---|
date | Mon, 01 Jun 2020 08:59:25 -0400 |
parents | 79f47841a781 |
children |
comparison
equal
deleted
inserted
replaced
4:79f47841a781 | 5:9b1c78e6ba9c |
---|---|
1 # Copyright (c) 2006-2009 Mitch Garnaat http://garnaat.org/ | |
2 # | |
3 # Permission is hereby granted, free of charge, to any person obtaining a | |
4 # copy of this software and associated documentation files (the | |
5 # "Software"), to deal in the Software without restriction, including | |
6 # without limitation the rights to use, copy, modify, merge, publish, dis- | |
7 # tribute, sublicense, and/or sell copies of the Software, and to permit | |
8 # persons to whom the Software is furnished to do so, subject to the fol- | |
9 # lowing conditions: | |
10 # | |
11 # The above copyright notice and this permission notice shall be included | |
12 # in all copies or substantial portions of the Software. | |
13 # | |
14 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | |
15 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- | |
16 # ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT | |
17 # SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | |
18 # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
19 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | |
20 # IN THE SOFTWARE. | |
21 | |
22 def get(prop, choices=None): | |
23 prompt = prop.verbose_name | |
24 if not prompt: | |
25 prompt = prop.name | |
26 if choices: | |
27 if callable(choices): | |
28 choices = choices() | |
29 else: | |
30 choices = prop.get_choices() | |
31 valid = False | |
32 while not valid: | |
33 if choices: | |
34 min = 1 | |
35 max = len(choices) | |
36 for i in range(min, max+1): | |
37 value = choices[i-1] | |
38 if isinstance(value, tuple): | |
39 value = value[0] | |
40 print('[%d] %s' % (i, value)) | |
41 value = raw_input('%s [%d-%d]: ' % (prompt, min, max)) | |
42 try: | |
43 int_value = int(value) | |
44 value = choices[int_value-1] | |
45 if isinstance(value, tuple): | |
46 value = value[1] | |
47 valid = True | |
48 except ValueError: | |
49 print('%s is not a valid choice' % value) | |
50 except IndexError: | |
51 print('%s is not within the range[%d-%d]' % (min, max)) | |
52 else: | |
53 value = raw_input('%s: ' % prompt) | |
54 try: | |
55 value = prop.validate(value) | |
56 if prop.empty(value) and prop.required: | |
57 print('A value is required') | |
58 else: | |
59 valid = True | |
60 except: | |
61 print('Invalid value: %s' % value) | |
62 return value | |
63 |