7
7
8
8
from ... import Config
9
9
from ... import schema as oai
10
- from ... import utils
10
+ from ...utils import ClassName , PythonIdentifier
11
11
from ..errors import ParseError , PropertyError
12
12
13
13
if TYPE_CHECKING : # pragma: no cover
17
17
18
18
19
19
_ReferencePath = NewType ("_ReferencePath" , str )
20
- _ClassName = NewType ("_ClassName" , str )
21
20
22
21
23
22
def parse_reference_path (ref_path_raw : str ) -> Union [_ReferencePath , ParseError ]:
@@ -38,33 +37,34 @@ def parse_reference_path(ref_path_raw: str) -> Union[_ReferencePath, ParseError]
38
37
class Class :
39
38
"""Represents Python class which will be generated from an OpenAPI schema"""
40
39
41
- name : _ClassName
42
- module_name : str
40
+ name : ClassName
41
+ module_name : PythonIdentifier
43
42
44
43
@staticmethod
45
44
def from_string (* , string : str , config : Config ) -> "Class" :
46
45
"""Get a Class from an arbitrary string"""
47
46
class_name = string .split ("/" )[- 1 ] # Get rid of ref path stuff
48
- class_name = utils . pascal_case (class_name )
47
+ class_name = ClassName (class_name , config . field_prefix )
49
48
override = config .class_overrides .get (class_name )
50
49
51
50
if override is not None and override .class_name is not None :
52
- class_name = override .class_name
51
+ class_name = ClassName ( override .class_name , config . field_prefix )
53
52
54
53
if override is not None and override .module_name is not None :
55
54
module_name = override .module_name
56
55
else :
57
- module_name = utils .snake_case (class_name )
56
+ module_name = class_name
57
+ module_name = PythonIdentifier (module_name , config .field_prefix )
58
58
59
- return Class (name = cast ( _ClassName , class_name ) , module_name = module_name )
59
+ return Class (name = class_name , module_name = module_name )
60
60
61
61
62
62
@attr .s (auto_attribs = True , frozen = True )
63
63
class Schemas :
64
64
"""Structure for containing all defined, shareable, and reusable schemas (attr classes and Enums)"""
65
65
66
66
classes_by_reference : Dict [_ReferencePath , Property ] = attr .ib (factory = dict )
67
- classes_by_name : Dict [_ClassName , Property ] = attr .ib (factory = dict )
67
+ classes_by_name : Dict [ClassName , Property ] = attr .ib (factory = dict )
68
68
errors : List [ParseError ] = attr .ib (factory = list )
69
69
70
70
0 commit comments