in torchdata/datapipes/iter/util/rar_archive_loader.py [0:0]
def __iter__(self) -> Iterator[Tuple[str, io.BufferedIOBase]]:
import rarfile
patcher = RarfilePatcher()
patcher.start()
for data in self.datapipe:
validate_pathname_binary_tuple(data)
path, stream = data
rar = rarfile.RarFile(stream)
for info in rar.infolist():
if info.filename.endswith("/"):
continue
inner_path = os.path.join(path, info.filename)
file_obj = rar.open(info)
yield inner_path, StreamWrapper(file_obj) # type: ignore[misc]