File tree Expand file tree Collapse file tree 7 files changed +105
-47
lines changed Expand file tree Collapse file tree 7 files changed +105
-47
lines changed Load Diff This file was deleted.
Original file line number Diff line number Diff line change
1
+ from openapi_spec_validator .handlers .file import FileObjectHandler
2
+ try :
3
+ from openapi_spec_validator .handlers .requests import (
4
+ UrlRequestsHandler as UrlHandler ,
5
+ )
6
+ except ImportError :
7
+ from openapi_spec_validator .handlers .urllib import (
8
+ UrllibHandler as UrlHandler ,
9
+ )
10
+
11
+ __all__ = ['FileObjectHandler' , 'UrlHandler' ]
Original file line number Diff line number Diff line change
1
+ """OpenAPI spec validator handlers file module."""
2
+ from openapi_spec_validator .loaders import ExtendedSafeLoader
3
+
4
+
5
+ class BaseHandler (object ):
6
+ """OpenAPI spec validator base handler."""
7
+
8
+ def __init__ (self , ** options ):
9
+ self .options = options
10
+
11
+ @property
12
+ def loader (self ):
13
+ return self .options .get ('loader' , ExtendedSafeLoader )
Original file line number Diff line number Diff line change
1
+ """OpenAPI spec validator handlers file module."""
2
+ from six import StringIO
3
+ from yaml import load
4
+
5
+ from openapi_spec_validator .handlers .base import BaseHandler
6
+
7
+
8
+ class FileObjectHandler (BaseHandler ):
9
+ """OpenAPI spec validator file-like object handler."""
10
+
11
+ def __call__ (self , f ):
12
+ return load (f , self .loader )
13
+
14
+
15
+ class FileHandler (FileObjectHandler ):
16
+ """OpenAPI spec validator file path handler."""
17
+
18
+ def __call__ (self , f ):
19
+ if isinstance (f , StringIO ):
20
+ return super (FileHandler , self ).__call__ (f )
21
+
22
+ assert f .startswith ("file" )
23
+
24
+ filename = f [7 :]
25
+ with open (filename ) as fh :
26
+ return super (FileHandler , self ).__call__ (fh )
Original file line number Diff line number Diff line change
1
+ """OpenAPI spec validator handlers requests module."""
2
+ from __future__ import absolute_import
3
+ import contextlib
4
+
5
+ from six import StringIO
6
+ from six .moves .urllib .parse import urlparse
7
+ import requests
8
+
9
+ from openapi_spec_validator .handlers .file import FileHandler
10
+
11
+
12
+ class UrlRequestsHandler (FileHandler ):
13
+ """OpenAPI spec validator URL (requests) scheme handler."""
14
+
15
+ def __init__ (self , * allowed_schemes , ** options ):
16
+ super (UrlRequestsHandler , self ).__init__ (** options )
17
+ self .allowed_schemes = allowed_schemes
18
+
19
+ def __call__ (self , url , timeout = 1 ):
20
+ scheme = urlparse (url ).scheme
21
+ assert scheme in self .allowed_schemes
22
+
23
+ if scheme == "file" :
24
+ return super (UrlRequestsHandler , self ).__call__ (url )
25
+
26
+ response = requests .get (url , timeout = timeout )
27
+ response .raise_for_status ()
28
+
29
+ data = StringIO (response .text )
30
+ with contextlib .closing (data ) as fh :
31
+ return super (UrlRequestsHandler , self ).__call__ (fh )
Original file line number Diff line number Diff line change
1
+ """OpenAPI spec validator handlers requests module."""
2
+ import contextlib
3
+
4
+ from six .moves .urllib .parse import urlparse
5
+ from six .moves .urllib .request import urlopen
6
+
7
+ from openapi_spec_validator .handlers .file import FileObjectHandler
8
+
9
+
10
+ class UrllibHandler (FileObjectHandler ):
11
+ """OpenAPI spec validator URL (urllib) scheme handler."""
12
+
13
+ def __init__ (self , * allowed_schemes , ** options ):
14
+ super (UrllibHandler , self ).__init__ (** options )
15
+ self .allowed_schemes = allowed_schemes
16
+
17
+ def __call__ (self , url , timeout = 1 ):
18
+ assert urlparse (url ).scheme in self .allowed_schemes
19
+
20
+ f = urlopen (url , timeout = timeout )
21
+
22
+ with contextlib .closing (f ) as fh :
23
+ return super (UrllibHandler , self ).__call__ (fh )
Original file line number Diff line number Diff line change @@ -29,7 +29,6 @@ install_requires =
29
29
PyYAML>=5.1
30
30
six
31
31
pathlib2; python_version<"3.0"
32
- requests
33
32
tests_require =
34
33
mock; python_version<"3.0"
35
34
pytest
@@ -47,6 +46,7 @@ exclude =
47
46
48
47
[options.extras_require]
49
48
dev = pre-commit
49
+ requests = requests
50
50
51
51
[tool:pytest]
52
52
addopts = -sv --flake8 --junitxml reports/junit.xml --cov openapi_spec_validator --cov-report term-missing --cov-report xml:reports/coverage.xml
You can’t perform that action at this time.
0 commit comments