Option to deflate TRX files created with Python
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 45/100
Direção de pesquisa
Comece em tff_convert_tractogram.py, usando as opções existentes --positions_dtype e --offsets_dtype para localizar onde os arquivos ZIP TRX são criados. Revise as opções de compressão de zipfile do Python e o exemplo zip2zip.py da issue. O trabalho estará concluído quando a ferramenta puder escolher a compressão stored ou deflate com um nível configurável, preservando o comportamento existente.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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()
- Linguagem predominante
- Python
- Estrelas
- 27
- Forks
- 20
- Merge médio
- 2d 25min
- PRs com merge (30d)
- 1
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de tee-ar-ex/trx-python
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 25/100
tee-ar-ex/trx-python#77 · 1 comentário ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
tee-ar-ex/trx-python#72 · 3 comentários ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
tee-ar-ex/trx-python#51 · 23 comentários ·
-
good first issue
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
tee-ar-ex/trx-python#39 · 1 comentário ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
tee-ar-ex/trx-python#21 · 4 comentários ·
Todas as issues de tee-ar-ex/trx-python
Issues semelhantes
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Graphify-Labs/graphify#4524 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
topoteretes/cognee#5982 ·
Mantenedores costumam responder em até 1 dia
-
Patches of derivations with `__structuredAttrs` are ignoredTalvez já em andamento @KiaraGrouwstra assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 81/100
nix-community/vulnix#184 ·
-
New InternshipAbertanew_internship
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 65/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 64/100
aws-samples/sample-per-model-bedrock#295 ·
Mantenedores costumam responder em até 1 dia