Skip to content

Commit aa86704

Browse files
committed
>> made Session.meta a property (maybe just remove the 2 comments would have been enough)
1 parent 3d776e2 commit aa86704

File tree

1 file changed

+20
-9
lines changed

1 file changed

+20
-9
lines changed

larray/core/session.py

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,24 @@ def __init__(self, *args, **kwargs):
9595
else:
9696
self.add(*args, **kwargs)
9797

98+
@property
99+
def meta(self):
100+
r"""Returns metadata of the session.
101+
102+
Returns
103+
-------
104+
Metadata:
105+
Metadata of the session.
106+
"""
107+
return self._meta
108+
109+
@meta.setter
110+
def meta(self, meta):
111+
if not isinstance(meta, (list, dict, OrderedDict, Metadata)):
112+
raise TypeError("Expected list of pairs or dict or OrderedDict or Metadata object "
113+
"instead of {}".format(type(meta).__name__))
114+
object.__setattr__(self, '_meta', meta if isinstance(meta, Metadata) else Metadata(meta))
115+
98116
# XXX: behave like a dict and return keys instead?
99117
def __iter__(self):
100118
return iter(self.values())
@@ -303,22 +321,15 @@ def __setitem__(self, key, value):
303321
def __delitem__(self, key):
304322
del self._objects[key]
305323

306-
# TODO: add a a meta property when Python 2.7 will be dropped
307324
def __getattr__(self, key):
308-
if key == 'meta':
309-
return self._meta
310-
elif key in self._objects:
325+
if key in self._objects:
311326
return self._objects[key]
312327
else:
313328
raise AttributeError("'{}' object has no attribute '{}'".format(self.__class__.__name__, key))
314329

315-
# TODO: implement meta.setter when Python 2.7 will be dropped
316330
def __setattr__(self, key, value):
317331
if key == 'meta':
318-
if not isinstance(value, (list, dict, OrderedDict, Metadata)):
319-
raise TypeError("Expected list of pairs or dict or OrderedDict or Metadata object "
320-
"instead of {}".format(type(value).__name__))
321-
object.__setattr__(self, '_meta', value if isinstance(value, Metadata) else Metadata(value))
332+
super().__setattr__(key, value)
322333
else:
323334
self._objects[key] = value
324335

0 commit comments

Comments
 (0)