1
1
"""OpenAPI core validation request datatypes module"""
2
- import attr
2
+ from typing import Dict , Optional
3
+
4
+ from dataclasses import dataclass , field
3
5
from werkzeug .datastructures import ImmutableMultiDict , Headers
4
6
5
7
from openapi_core .validation .datatypes import BaseValidationResult
6
8
7
9
8
- @attr . s
10
+ @dataclass
9
11
class RequestParameters :
10
12
"""OpenAPI request parameters dataclass.
11
13
@@ -15,20 +17,20 @@ class RequestParameters:
15
17
header
16
18
Request headers as Headers.
17
19
cookie
18
- Request cookies as dict .
20
+ Request cookies as MultiDict .
19
21
path
20
22
Path parameters as dict. Gets resolved against spec if empty.
21
23
"""
22
- query = attr . ib ( factory = ImmutableMultiDict )
23
- header = attr . ib ( factory = Headers , converter = Headers )
24
- cookie = attr . ib ( factory = dict )
25
- path = attr . ib ( factory = dict )
24
+ query : ImmutableMultiDict = field ( default_factory = ImmutableMultiDict )
25
+ header : Headers = field ( default_factory = Headers )
26
+ cookie : ImmutableMultiDict = field ( default_factory = ImmutableMultiDict )
27
+ path : Dict = field ( default_factory = dict )
26
28
27
29
def __getitem__ (self , location ):
28
30
return getattr (self , location )
29
31
30
32
31
- @attr . s
33
+ @dataclass
32
34
class OpenAPIRequest :
33
35
"""OpenAPI request dataclass.
34
36
@@ -51,18 +53,15 @@ class OpenAPIRequest:
51
53
the mimetype would be "text/html".
52
54
"""
53
55
54
- full_url_pattern = attr . ib ()
55
- method = attr . ib ()
56
- body = attr . ib ()
57
- mimetype = attr . ib ()
58
- parameters = attr . ib ( factory = RequestParameters )
56
+ full_url_pattern : str
57
+ method : str
58
+ body : str
59
+ mimetype : str
60
+ parameters : RequestParameters = field ( default_factory = RequestParameters )
59
61
60
62
61
- @attr . s
63
+ @dataclass
62
64
class RequestValidationResult (BaseValidationResult ):
63
- body = attr .ib (default = None )
64
- parameters = attr .ib (factory = RequestParameters )
65
- security = attr .ib (default = None )
66
- server = attr .ib (default = None )
67
- path = attr .ib (default = None )
68
- operation = attr .ib (default = None )
65
+ body : Optional [str ] = None
66
+ parameters : RequestParameters = field (default_factory = RequestParameters )
67
+ security : Dict [str , str ] = None
0 commit comments