Added "pack" command, enabling users to run a full packing pipeline:
- Create checksum manifest (currently has SHA512 and SHA256 but is extensible), in semi-bagit format
- Find compression targets based on mode (currently have "leaf", "depth" and "heuristic", but is extensible)
- Compress targets into .tar.zst files
- Create a {base dir name}.packmap.json file
- Delete original targets
Also has the "unpack" command for restoring the original state of the directory.
It's highly likely I made some sort of faux pas or just idiotic mistake; please don't hold back with criticism/suggestions/edits you'd like to make. There are other obvious things we could add (compression from a provided json of specified compression targets, compression level selection (like a --fast mode or something), etc), happy to do so if y'all would like me to.
I also included a small test script, and did my best to update the pyproject.toml/pmd.lock/changelog to fit this update, again please let me know if I did this wrong.
Added "pack" command, enabling users to run a full packing pipeline:
- Create checksum manifest (currently has SHA512 and SHA256 but is extensible), in semi-bagit format
- Find compression targets based on mode (currently have "leaf", "depth" and "heuristic", but is extensible)
- Compress targets into .tar.zst files
- Create a {base dir name}.packmap.json file
- Delete original targets
Also has the "unpack" command for restoring the original state of the directory.
It's highly likely I made some sort of faux pas or just idiotic mistake; please don't hold back with criticism/suggestions/edits you'd like to make. There are other obvious things we could add (compression from a provided json of specified compression targets, compression level selection (like a --fast mode or something), etc), happy to do so if y'all would like me to.
I also included a small test script, and did my best to update the pyproject.toml/pmd.lock/changelog to fit this update, again please let me know if I did this wrong.