-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
📓 Refactored version of the original GitHub issue and Python CLI prototype. It replaces Indexd alias manipulation with a file-based approach: tags are stored in a TSV-formatted sidecar file META/tags.tsv
🆕 Added tsv tag store - combines cli and user editable "spreadsheet"
✅ Summary of Refactor:
- Changed
add-links→calypr tag - Changed
ls-links→calypr ls-tag - Renamed CLI parser commands, help text, and function bindings accordingly
- Example usage and doc blocks aligned with new naming convention
📓 User Story 1: Tagging Remote Files for Discoverability and Retrieval
As a researcher or developer
I want to associate tags (aliases) with files tracked by Git LFS
So that they can be discovered, categorized, and integrated into metadata workflows
✅ Acceptance Criteria
- I can run
calypr tag <path> <curies>with a wildcard or file path matching Git LFS-managed files - The
curiesargument is a comma-separated list of CURIE-styleprefix:valuetags - Tags are validated and maintained in a META/tags.tsv sidecar file
- Only files tracked by Git LFS are processed; others are skipped with a warning
- If
--dry-runis specified, changes are printed but not saved
💻 Example Usage
calypr tag "data/*.bam" "doi:10.1234/abcd,Patient:xyz,Specimen:abc" --dry-run
calypr tag "results/file1.txt" "assay:my-pipeline"📓 User Story 2: Viewing Tags for Tracked Files
As a project contributor
I want to list tags for Git LFS-tracked files
So that I can ensure metadata consistency and discoverability
✅ Acceptance Criteria
- I can run
calypr ls-tagto list tags for all LFS-tracked files - I can specify a path or wildcard to filter the listing
- Tags are read from
.metasidecar JSON files - If no
.metafile or tags exist, I see a clear message
💻 Example Usage
calypr ls-tag
# ➜ results/file1.txt assay:my-pipeline
# ➜ data/my-file.bam doi:10.1234/abcd,Patient:xyz,Specimen:abc
calypr ls-tag "data/*.bam"
# ➜ data/my-file.bam doi:10.1234/abcd,Patient:xyz,Specimen:abcMetadata
Metadata
Assignees
Labels
No labels