File tree 4 files changed +12
-11
lines changed
openapi_spec_validator/handlers 4 files changed +12
-11
lines changed Original file line number Diff line number Diff line change 1
1
"""OpenAPI spec validator handlers file module."""
2
- from openapi_spec_validator .loaders import ExtendedSafeLoader
3
2
4
3
5
4
class BaseHandler (object ):
6
5
"""OpenAPI spec validator base handler."""
7
6
8
- def __init__ (self , ** options ):
9
- self .options = options
10
-
11
- @property
12
- def loader (self ):
13
- return self .options .get ('loader' , ExtendedSafeLoader )
7
+ def __call__ (self , f ):
8
+ raise NotImplementedError
Original file line number Diff line number Diff line change 3
3
from yaml import load
4
4
5
5
from openapi_spec_validator .handlers .base import BaseHandler
6
+ from openapi_spec_validator .loaders import ExtendedSafeLoader
6
7
7
8
8
9
class FileObjectHandler (BaseHandler ):
9
10
"""OpenAPI spec validator file-like object handler."""
10
11
12
+ def __init__ (self , loader = ExtendedSafeLoader ):
13
+ self .loader = loader
14
+
11
15
def __call__ (self , f ):
12
16
return load (f , self .loader )
13
17
Original file line number Diff line number Diff line change @@ -13,17 +13,18 @@ class UrlRequestsHandler(FileHandler):
13
13
"""OpenAPI spec validator URL (requests) scheme handler."""
14
14
15
15
def __init__ (self , * allowed_schemes , ** options ):
16
+ self .timeout = options .pop ('timeout' , 10 )
16
17
super (UrlRequestsHandler , self ).__init__ (** options )
17
18
self .allowed_schemes = allowed_schemes
18
19
19
- def __call__ (self , url , timeout = 1 ):
20
+ def __call__ (self , url ):
20
21
scheme = urlparse (url ).scheme
21
22
assert scheme in self .allowed_schemes
22
23
23
24
if scheme == "file" :
24
25
return super (UrlRequestsHandler , self ).__call__ (url )
25
26
26
- response = requests .get (url , timeout = timeout )
27
+ response = requests .get (url , timeout = self . timeout )
27
28
response .raise_for_status ()
28
29
29
30
data = StringIO (response .text )
Original file line number Diff line number Diff line change @@ -11,13 +11,14 @@ class UrllibHandler(FileObjectHandler):
11
11
"""OpenAPI spec validator URL (urllib) scheme handler."""
12
12
13
13
def __init__ (self , * allowed_schemes , ** options ):
14
+ self .timeout = options .pop ('timeout' , 10 )
14
15
super (UrllibHandler , self ).__init__ (** options )
15
16
self .allowed_schemes = allowed_schemes
16
17
17
- def __call__ (self , url , timeout = 1 ):
18
+ def __call__ (self , url ):
18
19
assert urlparse (url ).scheme in self .allowed_schemes
19
20
20
- f = urlopen (url , timeout = timeout )
21
+ f = urlopen (url , timeout = self . timeout )
21
22
22
23
with contextlib .closing (f ) as fh :
23
24
return super (UrllibHandler , self ).__call__ (fh )
You can’t perform that action at this time.
0 commit comments