Skip to content

Commit c25671c

Browse files
jakubartorydavidlehn
authored andcommitted
Don't modify keyword argument 'options'
This enables passing one options dict to different jsonld functions, for example: my_options = {'documentLoader': my_document_loader} framed = jsonld.frame(doc, frame, options=options) compacted = jsonld.compact(framed, ctx, options=options)
1 parent a3af36c commit c25671c

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

lib/pyld/jsonld.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
import copy
1616
import gzip
17-
import zlib
1817
import hashlib
1918
import io
2019
import json
@@ -26,6 +25,7 @@
2625
import string
2726
import sys
2827
import traceback
28+
import zlib
2929
from collections import deque, namedtuple
3030
from contextlib import closing
3131
from numbers import Integral, Real
@@ -658,7 +658,7 @@ def compact(self, input_, ctx, options):
658658
return None
659659

660660
# set default options
661-
options = options or {}
661+
options = options.copy() if options else {}
662662
options.setdefault('base', input_ if _is_string(input_) else '')
663663
options.setdefault('compactArrays', True)
664664
options.setdefault('graph', False)
@@ -765,7 +765,7 @@ def expand(self, input_, options):
765765
:return: the expanded JSON-LD output.
766766
"""
767767
# set default options
768-
options = options or {}
768+
options = options.copy() if options else {}
769769
options.setdefault('keepFreeFloatingNodes', False)
770770
options.setdefault('documentLoader', _default_document_loader)
771771

@@ -857,7 +857,7 @@ def flatten(self, input_, ctx, options):
857857
858858
:return: the flattened JSON-LD output.
859859
"""
860-
options = options or {}
860+
options = options.copy() if options else {}
861861
options.setdefault('base', input_ if _is_string(input_) else '')
862862
options.setdefault('documentLoader', _default_document_loader)
863863

@@ -907,7 +907,7 @@ def frame(self, input_, frame, options):
907907
:return: the framed JSON-LD output.
908908
"""
909909
# set default options
910-
options = options or {}
910+
options = options.copy() if options else {}
911911
options.setdefault('base', input_ if _is_string(input_) else '')
912912
options.setdefault('compactArrays', True)
913913
options.setdefault('embed', '@last')
@@ -1017,7 +1017,7 @@ def normalize(self, input_, options):
10171017
:return: the normalized output.
10181018
"""
10191019
# set default options
1020-
options = options or {}
1020+
options = options.copy() if options else {}
10211021
options.setdefault('algorithm', 'URGNA2012')
10221022
options.setdefault('base', input_ if _is_string(input_) else '')
10231023
options.setdefault('documentLoader', _default_document_loader)
@@ -1071,7 +1071,7 @@ def from_rdf(self, dataset, options):
10711071
global _rdf_parsers
10721072

10731073
# set default options
1074-
options = options or {}
1074+
options = options.copy() if options else {}
10751075
options.setdefault('useRdfType', False)
10761076
options.setdefault('useNativeTypes', False)
10771077

@@ -1115,7 +1115,7 @@ def to_rdf(self, input_, options):
11151115
:return: the resulting RDF dataset (or a serialization of it).
11161116
"""
11171117
# set default options
1118-
options = options or {}
1118+
options = options.copy() if options else {}
11191119
options.setdefault('base', input_ if _is_string(input_) else '')
11201120
options.setdefault('produceGeneralizedRdf', False)
11211121
options.setdefault('documentLoader', _default_document_loader)
@@ -1168,7 +1168,7 @@ def process_context(self, active_ctx, local_ctx, options):
11681168
return self._get_initial_context(options)
11691169

11701170
# set default options
1171-
options = options or {}
1171+
options = options.copy() if options else {}
11721172
options.setdefault('base', '')
11731173
options.setdefault('documentLoader', _default_document_loader)
11741174

0 commit comments

Comments
 (0)