Open DaveKLloyd opened 1 month ago
Would the following fit your needs ?
from schema import Schema, Or
schema = Schema({'some_things': Or({'access': True,
'option1': str,
'option2': str,
},
{'access': False})})
schema.validate({'some_things': {'access': False}}) # OK
schema.validate({'some_things': {'access': True,
'option1': 'foo',
'option2': 'bar'}}) # OK
schema.validate({'some_things': {'access': False,
'option1': 'foo',
'option2': 'bar'}}) # SchemaError
Awesome thanks, this works great.
I would like to make some keys Optional based on the value of another key. For example:
If access = true option1 and option2 need to be there, if access is false those keys are optional. Actually they are useless, so not necessary. I guess it doesn't have to be optional perhaps I could use ignore_extra_keys if access is false.
Can this be done. I have tried a bunch of things and no luck yet.