Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Option to deflate TRX files created with Python

Abierto
#85 0 comentarios 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
45/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
python
Área
cli

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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de tee-ar-ex/trx-python

Todos los issues de tee-ar-ex/trx-python

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.