fix: eliminate some mutable default arguments in SPARQL code (#2301) · RDFLib/rdflib@89982f8 (original) (raw)

`@@ -19,22 +19,30 @@

`

19

19

``

20

20

``

21

21

`def prepareQuery(

`

22

``

`-

queryString: str, initNs: Mapping[str, Any] = {}, base: Optional[str] = None

`

``

22

`+

queryString: str,

`

``

23

`+

initNs: Optional[Mapping[str, Any]] = None,

`

``

24

`+

base: Optional[str] = None,

`

23

25

`) -> Query:

`

24

26

`"""

`

25

27

` Parse and translate a SPARQL Query

`

26

28

` """

`

``

29

`+

if initNs is None:

`

``

30

`+

initNs = {}

`

27

31

`ret = translateQuery(parseQuery(queryString), base, initNs)

`

28

32

`ret._original_args = (queryString, initNs, base)

`

29

33

`return ret

`

30

34

``

31

35

``

32

36

`def prepareUpdate(

`

33

``

`-

updateString: str, initNs: Mapping[str, Any] = {}, base: Optional[str] = None

`

``

37

`+

updateString: str,

`

``

38

`+

initNs: Optional[Mapping[str, Any]] = None,

`

``

39

`+

base: Optional[str] = None,

`

34

40

`) -> Update:

`

35

41

`"""

`

36

42

` Parse and translate a SPARQL Update

`

37

43

` """

`

``

44

`+

if initNs is None:

`

``

45

`+

initNs = {}

`

38

46

`ret = translateUpdate(parseUpdate(updateString), base, initNs)

`

39

47

`ret._original_args = (updateString, initNs, base)

`

40

48

`return ret

`

`@@ -43,8 +51,8 @@ def prepareUpdate(

`

43

51

`def processUpdate(

`

44

52

`graph: Graph,

`

45

53

`updateString: str,

`

46

``

`-

initBindings: Mapping[str, Identifier] = {},

`

47

``

`-

initNs: Mapping[str, Any] = {},

`

``

54

`+

initBindings: Optional[Mapping[str, Identifier]] = None,

`

``

55

`+

initNs: Optional[Mapping[str, Any]] = None,

`

48

56

`base: Optional[str] = None,

`

49

57

`) -> None:

`

50

58

`"""

`

`@@ -73,8 +81,8 @@ def init(self, graph):

`

73

81

`def update(

`

74

82

`self,

`

75

83

`strOrQuery: Union[str, Update],

`

76

``

`-

initBindings: Mapping[str, Identifier] = {},

`

77

``

`-

initNs: Mapping[str, Any] = {},

`

``

84

`+

initBindings: Optional[Mapping[str, Identifier]] = None,

`

``

85

`+

initNs: Optional[Mapping[str, Any]] = None,

`

78

86

` ) -> None:

`

79

87

`"""

`

80

88

` .. caution::

`

`@@ -108,8 +116,8 @@ def init(self, graph):

`

108

116

`def query( # type: ignore[override]

`

109

117

`self,

`

110

118

`strOrQuery: Union[str, Query],

`

111

``

`-

initBindings: Mapping[str, Identifier] = {},

`

112

``

`-

initNs: Mapping[str, Any] = {},

`

``

119

`+

initBindings: Optional[Mapping[str, Identifier]] = None,

`

``

120

`+

initNs: Optional[Mapping[str, Any]] = None,

`

113

121

`base: Optional[str] = None,

`

114

122

`DEBUG: bool = False,

`

115

123

` ) -> Mapping[str, Any]:

`

`@@ -132,9 +140,7 @@ def query( # type: ignore[override]

`

132

140

` documentation.

`

133

141

` """

`

134

142

``

135

``

`-

if not isinstance(strOrQuery, Query):

`

136

``

`-

parsetree = parseQuery(strOrQuery)

`

137

``

`-

query = translateQuery(parsetree, base, initNs)

`

138

``

`-

else:

`

139

``

`-

query = strOrQuery

`

140

``

`-

return evalQuery(self.graph, query, initBindings, base)

`

``

143

`+

if isinstance(strOrQuery, str):

`

``

144

`+

strOrQuery = translateQuery(parseQuery(strOrQuery), base, initNs)

`

``

145

+

``

146

`+

return evalQuery(self.graph, strOrQuery, initBindings, base)

`