Numeric Types
The Numeric Types (integer, number) have the following supported properties:
minimum: Minimum value for the number.
maximum: Maximum value for the number.
exclusiveMinimum: If true, the value must be greater than the minimum.
exclusiveMaximum: If true, the value must be less than the maximum.
multipleOf: The value must be a multiple of this number.
And the additional generic properties:
default: Default value for the string.
description: Description of the string field.
Examples
Basic Integer with minimum and maximum:
from jambo import SchemaConverter
schema = {
"title": "IntegerExample",
"type": "object",
"properties": {
"age": {
"type": "integer",
"minimum": 0,
"maximum": 120,
},
},
"required": ["age"],
}
Model = SchemaConverter.build(schema)
obj = Model(age=30)
print(obj) # Output: IntegerExample(age=30)
try:
obj = Model(age=-5) # This will raise a validation error
except ValueError as e:
print("Validation fails as expected:", e) # Output: Validation fails as expected: 1 validation error for IntegerExample
Number with exclusiveMinimum and exclusiveMaximum:
from jambo import SchemaConverter
schema = {
"title": "NumberExample",
"type": "object",
"properties": {
"price": {
"type": "number",
"exclusiveMinimum": 0,
"exclusiveMaximum": 1000,
},
},
"required": ["price"],
}
Model = SchemaConverter.build(schema)
obj = Model(price=1)
print(obj) # Output: NumberExample(price=1)
try:
obj = Model(price=0) # This will raise a validation error
except ValueError as e:
print("Validation fails as expected:", e) # Output: Validation fails as expected: 1 validation error for NumberExample
obj = Model(price=999)
print(obj) # Output: NumberExample(price=999)
try:
obj = Model(price=1000) # This will raise a validation error
except ValueError as e:
print("Validation fails as expected:", e) # Output: Validation fails as expected: 1 validation error for NumberExample
Number with multipleOf:
from jambo import SchemaConverter
schema = {
"title": "MultipleOfExample",
"type": "object",
"properties": {
"quantity": {
"type": "number",
"multipleOf": 0.5,
},
},
"required": ["quantity"],
}
Model = SchemaConverter.build(schema)
obj = Model(quantity=2.5)
print(obj) # Output: MultipleOfExample(quantity=2.5)
try:
obj = Model(quantity=2.3) # This will raise a validation error
except ValueError as e:
print("Validation fails as expected:", e) # Output: Validation fails as expected: 1 validation error for MultipleOfExample