def get(self, name, default=None, getclass=False, getlink=False): """ Retrieve an item or other information. If getlink only is true, the returned value is always HardLink cause this implementation do not use links. Like the original implementation. :param str name: name of the item :param object default: default value returned if the name is not found :param bool getclass: if true, the returned object is the class of the object found :param bool getlink: if true, links object are returned instead of the target :return: An object, else None :rtype: object """ if name not in self._get_items(): return default if getlink: node = h5py.HardLink() else: node = self._get_items()[name] if getclass: obj = node.h5py_class else: obj = node return obj
def get(self, name, default=None, getclass=False, getlink=False): """Retrieve an item or other information. If getlink only is true, the returned value is always `h5py.HardLink`, because this implementation do not use links. Like the original implementation. :param str name: name of the item :param object default: default value returned if the name is not found :param bool getclass: if true, the returned object is the class of the object found :param bool getlink: if true, links object are returned instead of the target :return: An object, else None :rtype: object """ if name not in self: return default node = self._get(name, getlink=True) if isinstance(node, SoftLink) and not getlink: # get target try: node = self._get(name, getlink=False) except KeyError: return default elif not isinstance(node, SoftLink) and getlink: # ExternalLink objects don't exist in silx, so it must be a HardLink node = h5py.HardLink() if getclass: obj = utils.get_h5py_class(node) if obj is None: obj = node.__class__ else: obj = node return obj