Skip to content

Commit 6dd745c

Browse files
committed
FIX: fixed most remaining CheckedSession warnings stacklevel problems
there is still one problematic test for pandas_hdf engine but there seems to be something very fishy going on
1 parent 3b90c36 commit 6dd745c

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

larray/core/checked.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -478,6 +478,10 @@ def _check_key_value(self, name: str, value: Any, skip_allow_mutation: bool, ski
478478
warnings.warn(f"'{name}' is not declared in '{self.__class__.__name__}'", stacklevel=stacklevel + 1)
479479
return value
480480

481+
def _update_from_iterable(self, it):
482+
for k, v in it:
483+
self.__setitem__(k, v, stacklevel=3)
484+
481485
def __setitem__(self, key, value, skip_allow_mutation=False, skip_validation=False, stacklevel=1):
482486
if key != 'meta':
483487
value = self._check_key_value(key, value, skip_allow_mutation, skip_validation,

larray/core/session.py

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)