Skip to content

[REG]: Introduce feature files addition to registry#3

Open
synchon wants to merge 32 commits into
mainfrom
feat/add-feature
Open

[REG]: Introduce feature files addition to registry#3
synchon wants to merge 32 commits into
mainfrom
feat/add-feature

Conversation

@synchon
Copy link
Copy Markdown
Member

@synchon synchon commented Dec 17, 2025

Enable users to add features to registry like so:

$ junifer registry add [junifer-yaml] --registry [registry-uri-or-path]

This should add the feature file (HDF5), the Junifer computation file (YAML) and its corresponding metadata file (YAML) to the specified registry dataset. If the Junifer YAML file contains multiple features, all features should be added to the registry, each with their own files. The metadata file should be generated automatically based on the information in the Junifer YAML file as well as the computed feature file (e.g., size, shape, data type, etc.). If the registry is remote, the command should clone the dataset locally, add the files, and then push the changes back to the remote.

@synchon synchon self-assigned this Dec 8, 2025
@synchon synchon added the enhancement New feature or request label Dec 8, 2025
@synchon synchon changed the title Introduce feature files addition to registry [REG]: Introduce feature files addition to registry Dec 8, 2025
@codecov
Copy link
Copy Markdown

codecov Bot commented Dec 17, 2025

Codecov Report

❌ Patch coverage is 90.50279% with 17 lines in your changes missing coverage. Please review.
✅ Project coverage is 91.05%. Comparing base (3078a21) to head (5d2018c).

Files with missing lines Patch % Lines
julio/_utils.py 89.37% 8 Missing and 9 partials ⚠️

❌ Your patch check has failed because the patch coverage (90.50%) is below the target coverage (95.00%). You can increase the patch coverage or adjust the target coverage.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##              main       #3      +/-   ##
===========================================
- Coverage   100.00%   91.05%   -8.95%     
===========================================
  Files            1        3       +2     
  Lines           15      190     +175     
  Branches         0       33      +33     
===========================================
+ Hits            15      173     +158     
- Misses           0        8       +8     
- Partials         0        9       +9     
Flag Coverage Δ
julio 91.05% <90.50%> (-8.95%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
julio/_functions.py 100.00% <100.00%> (ø)
julio/_yaml.py 100.00% <100.00%> (ø)
julio/_utils.py 89.37% <89.37%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@synchon synchon requested review from fraimondo and removed request for fraimondo March 11, 2026 13:29
Comment thread julio/_utils.py
return data


def _parse_yaml(yaml_path: Path) -> dict:
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do have this in junifer, why are we re-parsing the yaml and checking everything here?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a minimal parse-validate for malformed YAML and adjusting of paths for further operations.

Comment thread julio/_utils.py Outdated
y["datagrabber"] = meta["datagrabber"].copy()
a = y["datagrabber"].pop("class")
y["datagrabber"]["kind"] = a
if a not in ("PatternDataGrabber", "PatternDataladDataGrabber"):
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are we doing this? I don't understand it.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is done to correctly regenerate the YAML.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

juaml/junifer#498 should clean this up.

Comment thread julio/_utils.py
)
feature_dir = ds.pathobj / "features"
feature_dir.mkdir(exist_ok=True)
for k, v in tqdm(metadata.items(), desc="Processing features"):
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is here k the feature md5? Can we rename the variable to be more explicit?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you want it to be called?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants