File tree Expand file tree Collapse file tree 3 files changed +31
-7
lines changed Expand file tree Collapse file tree 3 files changed +31
-7
lines changed Original file line number Diff line number Diff line change 11
11
import secrets
12
12
import string
13
13
import inspect
14
+ import re
15
+
14
16
from html import escape
15
17
from functools import wraps
16
18
from typing import Union
@@ -302,3 +304,14 @@ def get_caller_name():
302
304
return s .frame .f_locals .get ("__name__" , "__main__" )
303
305
304
306
return "__main__"
307
+
308
+
309
+ def pascal_case (name : str | None ):
310
+ s = re .sub (r"\s" , "_" , str (name ))
311
+ # Replace leading `_`
312
+ s = re .sub ("^[_]+" , "" , s )
313
+ if not s :
314
+ return s
315
+ return s [0 ].upper () + re .sub (
316
+ r"[\-_\.]+([a-z])" , lambda match : match .group (1 ).upper (), s [1 :]
317
+ )
Original file line number Diff line number Diff line change 3
3
import string
4
4
import textwrap
5
5
import importlib
6
- import re
6
+
7
+ from .._utils import pascal_case
7
8
8
9
9
10
shapes = {}
@@ -51,12 +52,6 @@ def generate_any(*_):
51
52
return "typing.Any"
52
53
53
54
54
- def pascal_case (name : str ):
55
- return name [0 ].upper () + re .sub (
56
- r"[\-_\.\s]([a-z])" , lambda match : match .group (1 ).upper (), name [1 :]
57
- )
58
-
59
-
60
55
def generate_shape (type_info , component_name : str , prop_name : str ):
61
56
props = []
62
57
name = pascal_case (prop_name )
Original file line number Diff line number Diff line change @@ -58,3 +58,19 @@ def test_ddut001_attribute_dict():
58
58
a .x = 4
59
59
assert err .value .args == ("Object is final: No new keys may be added." , "x" )
60
60
assert "x" not in a
61
+
62
+
63
+ @pytest .mark .parametrize (
64
+ "value,expected" ,
65
+ [
66
+ ("foo_bar" , "FooBar" ),
67
+ ("" , "" ),
68
+ ("fooBarFoo" , "FooBarFoo" ),
69
+ ("foo bar" , "FooBar" ),
70
+ ("foo-bar" , "FooBar" ),
71
+ ("__private_prop" , "PrivateProp" ),
72
+ ("double__middle___triple" , "DoubleMiddleTriple" ),
73
+ ],
74
+ )
75
+ def test_ddut002_pascal_case (value , expected ):
76
+ assert utils .pascal_case (value ) == expected
You can’t perform that action at this time.
0 commit comments