code: def resolving(self, ref: str):
          
          new_uri = urlparse.urljoin(self.resolution_scope, ref)
          uri, fragment = urlparse.urldefrag(new_uri)
  
          if normalize(uri) in self.store:
              schema = self.store[normalize(uri)]
          elif not uri or uri == self.base_uri:
              schema = self.schema
          else:
              schema = resolve_remote(uri, self.handlers)
              if self.cache:
                  self.store[normalize(uri)] = schema
  
          old_base_uri, old_schema = self.base_uri, self.schema
          self.base_uri, self.schema = uri, schema
          try:
              with self.in_scope(uri):
                  yield resolve_path(schema, fragment)
          finally:
              self.base_uri, self.schema = old_base_uri, old_schema
docs: Context manager which resolves a JSON ``ref`` and enters the
          resolution scope of this ref.