comparison env/lib/python3.9/site-packages/boto/manage/propget.py @ 0:4f3585e2f14b draft default tip

"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
author shellac
date Mon, 22 Mar 2021 18:12:50 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4f3585e2f14b
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