1
1
use std:: fmt:: Debug ;
2
2
3
3
use enum_dispatch:: enum_dispatch;
4
- use jiter:: StringCacheMode ;
4
+ use jiter:: { PartialMode , StringCacheMode } ;
5
5
6
6
use pyo3:: exceptions:: PyTypeError ;
7
7
use pyo3:: prelude:: * ;
@@ -165,7 +165,7 @@ impl SchemaValidator {
165
165
}
166
166
167
167
#[ allow( clippy:: too_many_arguments) ]
168
- #[ pyo3( signature = ( input, * , strict=None , from_attributes=None , context=None , self_instance=None , allow_partial=false ) ) ]
168
+ #[ pyo3( signature = ( input, * , strict=None , from_attributes=None , context=None , self_instance=None , allow_partial=PartialMode :: Off ) ) ]
169
169
pub fn validate_python (
170
170
& self ,
171
171
py : Python ,
@@ -174,7 +174,7 @@ impl SchemaValidator {
174
174
from_attributes : Option < bool > ,
175
175
context : Option < & Bound < ' _ , PyAny > > ,
176
176
self_instance : Option < & Bound < ' _ , PyAny > > ,
177
- allow_partial : bool ,
177
+ allow_partial : PartialMode ,
178
178
) -> PyResult < PyObject > {
179
179
self . _validate (
180
180
py,
@@ -207,7 +207,7 @@ impl SchemaValidator {
207
207
from_attributes,
208
208
context,
209
209
self_instance,
210
- false ,
210
+ false . into ( ) ,
211
211
) {
212
212
Ok ( _) => Ok ( true ) ,
213
213
Err ( ValError :: InternalErr ( err) ) => Err ( err) ,
@@ -217,15 +217,15 @@ impl SchemaValidator {
217
217
}
218
218
}
219
219
220
- #[ pyo3( signature = ( input, * , strict=None , context=None , self_instance=None , allow_partial=false ) ) ]
220
+ #[ pyo3( signature = ( input, * , strict=None , context=None , self_instance=None , allow_partial=PartialMode :: Off ) ) ]
221
221
pub fn validate_json (
222
222
& self ,
223
223
py : Python ,
224
224
input : & Bound < ' _ , PyAny > ,
225
225
strict : Option < bool > ,
226
226
context : Option < & Bound < ' _ , PyAny > > ,
227
227
self_instance : Option < & Bound < ' _ , PyAny > > ,
228
- allow_partial : bool ,
228
+ allow_partial : PartialMode ,
229
229
) -> PyResult < PyObject > {
230
230
let r = match json:: validate_json_bytes ( input) {
231
231
Ok ( v_match) => self . _validate_json (
@@ -242,14 +242,14 @@ impl SchemaValidator {
242
242
r. map_err ( |e| self . prepare_validation_err ( py, e, InputType :: Json ) )
243
243
}
244
244
245
- #[ pyo3( signature = ( input, * , strict=None , context=None , allow_partial=false ) ) ]
245
+ #[ pyo3( signature = ( input, * , strict=None , context=None , allow_partial=PartialMode :: Off ) ) ]
246
246
pub fn validate_strings (
247
247
& self ,
248
248
py : Python ,
249
249
input : Bound < ' _ , PyAny > ,
250
250
strict : Option < bool > ,
251
251
context : Option < & Bound < ' _ , PyAny > > ,
252
- allow_partial : bool ,
252
+ allow_partial : PartialMode ,
253
253
) -> PyResult < PyObject > {
254
254
let t = InputType :: String ;
255
255
let string_mapping = StringMapping :: new_value ( input) . map_err ( |e| self . prepare_validation_err ( py, e, t) ) ?;
@@ -283,7 +283,7 @@ impl SchemaValidator {
283
283
} ;
284
284
285
285
let guard = & mut RecursionState :: default ( ) ;
286
- let mut state = ValidationState :: new ( extra, guard, false ) ;
286
+ let mut state = ValidationState :: new ( extra, guard, false . into ( ) ) ;
287
287
self . validator
288
288
. validate_assignment ( py, & obj, field_name, & field_value, & mut state)
289
289
. map_err ( |e| self . prepare_validation_err ( py, e, InputType :: Python ) )
@@ -306,7 +306,7 @@ impl SchemaValidator {
306
306
cache_str : self . cache_str ,
307
307
} ;
308
308
let recursion_guard = & mut RecursionState :: default ( ) ;
309
- let mut state = ValidationState :: new ( extra, recursion_guard, false ) ;
309
+ let mut state = ValidationState :: new ( extra, recursion_guard, false . into ( ) ) ;
310
310
let r = self . validator . default_value ( py, None :: < i64 > , & mut state) ;
311
311
match r {
312
312
Ok ( maybe_default) => match maybe_default {
@@ -352,7 +352,7 @@ impl SchemaValidator {
352
352
from_attributes : Option < bool > ,
353
353
context : Option < & Bound < ' py , PyAny > > ,
354
354
self_instance : Option < & Bound < ' py , PyAny > > ,
355
- allow_partial : bool ,
355
+ allow_partial : PartialMode ,
356
356
) -> ValResult < PyObject > {
357
357
let mut recursion_guard = RecursionState :: default ( ) ;
358
358
let mut state = ValidationState :: new (
@@ -379,7 +379,7 @@ impl SchemaValidator {
379
379
strict : Option < bool > ,
380
380
context : Option < & Bound < ' _ , PyAny > > ,
381
381
self_instance : Option < & Bound < ' _ , PyAny > > ,
382
- allow_partial : bool ,
382
+ allow_partial : PartialMode ,
383
383
) -> ValResult < PyObject > {
384
384
let json_value = jiter:: JsonValue :: parse_with_config ( json_data, true , allow_partial)
385
385
. map_err ( |e| json:: map_json_err ( input, e, json_data) ) ?;
@@ -430,7 +430,7 @@ impl<'py> SelfValidator<'py> {
430
430
let mut state = ValidationState :: new (
431
431
Extra :: new ( strict, None , None , None , InputType :: Python , true . into ( ) ) ,
432
432
& mut recursion_guard,
433
- false ,
433
+ false . into ( ) ,
434
434
) ;
435
435
match self . validator . validator . validate ( py, schema, & mut state) {
436
436
Ok ( schema_obj) => Ok ( schema_obj. into_bound ( py) ) ,
0 commit comments