lambda a, i: a.tag == i['name'],
lambda i: TagDirectory(self.inode, self.inodes, self.api, self.num_retries, i['name'], poll=self._poll, poll_time=self._poll_time))
+ @use_counter
+ @check_update
+ def __getitem__(self, item):
+ if super(TagsDirectory, self).__contains__(item):
+ return super(TagsDirectory, self).__getitem__(item)
+ with llfuse.lock_released:
+ tags = self.api.links().list(
+ filters=[['link_class', '=', 'tag'], ['name', '=', item]], limit=1
+ ).execute(num_retries=self.num_retries)
+ if tags["items"]:
+ self._extra.add(item)
+ self.update()
+ return super(TagsDirectory, self).__getitem__(item)
+
+ @use_counter
+ @check_update
def __contains__(self, k):
if super(TagsDirectory, self).__contains__(k):
return True
- else:
- with llfuse.lock_released:
- tags = self.api.links().list(
- filters=[['link_class', '=', 'tag'], ['name', '=', k]], limit=1
- ).execute(num_retries=self.num_retries)
- if tags["items"]:
- self._extra.add(k)
- self.invalidate()
- return True
- else:
- return False
+ try:
+ self[k]
+ return True
+ except KeyError:
+ pass
+ return False
class TagDirectory(Directory):