allenai / allenai/cached_path

Caching a single file in a tar/zip should not extract all files

Abierto
#260 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Feature request
Lenguaje dominante
Python
Estrellas
47
Forks
22
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

**Is your feature request related to a problem? Please describe.**
When extracting a single file from a tar/zip archive, currently all files in the archive are extracted using the `tarfile.extractall` function even though only a single file was requested. This leads to bloated cache directories containing unnecessary files. Note below, I only request `dummy.txt` but I also get `folder`:

```python
>>> import cached_path
>>> path = "https://github.com/allenai/cached_path/raw/refs/heads/main/test_fixtures/utf-8_sample/archives/utf-8.tar.gz!dummy.txt"
>>> f = cached_path.cached_path(path, extract_archive=True, quiet=True)
>>> [x.name for x in f.parent.iterdir()]
['dummy.txt', 'folder']
```

**Describe the solution you'd like**
Extract only the file requested using the `tarfile.extract` function rather than the `tarfile.extractall` function.

**Describe alternatives you've considered**
None

**Additional context**
None

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.