Skip to content

Commit a726ae8

Browse files
authored
Merge pull request #146 from Wim-De-Clercq/issue/145_yaml_loader
Use the json module to take care of the integer keys.
2 parents fae097a + a82db5a commit a726ae8

File tree

5 files changed

+18
-44
lines changed

5 files changed

+18
-44
lines changed

Diff for: openapi_spec_validator/constructors.py

-17
This file was deleted.

Diff for: openapi_spec_validator/handlers/compat.py

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Use CSafeFile if available
2+
try:
3+
from yaml import CSafeLoader as SafeLoader
4+
except ImportError:
5+
from yaml import SafeLoader
6+
7+
8+
__all__ = ['SafeLoader', ]

Diff for: openapi_spec_validator/handlers/file.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
11
"""OpenAPI spec validator handlers file module."""
22
import io
3+
import json
4+
35
from yaml import load
46

57
from openapi_spec_validator.handlers.base import BaseHandler
8+
from openapi_spec_validator.handlers.compat import SafeLoader
69
from openapi_spec_validator.handlers.utils import uri_to_path
7-
from openapi_spec_validator.loaders import ExtendedSafeLoader
810

911

1012
class FileObjectHandler(BaseHandler):
1113
"""OpenAPI spec validator file-like object handler."""
1214

13-
def __init__(self, loader=ExtendedSafeLoader):
15+
def __init__(self, loader=SafeLoader):
1416
self.loader = loader
1517

1618
def __call__(self, f):
17-
return load(f, self.loader)
19+
return json.loads(json.dumps(load(f, self.loader)))
1820

1921

2022
class FileHandler(FileObjectHandler):

Diff for: openapi_spec_validator/loaders.py

-19
This file was deleted.

Diff for: openapi_spec_validator/schemas.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
"""OpenAIP spec validator schemas module."""
22
import os
3-
43
import urllib.parse
54
import urllib.request
6-
from yaml import load
75

86
import importlib_resources
9-
from openapi_spec_validator.loaders import ExtendedSafeLoader
7+
8+
from openapi_spec_validator.handlers.compat import SafeLoader
9+
from openapi_spec_validator.handlers.file import FileObjectHandler
1010

1111

1212
def get_openapi_schema(version):
@@ -19,7 +19,7 @@ def get_openapi_schema(version):
1919
return schema, schema_url
2020

2121

22-
def read_yaml_file(path, loader=ExtendedSafeLoader):
22+
def read_yaml_file(path, loader=SafeLoader):
2323
"""Open a file, read it and return its contents."""
2424
with open(path) as fh:
25-
return load(fh, loader)
25+
return FileObjectHandler(loader=loader)(fh)

0 commit comments

Comments
 (0)