Adds Docs for Array, Bool and Numeric
This commit is contained in:
118
docs/source/usage.numeric.rst
Normal file
118
docs/source/usage.numeric.rst
Normal file
@@ -0,0 +1,118 @@
|
||||
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
|
||||
-----------------
|
||||
|
||||
|
||||
1. Basic Integer with minimum and maximum:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
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
|
||||
|
||||
|
||||
2. Number with exclusiveMinimum and exclusiveMaximum:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
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
|
||||
|
||||
|
||||
3. Number with multipleOf:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
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
|
||||
Reference in New Issue
Block a user