Option to deflate TRX files created with Python
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 45/100
Línea de trabajo
Comienza en tff_convert_tractogram.py, usando las opciones existentes --positions_dtype y --offsets_dtype para localizar dónde se crean los archivos ZIP de TRX. Revisa las opciones de compresión de zipfile de Python y el ejemplo zip2zip.py del issue. Se considera terminado cuando la herramienta puede elegir la compresión stored o deflate con un nivel configurable, preservando el comportamiento existente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I find the tff_convert_tractogram.py tool useful, and it provides options for both --positions_dtype and --offsets_dtype. However, the TRX zip files are always uncompressed (store) rather than using compression (some level of deflate). It might be nice to trade off file creation speed with file size (and transmission time).
I did write a little Python script to do this, but it would be nice to integrate this. My standalone script allows you to recompress any zip file (including trx) with a desired compression level:
python zip2zip.py -c 9 IFOF_L32.trx IFOF_L32_z9.trx
The code is:
import zipfile
import argparse
import sys
def recompress_zip(input_zip: str, output_zip: str, compression_level: int):
"""Recompress a ZIP file with a specified compression level (0-9)."""
compression_type = zipfile.ZIP_DEFLATED if compression_level > 0 else zipfile.ZIP_STORED
with zipfile.ZipFile(input_zip, 'r') as src_zip:
with zipfile.ZipFile(output_zip, 'w', compression=compression_type, compresslevel=compression_level) as dst_zip:
for file_info in src_zip.infolist():
with src_zip.open(file_info.filename, 'r') as src_file:
dst_zip.writestr(file_info, src_file.read(), compress_type=compression_type)
print(f"Recompressed {input_zip} -> {output_zip} with compression level {compression_level}")
def main():
parser = argparse.ArgumentParser(description="Recompress a ZIP file with a specified compression level.")
parser.add_argument("input_zip", help="Path to the input ZIP file")
parser.add_argument("output_zip", help="Path to the output compressed ZIP file")
parser.add_argument("-c", "--compression", type=int, choices=range(0, 10), default=9,
help="Compression level (0-9, where 0 is uncompressed and 9 is max compression, default: 9)")
args = parser.parse_args()
try:
recompress_zip(args.input_zip, args.output_zip, args.compression)
except Exception as e:
print(f"Error: {e}", file=sys.stderr)
sys.exit(1)
if __name__ == "__main__":
main()
- Lenguaje dominante
- Python
- Estrellas
- 27
- Forks
- 20
- Merge medio
- 2 d 25 min
- PR fusionados (30 d)
- 1
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de tee-ar-ex/trx-python
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
tee-ar-ex/trx-python#77 · 1 comentario ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
tee-ar-ex/trx-python#72 · 3 comentarios ·
-
Circular Dependency for DIPY ?Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
tee-ar-ex/trx-python#51 · 23 comentarios ·
-
Allow other types into `append`Abiertogood first issue
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
tee-ar-ex/trx-python#39 · 1 comentario ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
tee-ar-ex/trx-python#21 · 4 comentarios ·
Todos los issues de tee-ar-ex/trx-python
Issues similares
-
customer-reported question
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Azure/azure-sdk-for-python#49548 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
btclib-org/btclib-wallet#409 ·
Los mantenedores suelen responder en 1 día
-
Phase 2 PSA Capability & Career Profile
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
bcgov/digital-journeys#2310 ·
-
bug good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
fastmachinelearning/hls4ml#1582 ·
Los mantenedores suelen responder en 3 días
-
Sort modelsAbiertoenhancement good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día