Skip to content

Commit d267bb8

Browse files
committed
bignum
1 parent 20d79d4 commit d267bb8

2 files changed

Lines changed: 54 additions & 8 deletions

File tree

jsonschema/_validators.py

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ def additionalItems(validator, aI, instance, schema):
8282
)
8383

8484

85-
def minimum(validator, minimum, instance, schema):
85+
def minimum_draft3_draft4(validator, minimum, instance, schema):
8686
if not validator.is_type(instance, "number"):
8787
return
8888

@@ -99,7 +99,7 @@ def minimum(validator, minimum, instance, schema):
9999
)
100100

101101

102-
def maximum(validator, maximum, instance, schema):
102+
def maximum_draft3_draft4(validator, maximum, instance, schema):
103103
if not validator.is_type(instance, "number"):
104104
return
105105

@@ -116,6 +116,50 @@ def maximum(validator, maximum, instance, schema):
116116
)
117117

118118

119+
def exclusiveMinimum_draft6(validator, minimum, instance, schema):
120+
if not validator.is_type(instance, "number"):
121+
return
122+
123+
if instance <= minimum:
124+
yield ValidationError(
125+
"%r is less than or equal to the minimum of %r" % (
126+
instance, minimum,
127+
),
128+
)
129+
130+
131+
def exclusiveMaximum_draft6(validator, maximum, instance, schema):
132+
if not validator.is_type(instance, "number"):
133+
return
134+
135+
if instance >= maximum:
136+
yield ValidationError(
137+
"%r is greater than or equal to the maximum of %r" % (
138+
instance, maximum,
139+
),
140+
)
141+
142+
143+
def minimum_draft6(validator, minimum, instance, schema):
144+
if not validator.is_type(instance, "number"):
145+
return
146+
147+
if instance < minimum:
148+
yield ValidationError(
149+
"%r is less than the minimum of %r" % (instance, minimum)
150+
)
151+
152+
153+
def maximum_draft6(validator, maximum, instance, schema):
154+
if not validator.is_type(instance, "number"):
155+
return
156+
157+
if instance > maximum:
158+
yield ValidationError(
159+
"%r is greater than the maximum of %r" % (instance, maximum)
160+
)
161+
162+
119163
def multipleOf(validator, dB, instance, schema):
120164
if not validator.is_type(instance, "number"):
121165
return

jsonschema/validators.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -186,10 +186,10 @@ def extend(validator, validators, version=None):
186186
u"items": _validators.items,
187187
u"maxItems": _validators.maxItems,
188188
u"maxLength": _validators.maxLength,
189-
u"maximum": _validators.maximum,
189+
u"maximum": _validators.maximum_draft3_draft4,
190190
u"minItems": _validators.minItems,
191191
u"minLength": _validators.minLength,
192-
u"minimum": _validators.minimum,
192+
u"minimum": _validators.minimum_draft3_draft4,
193193
u"multipleOf": _validators.multipleOf,
194194
u"pattern": _validators.pattern,
195195
u"patternProperties": _validators.patternProperties,
@@ -215,11 +215,11 @@ def extend(validator, validators, version=None):
215215
u"maxItems": _validators.maxItems,
216216
u"maxLength": _validators.maxLength,
217217
u"maxProperties": _validators.maxProperties_draft4,
218-
u"maximum": _validators.maximum,
218+
u"maximum": _validators.maximum_draft3_draft4,
219219
u"minItems": _validators.minItems,
220220
u"minLength": _validators.minLength,
221221
u"minProperties": _validators.minProperties_draft4,
222-
u"minimum": _validators.minimum,
222+
u"minimum": _validators.minimum_draft3_draft4,
223223
u"multipleOf": _validators.multipleOf,
224224
u"not": _validators.not_,
225225
u"oneOf": _validators.oneOf_draft4,
@@ -241,11 +241,13 @@ def extend(validator, validators, version=None):
241241
u"additionalProperties": _validators.additionalProperties,
242242
u"allOf": _validators.allOf_draft6,
243243
u"anyOf": _validators.anyOf_draft6,
244+
u"exclusiveMaximum": _validators.exclusiveMaximum_draft6,
245+
u"exclusiveMinimum": _validators.exclusiveMinimum_draft6,
244246
u"items": _validators.items,
245247
u"maxLength": _validators.maxLength,
246-
u"maximum": _validators.maximum,
248+
u"maximum": _validators.maximum_draft6,
247249
u"minLength": _validators.minLength,
248-
u"minimum": _validators.minimum,
250+
u"minimum": _validators.minimum_draft6,
249251
u"not": _validators.not_,
250252
u"properties": _validators.properties,
251253
u"required": _validators.required,

0 commit comments

Comments
 (0)