@@ -162,7 +162,7 @@ def add_context(self, newcontext, baseuri=""):
162162 self .vocab = {}
163163 self .rvocab = {}
164164
165- self .ctx .update ({ k : v for k , v in newcontext . iteritems () if k != "@context" } )
165+ self .ctx .update (_copy_dict_without_key ( newcontext , "@context" ) )
166166
167167 _logger .debug ("ctx is %s" , self .ctx )
168168
@@ -266,7 +266,7 @@ def resolve_ref(self, ref, base_url=None):
266266 raise RuntimeError ("Reference `%s` is not in the index. Index contains:\n %s" % (url , "\n " .join (self .idx )))
267267
268268 if "$graph" in obj :
269- metadata = { k : v for k , v in obj . items () if k != "$graph" }
269+ metadata = _copy_dict_without_key ( obj , "$graph" )
270270 obj = obj ["$graph" ]
271271 return obj , metadata
272272 else :
@@ -314,7 +314,7 @@ def resolve_all(self, document, base_url, file_base=None):
314314 loader = newctx
315315
316316 if "$graph" in document :
317- metadata = { k : v for k , v in document . items () if k != "$graph" }
317+ metadata = _copy_dict_without_key ( document , "$graph" )
318318 document = document ["$graph" ]
319319 metadata , _ = loader .resolve_all (metadata , base_url , file_base )
320320
@@ -500,3 +500,11 @@ def validate_links(self, document):
500500 else :
501501 raise errors [0 ]
502502 return
503+
504+
505+ def _copy_dict_without_key (from_dict , filtered_key ):
506+ new_dict = {}
507+ for key , value in from_dict .items ():
508+ if key != filtered_key :
509+ new_dict [key ] = value
510+ return new_dict
0 commit comments