def get_listing(self, path, recursive=False):
    '''Return items from manifest below path, which should be a directory.'''
    path = path.strip("/")
    prefix = path + "/" if path else ""
    match_rec = lambda p: (p.startswith(prefix) or p == path)
    # TODO list subdirectories too; this only lists files within a folder
    match_nonrec = lambda p: (p.startswith(prefix) and (p[len(prefix):] not in '/') or p == path)
    match_func = match_rec if recursive else match_nonrec
    return [item for item in self.items if match_func(item.path)]
dataset/ETHPy150Open bloomreach/zinc/zinc.py/Manifest.get_listing/swapped operands of `not in`