district42 schemas โ JSON Schema
pip3 install schemax
>>> import schemax
>>> from district42 import schema
>>> ExampleSchema = schema.str.len(1, 10)
>>> schemax.to_json_schema(ExampleSchema)
{'type': 'string', 'minLength': 1, 'maxLength': 10}
Also, you could use schemax to translate from JSON-Schema to d42 and generate tests interfaces (in future releases) via command line:
$ python3 -m schemax translate schema.json
Translation from JSON-Schema to d42-schema for schema.json:
schema.dict({
'number': schema.int.min(1),
optional('street_name'): schema.str,
...: ...
})
schema.json:
{
"type": "object",
"properties": {
"number": { "type": "integer", "minimum": 1 },
"street_name": { "type": "string" }
},
"required": ["number"],
"additionalProperties": true
}
(โ - done; ๐ง - planned support; โ - unsupportable)
- None:
- โ schema.none
- Bool:
- Int:
- Float:
- Str:
- List:
- Dict:
- Any:
- โ schema.any
- โ schema.any(*types)
- โ schema.const
- โ schema.bytes
(โ - done; ๐ง - planned support; โ - unsupportable)
- โ null
- โ boolean
- โ
integer
- โ minimum
- โ maximum
- โ exclusiveMinimum Keep in mind, that we're just taking exclusiveMinimum + 1 as schema.int.min
- โ exclusiveMaximum Keep in mind, that we're just taking exclusiveMaximum - 1 as schema.int.max
- โ multiples
- โ
number
- โ minimum
- โ maximum
- ๐ง exclusiveMinimum
- ๐ง exclusiveMaximum
- โ multiples
- โ string
- โ
array
- โ items
- โ length
- โ prefixItems
- โ unevaluatedItems
- โ uniqueness
- โ
object
- โ properties
- โ patterProperties
- โ additionalProperties
- โ requiredProperties
- โ propertyName
- โ size