You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.1 KiB
40 lines
1.1 KiB
from calculate.parameters.parameters import BaseParameter, Integer,\
|
|
String, ValidationError
|
|
|
|
|
|
class MyShinyParameter(BaseParameter):
|
|
type = Integer()
|
|
|
|
def validate(self, var):
|
|
if var.value < 10:
|
|
raise ValidationError("The value must be greater than 10")
|
|
|
|
def bind_method(self, var):
|
|
return var.value, None
|
|
|
|
|
|
class AnotherParameter(BaseParameter):
|
|
type = String()
|
|
|
|
def bind_method(self):
|
|
return 'default string', None
|
|
|
|
def validate(self, value):
|
|
if not value.startswith('/var/lib'):
|
|
raise ValidationError("The value must starts with a"
|
|
" '/var/lib'")
|
|
|
|
|
|
class OneMoreParameter(BaseParameter):
|
|
type = String()
|
|
|
|
def bind_method(self):
|
|
return 'default string', None
|
|
|
|
def validate(self, value):
|
|
available_set = {'mystery', 'horror', 'weird'}
|
|
if value not in available_set:
|
|
raise ValidationError(f"The value '{value}' is not in"
|
|
f" available. Available values:"
|
|
f" {', '.join(available_set)}")
|