@@ -248,44 +248,44 @@ def get_project_context(self) -> Dict:
248
248
return context
249
249
250
250
def resolve_context (self , iri : str , local_only : Optional [bool ] = False ) -> Dict :
251
- if iri in self .context_cache :
252
- return self .context_cache [iri ]
253
-
254
251
context_to_resolve = (
255
252
self .store_local_context if iri == self .store_context else iri
256
253
)
257
- url = "/" .join ((self .url_resolver , "_" , quote_plus (context_to_resolve )))
258
254
259
- try :
260
- response = requests .get (url , headers = self .headers )
261
- response .raise_for_status ()
262
- resource = response .json ()
263
- except Exception as e :
264
- if not local_only :
265
- try :
266
- context = Context (context_to_resolve )
267
- except URLError :
268
- raise ValueError (f"{ context_to_resolve } is not resolvable" )
255
+ if context_to_resolve not in self .context_cache :
256
+
257
+ url = "/" .join ((self .url_resolver , "_" , quote_plus (context_to_resolve )))
258
+
259
+ try :
260
+ response = requests .get (url , headers = self .headers )
261
+ response .raise_for_status ()
262
+ resource = response .json ()
263
+ except Exception as e :
264
+ if not local_only :
265
+ try :
266
+ context = Context (context_to_resolve )
267
+ except URLError :
268
+ raise ValueError (f"{ context_to_resolve } is not resolvable" )
269
+ else :
270
+ document = context .document ["@context" ]
269
271
else :
270
- document = context . document [ "@context" ]
272
+ raise ValueError ( f" { context_to_resolve } is not resolvable" )
271
273
else :
272
- raise ValueError ( f" { context_to_resolve } is not resolvable" )
273
- else :
274
- # Make sure context is not deprecated
275
- if '_deprecated' in resource and resource [ '_deprecated' ]:
276
- raise ConfigurationError ( f"Context { context_to_resolve } exists but was deprecated" )
277
- document = json .loads (json .dumps (resource ["@context" ]))
274
+ # Make sure context is not deprecated
275
+ if '_deprecated' in resource and resource [ '_deprecated' ] :
276
+ raise ConfigurationError (
277
+ f"Context { context_to_resolve } exists but was deprecated"
278
+ )
279
+ document = json .loads (json .dumps (resource ["@context" ]))
278
280
279
- if isinstance (document , list ):
280
- if self .store_context in document :
281
- document .remove (self .store_context )
282
- if self .store_local_context in document :
283
- document .remove (self .store_local_context )
281
+ if isinstance (document , list ):
282
+ if self .store_context in document :
283
+ document .remove (self .store_context )
284
+ if self .store_local_context in document :
285
+ document .remove (self .store_local_context )
284
286
285
- self .context_cache [context_to_resolve ] = document
287
+ self .context_cache [context_to_resolve ] = document
286
288
287
- # TODO context_to_resolve may be different from iri. Why is having it in the cache
288
- # already leading to different outcome? (see first 2 lines of function)
289
289
return self .context_cache [context_to_resolve ]
290
290
291
291
def batch_request (
0 commit comments