pydantic
pydantic-core
BlogDocsChangelog

Add unified tuple validator that can handle "variadic" tuples via PEP-646

#865Merged
Comparing
variadic-tuple
(
1beadd8
) with
main
(
a1b934f
)
CodSpeed Performance Gauge
-1%
Improvements
1
Untouched
139

Benchmarks

Improved

test_core_future
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime
CodSpeed Performance Gauge
+11%
31.8 µs28.7 µs

Passed

test_complete_core_isinstance
tests/benchmarks/test_complete_benchmark.py
CodSpeed Performance Gauge
+4%
1.9 ms1.8 ms
test_complete_core_error
tests/benchmarks/test_complete_benchmark.py
CodSpeed Performance Gauge
+4%
1.9 ms1.9 ms
test_list_of_any_core_py
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+3%
104.5 µs101.1 µs
test_list_of_ints_core_json
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+2%
1,011.5 µs987.4 µs
test_json_direct_list_int
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
+2%
165.6 µs162.8 µs
test_model_list_core_json
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
+2%
183 µs180.2 µs
test_isinstance_string_strict_true
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
14 µs13.8 µs
test_dict_of_ints_core_json
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
2.5 ms2.5 ms
test_complete_core_strict
tests/benchmarks/test_complete_benchmark.py
CodSpeed Performance Gauge
+1%
280.5 µs277.4 µs
test_decimal_from_string_pyd
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDecimal
CodSpeed Performance Gauge
+1%
34.8 µs34.4 µs
test_json_direct_list_str
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
+1%
176.3 µs174.3 µs
test_core_dict_filter
tests/benchmarks/test_serialization_micro.py::TestBenchmarkSimpleModel
CodSpeed Performance Gauge
+1%
80.1 µs79.2 µs
test_json_any_list_int
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
+1%
269.2 µs266.6 µs
test_python_json_list_int
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
+1%
151.6 µs150.2 µs
test_set_of_ints_core_json
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
1.2 ms1.2 ms
test_datetime
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
+1%
29.7 µs29.4 µs
test_dict_of_any_core
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
771 µs765.3 µs
test_int_range
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
14.6 µs14.5 µs
test_core_string_lax
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
13.7 µs13.6 µs
test_json_any_list_str
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
+1%
279.3 µs277.5 µs
test_validate_literal[json-many_small_strings]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
+1%
16.6 µs16.5 µs
test_core_dict
tests/benchmarks/test_serialization_micro.py::TestBenchmarkSimpleModel
CodSpeed Performance Gauge
+1%
78 µs77.6 µs
test_complete_core_lax
tests/benchmarks/test_complete_benchmark.py
CodSpeed Performance Gauge
+1%
304.2 µs302.6 µs
test_model_instance_abc
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
34.3 µs34.2 µs
test_uuid_from_uuid_core
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID
CodSpeed Performance Gauge
0%
13.8 µs13.7 µs
test_int_error
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
44.1 µs44 µs
test_validate_literal[python-few_small_strings]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
14.4 µs14.4 µs
test_isinstance_string_lax_true
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
13.9 µs13.8 µs
test_to_string_format
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
26.5 µs26.4 µs
test_strict_union_core
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUnion
CodSpeed Performance Gauge
0%
16.3 µs16.2 µs
test_validate_literal[json-few_ints]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
15.4 µs15.4 µs
test_core_python
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime
CodSpeed Performance Gauge
0%
31.5 µs31.3 µs
test_core_json
tests/benchmarks/test_serialization_micro.py::TestBenchmarkSimpleModel
CodSpeed Performance Gauge
0%
83.4 µs83.1 µs
test_validate_literal[json-few_small_strings]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
17.6 µs17.6 µs
test_uuid_from_string_pyd
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID
CodSpeed Performance Gauge
0%
51.8 µs51.6 µs
test_bytes_core
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
13.6 µs13.6 µs
test_validate_literal[python-many_ints]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
14.6 µs14.6 µs
test_python_json_list_none
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
122.1 µs121.8 µs
test_isinstance_string_lax_false
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
15.6 µs15.6 µs
test_smart_union_core
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUnion
CodSpeed Performance Gauge
0%
15.8 µs15.8 µs
test_decimal_from_string_limit
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDecimal
CodSpeed Performance Gauge
0%
18 µs17.9 µs
test_validate_literal[json-many_large_strings]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
16.9 µs16.8 µs
test_validate_literal[json-few_large_strings]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
16.9 µs16.9 µs
test_uuid
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
35.8 µs35.7 µs
test_nested_schema_using_defs
tests/benchmarks/test_nested_benchmark.py
CodSpeed Performance Gauge
0%
20.4 ms20.4 ms
test_python_json_list_str
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
156.4 µs156.3 µs
test_date_format_function_no_info
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
51.6 µs51.5 µs
test_filter
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
46.3 µs46.2 µs
test_core_string_strict_wrong_str_e
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
42.4 µs42.3 µs
test_date_format
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
51.1 µs51 µs
test_many_models_core_model
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
3.2 ms3.2 ms
test_bool_core
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
23.6 µs23.6 µs
test_dict_of_ints_core
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
1.1 ms1.1 ms
test_date_from_date
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX
CodSpeed Performance Gauge
0%
13.8 µs13.8 µs
test_dont_raise_error_no_info
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
17.8 µs17.8 µs
test_validate_literal[python-few_ints]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
14.6 µs14.6 µs
test_model_exclude_unset_true
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
36.7 µs36.7 µs
test_int_range_json
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
15.6 µs15.6 µs
test_dont_raise_error
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
20.1 µs20.1 µs
test_nested_schema_inlined
tests/benchmarks/test_nested_benchmark.py
CodSpeed Performance Gauge
0%
20.8 ms20.9 ms
test_uuid_from_string_core
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID
CodSpeed Performance Gauge
0%
36.4 µs36.5 µs
test_date_format_function
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
52.7 µs52.8 µs
test_many_models_core_dict
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
1.2 ms1.2 ms
test_validate_literal[python-many_small_strings]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
14.4 µs14.4 µs
test_core_model_json
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
27.8 µs27.9 µs
test_core_raw
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime
CodSpeed Performance Gauge
0%
13.9 µs13.9 µs
test_complete_core_json
tests/benchmarks/test_complete_benchmark.py
CodSpeed Performance Gauge
0%
623.4 µs624.7 µs
test_chain_function
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
25.1 µs25.2 µs
test_raise_error_custom
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
37.5 µs37.5 µs
test_core_str
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID
CodSpeed Performance Gauge
0%
35.7 µs35.8 µs
test_smart_union_coerce_core
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUnion
CodSpeed Performance Gauge
0%
17.4 µs17.4 µs
test_small_class_core_model
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
32.5 µs32.6 µs
test_core_json_fs
tests/benchmarks/test_micro_benchmarks.py::TestModelLarge
CodSpeed Performance Gauge
0%
208 µs208.8 µs
test_validate_literal[json-many_ints]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
15.3 µs15.4 µs
test_core_raw
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID
CodSpeed Performance Gauge
0%
13.7 µs13.8 µs
test_to_string_direct
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
0%
21.1 µs21.2 µs
test_chain_two_functions
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
30.3 µs30.4 µs
test_strict_int
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
0%
13.7 µs13.7 µs
test_core_python
tests/benchmarks/test_micro_benchmarks.py::TestModelLarge
CodSpeed Performance Gauge
0%
145.1 µs145.8 µs
test_core_python_fs
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkSimpleModel
CodSpeed Performance Gauge
-1%
79.2 µs79.6 µs
test_model_exclude_unset_false
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
-1%
30.4 µs30.5 µs
test_tagged_union_int_keys_json
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-1%
30.2 µs30.4 µs
test_model_core_json
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID
CodSpeed Performance Gauge
-1%
51.2 µs51.4 µs
test_isinstance_string_strict_false
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-1%
15.1 µs15.2 µs
test_validate_literal[python-few_large_strings]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-1%
14.5 µs14.6 µs
test_uuid_from_uuid_pyd
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID
CodSpeed Performance Gauge
-1%
14.3 µs14.4 µs
test_build_schema
tests/benchmarks/test_complete_benchmark.py
CodSpeed Performance Gauge
-1%
866.5 µs871.9 µs
test_list_of_ints_core_py
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-1%
549.3 µs552.8 µs
test_core_string_strict
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-1%
13.5 µs13.6 µs
test_core_string_lax_wrong
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-1%
25.9 µs26.1 µs
test_core_model_py_extra
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
-1%
32.9 µs33.1 µs
test_core_model_py
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
-1%
28.6 µs28.8 µs
test_validate_literal[python-many_large_strings]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-1%
14.4 µs14.5 µs
test_core_model_json_extra
tests/benchmarks/test_serialization_micro.py
CodSpeed Performance Gauge
-1%
32.1 µs32.4 µs
test_chain_nested_functions
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-1%
28.6 µs28.8 µs
test_core_string_strict_wrong
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-1%
25.6 µs25.8 µs
test_core_root_model
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-1%
41.1 µs41.5 µs
test_strict_union_error_core
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUnion
CodSpeed Performance Gauge
-1%
31.9 µs32.2 µs
test_arguments
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-1%
27.3 µs27.6 µs
test_frozenset_of_ints_core
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-1%
262.1 µs265.6 µs
test_model_core_json
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime
CodSpeed Performance Gauge
-2%
39.5 µs40.1 µs
test_raise_error_value_error
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-2%
37.2 µs37.8 µs
test_isinstance_json
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-2%
22.2 µs22.6 µs
test_generator_python
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-2%
27.4 µs27.8 µs
test_set_of_ints_core_json_duplicates
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-2%
703.3 µs715.2 µs
test_field_function_validator
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-2%
398.7 µs405.5 µs
test_core_json_fs
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkSimpleModel
CodSpeed Performance Gauge
-2%
153.2 µs155.8 µs
test_list_of_nullable_core
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-2%
121.3 µs123.4 µs
test_core_str
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime
CodSpeed Performance Gauge
-2%
21 µs21.4 µs
test_core_future_str
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime
CodSpeed Performance Gauge
-2%
21.2 µs21.6 µs
test_generator_rust
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-2%
21.2 µs21.6 µs
test_chain_list
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-2%
26.9 µs27.4 µs
test_core_future
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX
CodSpeed Performance Gauge
-2%
19.6 µs20 µs
test_with_default
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-2%
24.8 µs25.3 µs
test_validate_literal[python-few_mixed]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-2%
18.4 µs18.8 µs
test_model_instance
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-2%
33.6 µs34.3 µs
test_date_from_datetime
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX
CodSpeed Performance Gauge
-2%
23.7 µs24.2 µs
test_definition_model_core
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-2%
1.2 ms1.2 ms
test_small_class_core_dict
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-2%
22.3 µs22.8 µs
test_definition_out_of_tree
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-2%
1.3 ms1.3 ms
test_frozenset_of_ints_duplicates_core
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-2%
152.5 µs156.4 µs
test_validate_literal[json-few_mixed]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-3%
19.9 µs20.5 µs
test_decimal_from_string_core
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDecimal
CodSpeed Performance Gauge
-3%
24.3 µs25 µs
test_set_of_ints_core_length
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-3%
780.3 µs800.7 µs
test_list_of_dict_models_core
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-3%
136.4 µs140 µs
test_core_future_str
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX
CodSpeed Performance Gauge
-3%
18.5 µs19 µs
test_validate_literal[json-few_str_enum]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-3%
22.3 µs23 µs
test_tuple_many_variable
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-3%
20.7 µs21.3 µs
test_set_of_ints_core
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-3%
766.9 µs789.3 µs
test_date_from_datetime_str
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX
CodSpeed Performance Gauge
-3%
19.9 µs20.5 µs
test_validate_literal[python-few_str_enum]
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-3%
17.7 µs18.3 µs
test_set_of_ints_core_duplicates
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-3%
324.7 µs334.7 µs
test_tagged_union_int_keys_python
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-3%
22.8 µs23.6 µs
test_variable_tuple
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-4%
20.6 µs21.4 µs
test_definition_in_tree
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-4%
810.1 µs843.1 µs
test_core_python
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID
CodSpeed Performance Gauge
-4%
29.6 µs30.9 µs
test_tuple_many_positional
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-5%
20.2 µs21.2 µs
test_positional_tuple
tests/benchmarks/test_micro_benchmarks.py
CodSpeed Performance Gauge
-5%
20.3 µs21.5 µs
test_date_from_str
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX
CodSpeed Performance Gauge
-6%
18.4 µs19.6 µs

Commits

Click on a commit to change the comparison range
Base
main
a1b934f
-0.53%
Rework to use a single tuple schema that can express positional, variable, and variadic schemas
1beadd8
2 years ago
by dmontagu
© 2025 CodSpeed Technology
Home Terms Privacy Docs