File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11.. currentmodule :: bitproto
22
3+ Version 1.2.1 (Pending)
4+ -----------------------
5+
6+ .. _version-1.2.1 :
7+
8+ - Bugfix: `pascal_case ` formatter. ISSUE #68, PR #69.
9+
10+
311Version 1.2.0
412-------------
513
Original file line number Diff line number Diff line change @@ -343,16 +343,19 @@ def pascal_case(word: str) -> str:
343343
344344 >>> pascal_case("someWord")
345345 "SomeWord"
346+
347+ >>> pascal_case("my_prefix_someWord")
348+ "MyPrefixSomeWord"
346349 """
347350 items : List [str ] = []
348351 parts = word .split ("_" )
349- contains_underscore = len ( parts ) > 1
352+
350353 for part in parts :
351354 if part :
352- if contains_underscore :
353- items . append ( part . title ())
354- else :
355- first_char , remain_part = part [ 0 ], part [ 1 :]
355+ first_char , remain_part = part [ 0 ], part [ 1 :]
356+ if remain_part and remain_part . isupper (): # UPPERCASE
357+ items . append ( first_char . upper () + remain_part . lower ())
358+ else : # flatcase or camelCase or PascalCase
356359 items .append (first_char .upper () + remain_part )
357360 return "" .join (items )
358361
Original file line number Diff line number Diff line change @@ -122,6 +122,10 @@ def test_pascal_case() -> None:
122122 assert pascal_case ("PASCAL_CASE" ) == "PascalCase"
123123 assert pascal_case ("pascal_Case" ) == "PascalCase"
124124 assert pascal_case ("PascalCase" ) == "PascalCase"
125+ # issue#68
126+ # https://github.com/hit9/bitproto/issues/68#issuecomment-3219647987
127+ assert pascal_case ("my_prefix_someWord" ) == "MyPrefixSomeWord"
128+ assert pascal_case ("my_prefix_MyMessageType" ) == "MyPrefixMyMessageType"
125129
126130
127131def test_snake_case () -> None :
You can’t perform that action at this time.
0 commit comments