11"""Benchmark attrs containing other attrs classes."""
2- import attr
32import pytest
3+ from attrs import define
44
5- from cattr import BaseConverter , Converter , UnstructureStrategy
5+ from cattrs import BaseConverter , Converter , UnstructureStrategy
66
77
88@pytest .mark .parametrize ("converter_cls" , [BaseConverter , Converter ])
1212def test_unstructure_attrs_nested (benchmark , converter_cls , unstructure_strat ):
1313 c = converter_cls (unstruct_strat = unstructure_strat )
1414
15- @attr . define
15+ @define
1616 class InnerA :
1717 a : int
1818 b : float
1919 c : str
2020 d : bytes
2121
22- @attr . define
22+ @define
2323 class InnerB :
2424 a : int
2525 b : float
2626 c : str
2727 d : bytes
2828
29- @attr . define
29+ @define
3030 class InnerC :
3131 a : int
3232 b : float
3333 c : str
3434 d : bytes
3535
36- @attr . define
36+ @define
3737 class InnerD :
3838 a : int
3939 b : float
4040 c : str
4141 d : bytes
4242
43- @attr . define
43+ @define
4444 class InnerE :
4545 a : int
4646 b : float
4747 c : str
4848 d : bytes
4949
50- @attr . define
50+ @define
5151 class Outer :
5252 a : InnerA
5353 b : InnerB
@@ -56,11 +56,11 @@ class Outer:
5656 e : InnerE
5757
5858 inst = Outer (
59- InnerA (1 , 1.0 , "one" , "one" . encode () ),
60- InnerB (2 , 2.0 , "two" , "two" . encode () ),
61- InnerC (3 , 3.0 , "three" , "three" . encode () ),
62- InnerD (4 , 4.0 , "four" , "four" . encode () ),
63- InnerE (5 , 5.0 , "five" , "five" . encode () ),
59+ InnerA (1 , 1.0 , "one" , b "one" ),
60+ InnerB (2 , 2.0 , "two" , b "two" ),
61+ InnerC (3 , 3.0 , "three" , b "three" ),
62+ InnerD (4 , 4.0 , "four" , b "four" ),
63+ InnerE (5 , 5.0 , "five" , b "five" ),
6464 )
6565
6666 benchmark (c .unstructure , inst )
@@ -73,49 +73,49 @@ class Outer:
7373def test_unstruct_attrs_deep_nest (benchmark , converter_cls , unstructure_strat ):
7474 c = converter_cls (unstruct_strat = unstructure_strat )
7575
76- @attr . define
76+ @define
7777 class InnerA :
7878 a : int
7979 b : float
8080 c : str
8181 d : bytes
8282
83- @attr . define
83+ @define
8484 class InnerB :
8585 a : InnerA
8686 b : InnerA
8787 c : InnerA
8888 d : InnerA
8989
90- @attr . define
90+ @define
9191 class InnerC :
9292 a : InnerB
9393 b : InnerB
9494 c : InnerB
9595 d : InnerB
9696
97- @attr . define
97+ @define
9898 class InnerD :
9999 a : InnerC
100100 b : InnerC
101101 c : InnerC
102102 d : InnerC
103103
104- @attr . define
104+ @define
105105 class InnerE :
106106 a : InnerD
107107 b : InnerD
108108 c : InnerD
109109 d : InnerD
110110
111- @attr . define
111+ @define
112112 class Outer :
113113 a : InnerE
114114 b : InnerE
115115 c : InnerE
116116 d : InnerE
117117
118- make_inner_a = lambda : InnerA (1 , 1.0 , "one" , "one" . encode () )
118+ make_inner_a = lambda : InnerA (1 , 1.0 , "one" , b "one" )
119119 make_inner_b = lambda : InnerB (* [make_inner_a () for _ in range (4 )])
120120 make_inner_c = lambda : InnerC (* [make_inner_b () for _ in range (4 )])
121121 make_inner_d = lambda : InnerD (* [make_inner_c () for _ in range (4 )])
0 commit comments