pydantic
pydantic-core
BlogDocsChangelog

Support manually specifying case labels for union validators

#841Merged
Comparing
improved-locs
(
40a5f7e
) with
main
(
7d67b91
)
CodSpeed Performance Gauge
-16%
Regressions
1
Untouched
137

Benchmarks

Failed

test_decimal_from_string_core
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDecimal
Regression
CodSpeed Performance Gauge
-16%
33.2 µs39.4 µs

Passed

test_strict_union_core
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUnion
CodSpeed Performance Gauge
+9%
19.5 µs17.9 µs
test_validate_literal[python-few_mixed]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+4%
21.7 µs20.8 µs
test_chain_nested_functions
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+4%
34.2 µs32.8 µs
test_variable_tuple
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+4%
24.5 µs23.5 µs
test_date_from_datetime
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX
CodSpeed Performance Gauge
+4%
28 µs27 µs
test_strict_union_error_core
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUnion
CodSpeed Performance Gauge
+3%
34.1 µs33 µs
test_chain_function
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+3%
29.8 µs28.9 µs
test_validate_literal[json-few_str_enum]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+3%
25 µs24.3 µs
test_validate_literal[python-few_str_enum]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+3%
20.3 µs19.7 µs
test_core_python
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID
CodSpeed Performance Gauge
+3%
33.2 µs32.3 µs
test_datetime
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
+3%
34.3 µs33.5 µs
test_dont_raise_error
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+3%
25.2 µs24.6 µs
test_raise_error_value_error
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+2%
37.9 µs37 µs
test_date_from_str
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX
CodSpeed Performance Gauge
+2%
21.6 µs21.1 µs
test_core_json
tests/benchmarks/test_serialization_micro.py::TestBenchmarkSimpleModel
CodSpeed Performance Gauge
+2%
97.3 µs95.8 µs
test_smart_union_coerce_core
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUnion
CodSpeed Performance Gauge
+1%
18 µs17.8 µs
test_core_string_strict_wrong
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
30.5 µs30 µs
test_definition_model_core
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
1.2 ms1.2 ms
test_tuple_many_variable
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
23.5 µs23.2 µs
test_validate_literal[json-few_mixed]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
22.8 µs22.5 µs
test_core_str
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime
CodSpeed Performance Gauge
+1%
23.1 µs22.8 µs
test_validate_literal[python-many_ints]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
14.9 µs14.7 µs
test_isinstance_string_lax_false
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
15.3 µs15.2 µs
test_isinstance_string_lax_true
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
13.9 µs13.8 µs
test_generator_python
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
28.3 µs28 µs
test_validate_literal[json-few_large_strings]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
16.9 µs16.7 µs
test_validate_literal[python-few_large_strings]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
14.8 µs14.7 µs
test_filter
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
+1%
47.4 µs47 µs
test_raise_error_custom
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
39.1 µs38.7 µs
test_decimal_from_string_limit
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDecimal
CodSpeed Performance Gauge
+1%
16.8 µs16.7 µs
test_bytes_core
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
13.9 µs13.7 µs
test_isinstance_string_strict_false
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
15.1 µs15 µs
test_list_of_dict_models_core
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
116.2 µs115.3 µs
test_core_string_lax
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
13.9 µs13.8 µs
test_tagged_union_int_keys_python
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
34.9 µs34.7 µs
test_validate_literal[python-few_ints]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
14.8 µs14.7 µs
test_validate_literal[json-many_ints]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
16.2 µs16.1 µs
test_smart_union_core
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUnion
CodSpeed Performance Gauge
+1%
16.3 µs16.2 µs
test_validate_literal[json-many_large_strings]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
16.8 µs16.7 µs
test_positional_tuple
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
23.9 µs23.7 µs
test_date_from_datetime_str
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX
CodSpeed Performance Gauge
0%
23.1 µs23 µs
test_core_model_py
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
35.1 µs35 µs
test_core_future
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX
CodSpeed Performance Gauge
0%
22.6 µs22.5 µs
test_model_instance
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
33.7 µs33.6 µs
test_validate_literal[python-many_small_strings]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
14.7 µs14.7 µs
test_list_of_ints_core_py
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
488.2 µs486.4 µs
test_core_root_model
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
43.1 µs43 µs
test_core_string_strict
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
13.8 µs13.8 µs
test_isinstance_string_strict_true
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
14 µs14 µs
test_uuid_from_uuid_core
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID
CodSpeed Performance Gauge
0%
14.1 µs14 µs
test_int_range
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
14.7 µs14.7 µs
test_validate_literal[json-many_small_strings]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
16.5 µs16.5 µs
test_core_future_str
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX
CodSpeed Performance Gauge
0%
21 µs20.9 µs
test_python_json_list_str
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
158.6 µs158.3 µs
test_dict_of_ints_core
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
1 ms1 ms
test_python_json_list_int
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
153.9 µs153.6 µs
test_isinstance_json
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
24.9 µs24.9 µs
test_date_format_function
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
52.3 µs52.3 µs
test_dict_of_any_core
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
762.7 µs761.8 µs
test_set_of_ints_core
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
689.6 µs688.8 µs
test_model_exclude_unset_true
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
39.7 µs39.6 µs
test_set_of_ints_core_json
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
1.6 ms1.6 ms
test_list_of_ints_core_json
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
1.4 ms1.4 ms
test_set_of_ints_core_length
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
700.7 µs700.5 µs
test_strict_int
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
13.8 µs13.8 µs
test_field_function_validator
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
484.8 µs484.7 µs
test_bool_core
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
23.8 µs23.8 µs
test_validate_literal[python-few_small_strings]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
14.7 µs14.7 µs
test_validate_literal[json-few_ints]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
16.2 µs16.2 µs
test_definition_out_of_tree
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
1.3 ms1.3 ms
test_core_model_json_extra
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
32.9 µs32.9 µs
test_definition_in_tree
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
820.6 µs820.8 µs
test_model_list_core_json
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
186.3 µs186.4 µs
test_chain_list
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
30.4 µs30.4 µs
test_core_dict_filter
tests/benchmarks/test_serialization_micro.py::TestBenchmarkSimpleModel
CodSpeed Performance Gauge
0%
85.8 µs85.9 µs
test_many_models_core_dict
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
899.9 µs900.9 µs
test_core_future_str
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime
CodSpeed Performance Gauge
0%
23.3 µs23.3 µs
test_python_json_list_none
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
127.5 µs127.7 µs
test_list_of_nullable_core
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
137.9 µs138.2 µs
test_uuid_from_uuid_pyd
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID
CodSpeed Performance Gauge
0%
15 µs15 µs
test_date_from_date
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX
CodSpeed Performance Gauge
0%
14.2 µs14.2 µs
test_uuid_from_string_pyd
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID
CodSpeed Performance Gauge
0%
53.8 µs53.9 µs
test_core_json_fs
tests/benchmarks/test_micro_benchmarks.py::TestModelLarge
CodSpeed Performance Gauge
0%
228.5 µs229 µs
test_dict_of_ints_core_json
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
3 ms3 ms
test_frozenset_of_ints_core
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
256.2 µs256.8 µs
test_core_model_json
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
29 µs29.1 µs
test_set_of_ints_core_json_duplicates
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
1.2 ms1.2 ms
test_set_of_ints_core_duplicates
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
332.1 µs333.1 µs
test_core_json_fs
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkSimpleModel
CodSpeed Performance Gauge
0%
253 µs253.9 µs
test_json_any_list_int
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
269.2 µs270.1 µs
test_int_range_json
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
16.2 µs16.3 µs
test_arguments
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
29.6 µs29.7 µs
test_core_model_py_extra
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
38.3 µs38.4 µs
test_build_schema
tests/benchmarks/test_complete_benchmark.py
CodSpeed Performance Gauge
0%
819.2 µs822.2 µs
test_uuid
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
41.3 µs41.4 µs
test_core_raw
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID
CodSpeed Performance Gauge
0%
14.1 µs14.1 µs
test_validate_literal[python-many_large_strings]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
14.8 µs14.9 µs
test_json_direct_list_int
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
174.1 µs174.8 µs
test_to_string_direct
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
22.6 µs22.7 µs
test_core_string_strict_wrong_str_e
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
45.7 µs45.9 µs
test_tagged_union_int_keys_json
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
33 µs33.1 µs
test_int_error
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
53.2 µs53.4 µs
test_core_dict
tests/benchmarks/test_serialization_micro.py::TestBenchmarkSimpleModel
CodSpeed Performance Gauge
0%
78.8 µs79.2 µs
test_complete_core_json
tests/benchmarks/test_complete_benchmark.py
CodSpeed Performance Gauge
0%
844.1 µs848.3 µs
test_date_format_function_no_info
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
-1%
51.4 µs51.7 µs
test_core_future
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime
CodSpeed Performance Gauge
-1%
35 µs35.2 µs
test_model_instance_abc
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-1%
34.4 µs34.6 µs
test_many_models_core_model
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-1%
2.1 ms2.1 ms
test_core_python_fs
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkSimpleModel
CodSpeed Performance Gauge
-1%
93.1 µs93.6 µs
test_complete_core_strict
tests/benchmarks/test_complete_benchmark.py
CodSpeed Performance Gauge
-1%
311.1 µs312.8 µs
test_complete_core_isinstance
tests/benchmarks/test_complete_benchmark.py
CodSpeed Performance Gauge
-1%
1.8 ms1.8 ms
test_frozenset_of_ints_duplicates_core
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-1%
160.9 µs161.8 µs
test_validate_literal[json-few_small_strings]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-1%
16.4 µs16.6 µs
test_list_of_any_core_py
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-1%
100.7 µs101.4 µs
test_json_any_list_str
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
-1%
279.8 µs282 µs
test_decimal_from_string_pyd
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDecimal
CodSpeed Performance Gauge
-1%
42.3 µs42.7 µs
test_with_default
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-1%
28.4 µs28.7 µs
test_core_raw
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime
CodSpeed Performance Gauge
-1%
14 µs14.2 µs
test_core_python
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime
CodSpeed Performance Gauge
-1%
31.9 µs32.3 µs
test_complete_core_lax
tests/benchmarks/test_complete_benchmark.py
CodSpeed Performance Gauge
-1%
408.2 µs413.5 µs
test_date_format
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
-1%
51.8 µs52.5 µs
test_to_string_format
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
-2%
27 µs27.4 µs
test_uuid_from_string_core
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID
CodSpeed Performance Gauge
-2%
43.8 µs44.6 µs
test_tuple_many_positional
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-2%
24.8 µs25.2 µs
test_model_core_json
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime
CodSpeed Performance Gauge
-2%
38.3 µs39 µs
test_small_class_core_model
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-2%
32.8 µs33.5 µs
test_complete_core_error
tests/benchmarks/test_complete_benchmark.py
CodSpeed Performance Gauge
-2%
2 ms2.1 ms
test_chain_two_functions
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-2%
33.5 µs34.3 µs
test_generator_rust
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-2%
23.5 µs24.1 µs
test_model_core_json
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID
CodSpeed Performance Gauge
-2%
54.4 µs55.8 µs
test_model_exclude_unset_false
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
-3%
36.7 µs37.8 µs
test_core_string_lax_wrong
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-3%
37 µs38.1 µs
test_small_class_core_dict
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-3%
22.9 µs23.6 µs
test_core_str
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID
CodSpeed Performance Gauge
-3%
41.1 µs42.3 µs
test_json_direct_list_str
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
-3%
193.3 µs199.2 µs
test_core_python
tests/benchmarks/test_micro_benchmarks.py::TestModelLarge
CodSpeed Performance Gauge
-4%
150.9 µs157.2 µs
test_dont_raise_error_no_info
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-7%
18.3 µs19.6 µs

Commits

Click on a commit to change the comparison range
Base
main
7d67b91
-42.89%
Use new format for union/tagged-union error locs
349a811
2 years ago
by dmontagu
+17.08%
Try zipping labels in the struct
2c0b2a3
2 years ago
by dmontagu
+8.77%
Merge main
dd70ee0
2 years ago
by dmontagu
+4.58%
Fix tests
6deb4a3
2 years ago
by dmontagu
+12.44%
Revert changes to locs
10368d0
2 years ago
by dmontagu
-15.86%
Add serialization tests
40a5f7e
2 years ago
by dmontagu
© 2025 CodSpeed Technology
Home Terms Privacy Docs