pydantic
/
pydantic-core
Blog
Docs
Overview
Branches
Benchmarks
Runs
fix `wrap` serializer breaking union serialization in presence of extra fields
(
#1530
)
Merged
Comparing
dh/union-wrap-ser
(
21537b5
) with
main
(
cd0346d
)
0%
IMPROVEMENTS
0
REGRESSIONS
0
UNTOUCHED
155
NEW
0
DROPPED
0
IGNORED
0
Benchmarks
Passed
test_isinstance_string_strict_false
tests/benchmarks/test_micro_benchmarks.py::test_isinstance_string_strict_false
+9%
16 µs
14.8 µs
test_strict_union_core
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUnion::test_strict_union_core
+8%
17.5 µs
16.3 µs
test_complete_core_error
tests/benchmarks/test_complete_benchmark.py::test_complete_core_error
+4%
1.8 ms
1.8 ms
test_model_core_json
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime::test_model_core_json
+3%
31.4 µs
30.4 µs
test_complete_core_isinstance
tests/benchmarks/test_complete_benchmark.py::test_complete_core_isinstance
+3%
1.8 ms
1.7 ms
test_core_model_py_extra
tests/benchmarks/test_serialization_micro.py::test_core_model_py_extra
+3%
29.6 µs
28.8 µs
test_model_exclude_unset_false
tests/benchmarks/test_serialization_micro.py::test_model_exclude_unset_false
+2%
29.3 µs
28.8 µs
test_validate_literal[json-few_small_strings]
tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[json-few_small_strings]
+2%
15.7 µs
15.5 µs
test_validate_literal[json-many_large_strings]
tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[json-many_large_strings]
+2%
16 µs
15.7 µs
test_int_range_json
tests/benchmarks/test_micro_benchmarks.py::test_int_range_json
+2%
15.5 µs
15.3 µs
test_core_raw
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime::test_core_raw
+1%
13.9 µs
13.7 µs
test_validate_literal[python-few_ints]
tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[python-few_ints]
+1%
14.4 µs
14.2 µs
test_core_string_strict_wrong_str_e
tests/benchmarks/test_micro_benchmarks.py::test_core_string_strict_wrong_str_e
+1%
40.2 µs
39.6 µs
test_enum_int_core
tests/benchmarks/test_micro_benchmarks.py::test_enum_int_core
+1%
15.2 µs
15 µs
test_validate_literal[json-few_str_enum]
tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[json-few_str_enum]
+1%
19.8 µs
19.5 µs
test_validate_literal[json-many_small_strings]
tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[json-many_small_strings]
+1%
15.8 µs
15.6 µs
test_model_exclude_unset_true
tests/benchmarks/test_serialization_micro.py::test_model_exclude_unset_true
+1%
35.5 µs
35.1 µs
test_core_future
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX::test_core_future
+1%
17.8 µs
17.6 µs
test_decimal_from_string_core
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDecimal::test_decimal_from_string_core
+1%
23.4 µs
23.1 µs
test_core_model_py
tests/benchmarks/test_serialization_micro.py::test_core_model_py
+1%
25.9 µs
25.6 µs
test_core_string_lax
tests/benchmarks/test_micro_benchmarks.py::test_core_string_lax
+1%
13.4 µs
13.3 µs
test_raise_error_custom
tests/benchmarks/test_micro_benchmarks.py::test_raise_error_custom
+1%
37.7 µs
37.3 µs
test_core_raw
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_core_raw
+1%
13.6 µs
13.5 µs
test_validate_literal[python-few_small_strings]
tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[python-few_small_strings]
+1%
14.5 µs
14.3 µs
test_validate_literal[python-many_small_strings]
tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[python-many_small_strings]
+1%
14.5 µs
14.4 µs
test_validate_literal[python-few_large_strings]
tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[python-few_large_strings]
+1%
14.6 µs
14.5 µs
test_validate_literal[json-few_ints]
tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[json-few_ints]
+1%
15.2 µs
15.1 µs
test_validate_literal[python-few_str_enum]
tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[python-few_str_enum]
+1%
15.1 µs
15 µs
test_smart_union_core
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUnion::test_smart_union_core
+1%
15.6 µs
15.5 µs
test_validate_literal[json-few_large_strings]
tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[json-few_large_strings]
+1%
15.9 µs
15.8 µs
test_decimal_from_string_pyd
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDecimal::test_decimal_from_string_pyd
+1%
32.3 µs
32 µs
test_arguments
tests/benchmarks/test_micro_benchmarks.py::test_arguments
+1%
22.3 µs
22.1 µs
test_validate_literal[python-few_mixed]
tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[python-few_mixed]
+1%
16.5 µs
16.4 µs
test_uuid_from_uuid_core
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_uuid_from_uuid_core
+1%
13.7 µs
13.6 µs
test_date_from_date
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX::test_date_from_date
+1%
13.8 µs
13.7 µs
test_dont_raise_error_no_info
tests/benchmarks/test_micro_benchmarks.py::test_dont_raise_error_no_info
+1%
17.1 µs
17 µs
test_chain_nested_functions
tests/benchmarks/test_micro_benchmarks.py::test_chain_nested_functions
+1%
28.2 µs
28 µs
test_isinstance_json
tests/benchmarks/test_micro_benchmarks.py::test_isinstance_json
+1%
17.7 µs
17.5 µs
test_core_model_json
tests/benchmarks/test_serialization_micro.py::test_core_model_json
+1%
24.9 µs
24.7 µs
test_validate_literal[python-many_ints]
tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[python-many_ints]
+1%
14.3 µs
14.2 µs
test_variable_tuple
tests/benchmarks/test_micro_benchmarks.py::test_variable_tuple
+1%
17.9 µs
17.8 µs
test_int_range
tests/benchmarks/test_micro_benchmarks.py::test_int_range
+1%
14.4 µs
14.3 µs
test_small_class_core_dict
tests/benchmarks/test_micro_benchmarks.py::test_small_class_core_dict
+1%
18.4 µs
18.3 µs
test_validate_literal[json-many_ints]
tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[json-many_ints]
+1%
15.2 µs
15.1 µs
test_date_from_str
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX::test_date_from_str
+1%
15.8 µs
15.7 µs
test_core_future
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime::test_core_future
+1%
25.6 µs
25.4 µs
test_filter
tests/benchmarks/test_serialization_micro.py::test_filter
+1%
41.5 µs
41.2 µs
test_dataclass_serialization_python
tests/benchmarks/test_serialization_micro.py::test_dataclass_serialization_python
+1%
21.5 µs
21.3 µs
test_tuple_many_positional
tests/benchmarks/test_micro_benchmarks.py::test_tuple_many_positional
+1%
17.6 µs
17.5 µs
test_bytes_core
tests/benchmarks/test_micro_benchmarks.py::test_bytes_core
+1%
13.4 µs
13.3 µs
test_with_default
tests/benchmarks/test_micro_benchmarks.py::test_with_default
+1%
22.5 µs
22.3 µs
test_generator_rust
tests/benchmarks/test_micro_benchmarks.py::test_generator_rust
+1%
18.3 µs
18.2 µs
test_enum_str_python
tests/benchmarks/test_micro_benchmarks.py::test_enum_str_python
+1%
23.2 µs
23.1 µs
test_list_of_nullable_core
tests/benchmarks/test_micro_benchmarks.py::test_list_of_nullable_core
+1%
102.6 µs
102 µs
test_chain_list
tests/benchmarks/test_micro_benchmarks.py::test_chain_list
+1%
24.4 µs
24.3 µs
test_tagged_union_int_keys_json
tests/benchmarks/test_micro_benchmarks.py::test_tagged_union_int_keys_json
+1%
24.4 µs
24.3 µs
test_enum_str_core
tests/benchmarks/test_micro_benchmarks.py::test_enum_str_core
+1%
14.8 µs
14.7 µs
test_list_of_strs_json_uncached
tests/benchmarks/test_micro_benchmarks.py::test_list_of_strs_json_uncached
+1%
408.1 µs
405.7 µs
test_date_format_function_no_info
tests/benchmarks/test_serialization_micro.py::test_date_format_function_no_info
+1%
51.1 µs
50.8 µs
test_generator_python
tests/benchmarks/test_micro_benchmarks.py::test_generator_python
+1%
22.5 µs
22.3 µs
test_core_str
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_core_str
+1%
32.4 µs
32.2 µs
test_chain_function
tests/benchmarks/test_micro_benchmarks.py::test_chain_function
0%
24.1 µs
24 µs
test_positional_tuple
tests/benchmarks/test_micro_benchmarks.py::test_positional_tuple
0%
18 µs
17.9 µs
test_smart_union_coerce_core
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUnion::test_smart_union_coerce_core
0%
17.2 µs
17.1 µs
test_datetime
tests/benchmarks/test_serialization_micro.py::test_datetime
0%
26.6 µs
26.5 µs
test_strict_int_fails
tests/benchmarks/test_micro_benchmarks.py::test_strict_int_fails
0%
26.9 µs
26.7 µs
test_dont_raise_error
tests/benchmarks/test_micro_benchmarks.py::test_dont_raise_error
0%
19.4 µs
19.3 µs
test_isinstance_string_strict_true
tests/benchmarks/test_micro_benchmarks.py::test_isinstance_string_strict_true
0%
13.4 µs
13.3 µs
test_set_of_ints_core_json_duplicates
tests/benchmarks/test_micro_benchmarks.py::test_set_of_ints_core_json_duplicates
0%
435.6 µs
433.7 µs
test_to_string_format
tests/benchmarks/test_serialization_micro.py::test_to_string_format
0%
22.3 µs
22.2 µs
test_uuid_from_uuid_pyd
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_uuid_from_uuid_pyd
0%
14.4 µs
14.4 µs
test_dataclass_serialization_json
tests/benchmarks/test_serialization_micro.py::test_dataclass_serialization_json
0%
24.2 µs
24.1 µs
test_set_of_ints_core_length
tests/benchmarks/test_micro_benchmarks.py::test_set_of_ints_core_length
0%
731.2 µs
728.4 µs
test_uuid
tests/benchmarks/test_serialization_micro.py::test_uuid
0%
23 µs
22.9 µs
test_complete_core_json
tests/benchmarks/test_complete_benchmark.py::test_complete_core_json
0%
443.1 µs
441.4 µs
test_bool_core
tests/benchmarks/test_micro_benchmarks.py::test_bool_core
0%
22.6 µs
22.6 µs
test_enum_int_python
tests/benchmarks/test_micro_benchmarks.py::test_enum_int_python
0%
23.4 µs
23.3 µs
test_core_future_str
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX::test_core_future_str
0%
16.5 µs
16.4 µs
test_core_string_strict_wrong
tests/benchmarks/test_micro_benchmarks.py::test_core_string_strict_wrong
0%
27 µs
26.9 µs
test_uuid_from_string_core
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_uuid_from_string_core
0%
32.3 µs
32.2 µs
test_core_python
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime::test_core_python
0%
26.2 µs
26.1 µs
test_validate_literal[json-few_mixed]
tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[json-few_mixed]
0%
18.1 µs
18 µs
test_core_string_lax_wrong
tests/benchmarks/test_micro_benchmarks.py::test_core_string_lax_wrong
0%
27.3 µs
27.2 µs
test_date_from_datetime_str
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX::test_date_from_datetime_str
0%
17.9 µs
17.8 µs
test_decimal_from_string_limit
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDecimal::test_decimal_from_string_limit
0%
18.2 µs
18.2 µs
test_chain_two_functions
tests/benchmarks/test_micro_benchmarks.py::test_chain_two_functions
0%
28 µs
28 µs
test_set_of_ints_core_json
tests/benchmarks/test_micro_benchmarks.py::test_set_of_ints_core_json
0%
882.6 µs
879.9 µs
test_complete_core_serializer_to_python
tests/benchmarks/test_complete_benchmark.py::test_complete_core_serializer_to_python
0%
260.8 µs
260 µs
test_complete_core_strict
tests/benchmarks/test_complete_benchmark.py::test_complete_core_strict
0%
251.3 µs
250.6 µs
test_set_of_ints_core
tests/benchmarks/test_micro_benchmarks.py::test_set_of_ints_core
0%
717.4 µs
715.5 µs
test_nested_schema_inlined
tests/benchmarks/test_nested_benchmark.py::test_nested_schema_inlined
0%
16 ms
16 ms
test_isinstance_string_lax_true
tests/benchmarks/test_micro_benchmarks.py::test_isinstance_string_lax_true
0%
13.4 µs
13.3 µs
test_dict_of_ints_core
tests/benchmarks/test_micro_benchmarks.py::test_dict_of_ints_core
0%
1 ms
1 ms
test_many_models_core_dict
tests/benchmarks/test_micro_benchmarks.py::test_many_models_core_dict
0%
954.3 µs
952.3 µs
test_build_schema
tests/benchmarks/test_complete_benchmark.py::test_build_schema
0%
743.9 µs
742.4 µs
test_model_list_core_json
tests/benchmarks/test_serialization_micro.py::test_model_list_core_json
0%
154 µs
153.7 µs
test_nested_schema_using_defs
tests/benchmarks/test_nested_benchmark.py::test_nested_schema_using_defs
0%
15.5 ms
15.4 ms
test_core_root_model
tests/benchmarks/test_micro_benchmarks.py::test_core_root_model
0%
34.8 µs
34.8 µs
test_frozenset_of_ints_core
tests/benchmarks/test_micro_benchmarks.py::test_frozenset_of_ints_core
0%
244.5 µs
244.1 µs
test_list_of_ints_core_py
tests/benchmarks/test_micro_benchmarks.py::test_list_of_ints_core_py
0%
511 µs
510.2 µs
test_list_of_strs_py_cached
tests/benchmarks/test_micro_benchmarks.py::test_list_of_strs_py_cached
0%
121 µs
120.8 µs
test_tagged_union_int_keys_python
tests/benchmarks/test_micro_benchmarks.py::test_tagged_union_int_keys_python
0%
20.2 µs
20.2 µs
test_core_dict
tests/benchmarks/test_serialization_micro.py::TestBenchmarkSimpleModel::test_core_dict
0%
72.3 µs
72.2 µs
test_list_of_any_core_py
tests/benchmarks/test_micro_benchmarks.py::test_list_of_any_core_py
0%
98.6 µs
98.5 µs
test_json_direct_list_int
tests/benchmarks/test_serialization_micro.py::test_json_direct_list_int
0%
134.5 µs
134.4 µs
test_frozenset_of_ints_duplicates_core
tests/benchmarks/test_micro_benchmarks.py::test_frozenset_of_ints_duplicates_core
0%
171 µs
170.8 µs
test_model_core_json
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_model_core_json
0%
41.9 µs
41.9 µs
test_json_any_list_int
tests/benchmarks/test_serialization_micro.py::test_json_any_list_int
0%
195.5 µs
195.4 µs
test_set_of_ints_core_duplicates
tests/benchmarks/test_micro_benchmarks.py::test_set_of_ints_core_duplicates
0%
348.5 µs
348.3 µs
test_int_error
tests/benchmarks/test_micro_benchmarks.py::test_int_error
0%
40.1 µs
40.1 µs
test_raise_error_value_error
tests/benchmarks/test_micro_benchmarks.py::test_raise_error_value_error
0%
36.2 µs
36.2 µs
test_list_of_dict_models_core
tests/benchmarks/test_micro_benchmarks.py::test_list_of_dict_models_core
0%
92.2 µs
92.1 µs
test_core_dict_filter
tests/benchmarks/test_serialization_micro.py::TestBenchmarkSimpleModel::test_core_dict_filter
0%
78.2 µs
78.2 µs
test_complete_core_serializer_to_json
tests/benchmarks/test_complete_benchmark.py::test_complete_core_serializer_to_json
0%
291.7 µs
291.7 µs
test_ser_list_of_lists
tests/benchmarks/test_serialization_micro.py::test_ser_list_of_lists
0%
1.2 ms
1.2 ms
test_dict_of_any_core
tests/benchmarks/test_micro_benchmarks.py::test_dict_of_any_core
0%
712.7 µs
712.6 µs
test_definition_in_tree
tests/benchmarks/test_micro_benchmarks.py::test_definition_in_tree
0%
726.9 µs
726.9 µs
test_to_json_list_of_lists
tests/benchmarks/test_serialization_micro.py::test_to_json_list_of_lists
0%
1.7 ms
1.7 ms
test_core_future_str
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime::test_core_future_str
0%
18.4 µs
18.4 µs
test_core_string_strict
tests/benchmarks/test_micro_benchmarks.py::test_core_string_strict
0%
13.3 µs
13.3 µs
test_strict_int
tests/benchmarks/test_micro_benchmarks.py::test_strict_int
0%
13.3 µs
13.3 µs
test_to_string_direct
tests/benchmarks/test_serialization_micro.py::test_to_string_direct
0%
18.2 µs
18.2 µs
test_validate_literal[python-many_large_strings]
tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[python-many_large_strings]
0%
14.6 µs
14.6 µs
test_definition_out_of_tree
tests/benchmarks/test_micro_benchmarks.py::test_definition_out_of_tree
0%
989 µs
989.1 µs
test_tuple_many_variable
tests/benchmarks/test_micro_benchmarks.py::test_tuple_many_variable
0%
17.5 µs
17.5 µs
test_core_json
tests/benchmarks/test_serialization_micro.py::TestBenchmarkSimpleModel::test_core_json
0%
79.7 µs
79.7 µs
test_complete_core_lax
tests/benchmarks/test_complete_benchmark.py::test_complete_core_lax
0%
273.7 µs
273.8 µs
test_core_python
tests/benchmarks/test_micro_benchmarks.py::TestModelLarge::test_core_python
0%
128.7 µs
128.7 µs
test_python_json_list_none
tests/benchmarks/test_serialization_micro.py::test_python_json_list_none
0%
120.8 µs
120.8 µs
test_model_instance
tests/benchmarks/test_micro_benchmarks.py::test_model_instance
0%
28.2 µs
28.2 µs
test_python_json_list_str
tests/benchmarks/test_serialization_micro.py::test_python_json_list_str
0%
154.7 µs
154.7 µs
test_core_json_fs
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkSimpleModel::test_core_json_fs
0%
105.2 µs
105.3 µs
test_core_model_json_extra
tests/benchmarks/test_serialization_micro.py::test_core_model_json_extra
0%
28.6 µs
28.6 µs
test_python_json_list_int
tests/benchmarks/test_serialization_micro.py::test_python_json_list_int
0%
147.8 µs
148 µs
test_core_python_fs
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkSimpleModel::test_core_python_fs
0%
68.3 µs
68.3 µs
test_small_class_core_model
tests/benchmarks/test_micro_benchmarks.py::test_small_class_core_model
0%
26.4 µs
26.4 µs
test_model_instance_abc
tests/benchmarks/test_micro_benchmarks.py::test_model_instance_abc
0%
28.4 µs
28.4 µs
test_strict_union_error_core
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUnion::test_strict_union_error_core
0%
31.9 µs
32 µs
test_isinstance_string_lax_false
tests/benchmarks/test_micro_benchmarks.py::test_isinstance_string_lax_false
0%
15.1 µs
15.2 µs
test_uuid_from_string_pyd
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_uuid_from_string_pyd
0%
47.7 µs
47.8 µs
test_list_of_ints_core_json
tests/benchmarks/test_micro_benchmarks.py::test_list_of_ints_core_json
0%
739.2 µs
741 µs
test_json_direct_list_str
tests/benchmarks/test_serialization_micro.py::test_json_direct_list_str
0%
161.9 µs
162.3 µs
test_core_str
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime::test_core_str
0%
18.1 µs
18.2 µs
test_date_format_function
tests/benchmarks/test_serialization_micro.py::test_date_format_function
0%
52.2 µs
52.4 µs
test_definition_model_core
tests/benchmarks/test_micro_benchmarks.py::test_definition_model_core
0%
1.1 ms
1.1 ms
test_json_any_list_str
tests/benchmarks/test_serialization_micro.py::test_json_any_list_str
0%
227.1 µs
228.1 µs
test_many_models_core_model
tests/benchmarks/test_micro_benchmarks.py::test_many_models_core_model
-1%
2.4 ms
2.5 ms
test_list_of_strs_json_cached
tests/benchmarks/test_micro_benchmarks.py::test_list_of_strs_json_cached
-1%
296.3 µs
298 µs
test_date_from_datetime
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX::test_date_from_datetime
-1%
21.5 µs
21.6 µs
test_core_json_fs
tests/benchmarks/test_micro_benchmarks.py::TestModelLarge::test_core_json_fs
-1%
143.2 µs
144.7 µs
test_date_format
tests/benchmarks/test_serialization_micro.py::test_date_format
-1%
52.1 µs
52.7 µs
test_dataclass_to_json
tests/benchmarks/test_serialization_micro.py::test_dataclass_to_json
-1%
38.3 µs
38.8 µs
test_field_function_validator
tests/benchmarks/test_micro_benchmarks.py::test_field_function_validator
-2%
358.3 µs
365.7 µs
test_core_python
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_core_python
-4%
25.5 µs
26.6 µs
test_dict_of_ints_core_json
tests/benchmarks/test_micro_benchmarks.py::test_dict_of_ints_core_json
-4%
1.4 ms
1.4 ms
Commits
Click on a commit to change the comparison range
base
main
cd0346d
0%
fix union wrap combo
e375b85
19 days ago
by davidhewitt
0%
Merge remote-tracking branch 'origin/main' into dh/union-wrap-ser
21537b5
11 days ago
by davidhewitt
Resources
Home
Pricing
Docs
Blog
GitHub
Changelog
Getting Started
Sample repository
Explore repositories
Support
About
Careers
Twitter
Discord
Contact Us
Terms of Service
Privacy Policy
Copyright © 2024 CodSpeed Technology SAS. All rights reserved.