Skip to content

Commit d8c7696

Browse files
committed
Replace the vendored twisted.reflect.namedAny with pkgutil.resolve_name.
The stdlib finally has a function for this, though it's 3.9+. (We therefore now also include a backport dependency).
1 parent 438c8fb commit d8c7696

File tree

3 files changed

+10
-153
lines changed

3 files changed

+10
-153
lines changed

jsonschema/_reflect.py

Lines changed: 0 additions & 149 deletions
This file was deleted.

jsonschema/cli.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,13 @@
1414
except ImportError:
1515
import importlib_metadata as metadata # type: ignore
1616

17+
try:
18+
from pkgutil import resolve_name
19+
except ImportError:
20+
from pkgutil_resolve_name import resolve_name # type: ignore
21+
1722
import attr
1823

19-
from jsonschema._reflect import namedAny
2024
from jsonschema.exceptions import SchemaError
2125
from jsonschema.validators import RefResolver, validator_for
2226

@@ -130,10 +134,10 @@ def validation_success(self, instance_path):
130134
return ""
131135

132136

133-
def _namedAnyWithDefault(name):
137+
def _resolve_name_with_default(name):
134138
if "." not in name:
135139
name = "jsonschema." + name
136-
return namedAny(name)
140+
return resolve_name(name)
137141

138142

139143
parser = argparse.ArgumentParser(
@@ -172,7 +176,7 @@ def _namedAnyWithDefault(name):
172176
)
173177
parser.add_argument(
174178
"-V", "--validator",
175-
type=_namedAnyWithDefault,
179+
type=_resolve_name_with_default,
176180
help="""
177181
the fully qualified object name of a validator to use, or, for
178182
validators that are registered with jsonschema, simply the name

pyproject.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,9 @@ dependencies = [
3838

3939
"importlib_metadata;python_version<'3.8'",
4040
"typing_extensions;python_version<'3.8'",
41+
4142
"importlib_resources>=1.4.0;python_version<'3.9'",
43+
"pkgutil_resolve_name>=1.3.10;python_version<'3.9'",
4244
]
4345

4446
[project.optional-dependencies]

0 commit comments

Comments
 (0)