@@ -71,6 +71,17 @@ def check_gpu():
7171 raise ImportError (msg ) from err
7272
7373
74+ def normalize_skipkeys (skipkeys , function_name : str = '' ) -> set :
75+ """Normalize skipkeys to a set of strings"""
76+ if skipkeys is None :
77+ return set ()
78+ else :
79+ if isinstance (skipkeys , str ):
80+ raise TypeError ("from_json_network() received a string for parameter `skipkeys`, "
81+ "but a list, tuple, set, or None was expected." )
82+ return set (skipkeys )
83+
84+
7485class SNN :
7586 """Defines a spiking neural network with neurons and synapses"""
7687
@@ -2160,9 +2171,9 @@ def _to_json_dict(self, array_representation="json-native",
21602171 The SNN as a dictionary.
21612172 """
21622173 from . import __version__ as snm_version
2163- skipkeys = [] if skipkeys is None else skipkeys
2164- skipkeys += [ "connection_ids" ]
2165- varnames = set (self .eqvars ) - set ( skipkeys )
2174+ skipkeys = normalize_skipkeys ( skipkeys , function_name = "_to_json_dict()" )
2175+ skipkeys |= { "connection_ids" }
2176+ varnames = set (self .eqvars ) - skipkeys
21662177 arep = array_representation
21672178
21682179 def is_numeric_array (o ):
@@ -2345,13 +2356,7 @@ def is_encoded_dict(d) -> bool | str:
23452356
23462357 data = net_dict ["data" ]
23472358
2348- if skipkeys is None :
2349- skipkeys = set ()
2350- else :
2351- if isinstance (skipkeys , str ):
2352- raise TypeError ("from_json_network() received a string for parameter `skipkeys`, "
2353- "but a list, tuple, set, or None was expected." )
2354- skipkeys = set (skipkeys )
2359+ skipkeys = normalize_skipkeys (skipkeys , function_name = "from_json_network()" )
23552360 should_modify = set (data .keys ()) - skipkeys # self variables to modify
23562361
23572362 # set our default dtype before setting the arrays
0 commit comments