1
# Copyright (c) 2006-2009 Mitch Garnaat http://garnaat.org/
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-
11
# The above copyright notice and this permission notice shall be included
12
# in all copies or substantial portions of the Software.
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
23
def get(prop, choices=None):
24
prompt = prop.verbose_name
31
choices = prop.get_choices()
37
for i in range(min, max+1):
39
if isinstance(value, tuple):
41
print '[%d] %s' % (i, value)
42
value = raw_input('%s [%d-%d]: ' % (prompt, min, max))
44
int_value = int(value)
45
value = choices[int_value-1]
46
if isinstance(value, tuple):
50
print '%s is not a valid choice' % value
52
print '%s is not within the range[%d-%d]' % (min, max)
54
value = raw_input('%s: ' % prompt)
56
value = prop.validate(value)
57
if prop.empty(value) and prop.required:
58
print 'A value is required'
62
print 'Invalid value: %s' % value