Imageomics / Imageomics/sum-buddy

Add TAR support and decide how nested archives are dealt with.

Open
#34 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Python
Stars
3
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Extend the ZIP archive support to TAR, and use this concrete extension step to design abstraction for handling nested archive situations.

`ArchiveHandler` already exists with generic methods and work with ZIP. TAR fits as new internal dispatch and a grounding format for the nesting decision.

When `iter_members` hits a member that's itself a supported archive (e.g., a .zip inside a .tar.gz), we probably want descent.

So we need a syntax for the output virtual path path (like `path/to/outer.tar.gz/inner.zip/file.txt`)

There are also risks of nested archives which could be mitigated by depth limit, cycle detection, handling members that fail to open (error or skipped warning?), probably others.

I would like to design the functionality around a "maximum trust" mode and set it up to descend into any arbitrary nested archive structure, and maybe start with just an opt-in flag that toggles nested archive descent.

And with this, set up a context object that can go along with the recursion which would be an extensible and independent way to handle nest problems. This way we can update security by configuring that object rather than refactoring nesting functionality.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the existing ArchiveHandler and its iter_members implementation to understand the current ZIP dispatch. Define the TAR extension, nested-archive syntax, opt-in behavior, and safety decisions for depth, cycles, and failed members before implementation. No test files are named; done should include agreed behavior and coverage for the selected archive cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.