4
4
import functools
5
5
import importlib .util
6
6
import inspect
7
+ import io
7
8
import logging
8
9
import os
9
10
import posixpath
33
34
from botocore .config import Config as S3Config
34
35
from bs4 import BeautifulSoup
35
36
from celery .app import Celery
36
- from jsonschema .validators import RefResolver as JsonSchemaRefResolver
37
37
from mypy_boto3_s3 .literals import RegionName
38
38
from pyramid .config import Configurator
39
39
from pyramid .exceptions import ConfigurationError
67
67
from weaver .warning import TimeZoneInfoAlreadySetWarning
68
68
from weaver .xml_util import HTML_TREE_BUILDER , XML
69
69
70
+ try : # refactor in jsonschema==4.18.0
71
+ from jsonschema .validators import _RefResolver as JsonSchemaRefResolver # pylint: disable=E0611
72
+ except ImportError :
73
+ from jsonschema .validators import RefResolver as JsonSchemaRefResolver # pylint: disable=E0611
74
+
70
75
if TYPE_CHECKING :
71
76
import importlib .abc
72
77
from types import FrameType , ModuleType
@@ -1055,7 +1060,7 @@ def import_target(target, default_root=None):
1055
1060
1056
1061
1057
1062
def open_module_resource_file (module , file_path ):
1058
- # type: (Union[str, ModuleType], str) -> IO[bytes ]
1063
+ # type: (Union[str, ModuleType], str) -> IO[str ]
1059
1064
"""
1060
1065
Opens a resource (data file) from an installed module.
1061
1066
@@ -1070,7 +1075,8 @@ def open_module_resource_file(module, file_path):
1070
1075
reader = loader .get_resource_reader () # type: importlib.abc.ResourceReader # noqa
1071
1076
except AttributeError :
1072
1077
reader = loader # noqa
1073
- return reader .open_resource (file_path )
1078
+ buffer = reader .open_resource (file_path )
1079
+ return io .TextIOWrapper (buffer , encoding = "utf-8" )
1074
1080
except AttributeError :
1075
1081
path = os .path .join (module .__path__ [0 ], file_path )
1076
1082
return open (path , mode = "r" , encoding = "utf-8" )
0 commit comments