@@ -139,10 +139,8 @@ def add(self, *args, **kwargs):
139139 >>> s.names
140140 ['arr1', 'arr2', 'arr3', 'x', 'y']
141141 """
142- for arg in args :
143- self [arg .name ] = arg
144- for k , v in kwargs .items ():
145- self [k ] = v
142+ self ._update_from_iterable ((arg .name , arg ) for arg in args )
143+ self ._update_from_iterable (kwargs .items ())
146144
147145 def update (self , other = None , ** kwargs ):
148146 r"""
@@ -243,16 +241,13 @@ def update(self, other=None, **kwargs):
243241 if other is None :
244242 pass
245243 elif hasattr (other , 'items' ):
246- for k , v in other .items ():
247- self [k ] = v
244+ self ._update_from_iterable (other .items ())
248245 elif isinstance (other , Iterable ):
249- for k , v in other :
250- self [k ] = v
246+ self ._update_from_iterable (other )
251247 else :
252248 raise ValueError (f"Expected Session, dict-like or iterable object for 'other' argument. "
253249 f"Got { type (other ).__name__ } ." )
254- for k , v in kwargs .items ():
255- self [k ] = v
250+ self ._update_from_iterable (kwargs .items ())
256251
257252 def _ipython_key_completions_ (self ):
258253 return list (self .keys ())
@@ -446,10 +441,13 @@ def load(self, fname, names=None, engine='auto', display=False, **kwargs):
446441 else :
447442 handler = handler_cls (fname )
448443 metadata , objects = handler .read (names , display = display , ** kwargs )
449- for k , v in objects .items ():
450- self [k ] = v
444+ self ._update_from_iterable (objects .items ())
451445 self .meta = metadata
452446
447+ def _update_from_iterable (self , it ):
448+ for k , v in it :
449+ self [k ] = v
450+
453451 def save (self , fname , names = None , engine = 'auto' , overwrite = True , display = False , ** kwargs ):
454452 r"""
455453 Dumps objects from the current session to a file, or several .csv files.
0 commit comments