Skip to content

Commit 66817dc

Browse files
committed
Merge remote-tracking branch 'origin/rfc3986_patch' into rfc3986_patch
2 parents 162a333 + 3e0db0c commit 66817dc

File tree

1 file changed

+9
-12
lines changed

1 file changed

+9
-12
lines changed

jsonschema/validators.py

+9-12
Original file line numberDiff line numberDiff line change
@@ -680,17 +680,10 @@ def resolving(self, ref):
680680
681681
"""
682682

683-
url, resolved = self.resolve(ref)
684-
self.push_scope(url)
685-
try:
686-
yield resolved
687-
finally:
688-
self.pop_scope()
689-
690-
def resolve(self, ref):
691683
assert self.base_uri
692684
url = self._urljoin_cache(self.base_uri, ref)
693-
return url, self._remote_cache(url)
685+
with self.in_scope(url):
686+
yield self._remote_cache(url)
694687

695688
def resolve_from_url(self, url):
696689
if url.fragment:
@@ -726,11 +719,15 @@ def resolve_fragment(self, document, fragment):
726719
"""
727720

728721
fragment = fragment.lstrip(u"/")
729-
parts = unquote(fragment).split(u"/") if fragment else []
722+
if not fragment:
723+
return document
730724

731-
for part in parts:
732-
part = part.replace(u"~1", u"/").replace(u"~0", u"~")
725+
parts = [p.replace(u"~1", u"/").replace(u"~0", u"~")
726+
for p in unquote(fragment).split(u"/")]
727+
728+
scopes = []
733729

730+
for part in parts:
734731
if isinstance(document, Sequence):
735732
# Array indexes should be turned into integers
736733
try:

0 commit comments

Comments
 (0)