@@ -11,14 +11,13 @@ class MyEnum(enum.Enum):
1111
1212def dedent (s : str , keep_empty_ends = False ):
1313 res = s .splitlines ()
14- if not keep_empty_ends :
15- if res [0 ].lstrip () == '' :
16- del res [0 ]
17- if res [- 1 ].lstrip () == '' :
18- del res [- 1 ]
14+ if res [0 ].lstrip () == '' :
15+ del res [0 ]
16+ if res [- 1 ].lstrip () == '' :
17+ del res [- 1 ]
1918 by = min (next (i for (i , c ) in enumerate (ln ) if not c .isspace ())
2019 for ln in res if ln and not ln .isspace ())
21- return dedent_by (s , by , keep_empty_ends = True )
20+ return dedent_by (s , by , keep_empty_ends )
2221
2322
2423def dedent_by (s : str , by : int , keep_empty_ends = False ):
@@ -29,7 +28,7 @@ def dedent_by(s: str, by: int, keep_empty_ends=False):
2928 if res [- 1 ].lstrip () == '' :
3029 del res [- 1 ]
3130 for i , ln in enumerate (res ):
32- start = next ((j for j , c in enumerate (ln ) if not c .isspace () or j > by ), len (ln ))
31+ start = next ((j for j , c in enumerate (ln ) if not c .isspace () or j >= by ), len (ln ))
3332 res [i ] = ln [start :]
3433 return '\n ' .join (res )
3534
@@ -45,19 +44,28 @@ def test_fmt_tuple(self):
4544 self .assertEqual ('(MyEnum.FOO,)' , pformat ((MyEnum .FOO ,)))
4645 self .assertEqual ('(MyEnum.FOO, 6)' , pformat ((MyEnum .FOO , 6 )))
4746 self .assertEqual (dedent ('''
47+ (
48+ MyEnum.FOO,
49+ (4, 5)
50+ )''' ), pformat ((MyEnum .FOO , (4 , 5 ))))
51+ self .assertEqual (dedent ('''
52+ (
53+ (
54+ 2,
55+ 3,
56+ (4,)
57+ ),
58+ )''' ), pformat (((2 , 3 , (4 ,)),)))
59+ self .assertEqual (dedent ('''
4860 (
4961 MyEnum.FOO,
5062 (4, 5)
51- )''' ), pformat ((MyEnum .FOO , (4 , 5 ))))
63+ )''' ), pformat ((MyEnum .FOO , (4 , 5 )), indent = 4 ))
5264 self .assertEqual (dedent ('''
5365 (
5466 (
55- (
56- 2,
57- 3,
58- (
59- 4,
60- )
61- )
62- )
63- )''' ), pformat (((2 , 3 , (4 ,)),)))
67+ 2,
68+ 3,
69+ (4,)
70+ ),
71+ )''' ), pformat (((2 , 3 , (4 ,)),), indent = 4 ))
0 commit comments