• Özhan Özen's avatar
    Modifies `update_class_from_dict()` to wholesale replace flat Iterables (#2511) · 394a1629
    Özhan Özen authored
    # Description
    
    Currently, `update_class_from_dict()` does not allow updating the
    configclass Iterable elements with Hydra, when the provided Iterable
    length differs from the default value. Such a feature is nevertheless
    needed when changing the network layer depth on the go, e.g., while
    using learning libraries that utilize configclass (see #2456 for
    details).
    
    This PR modifies `update_class_from_dict()` such that if an element is a
    flat Iterable (e.g., flat list), it is replaced wholesale, without
    checking the lengths. Moreover, the PR modifies the robustness of the
    function against a few edge cases that might break the execution, and
    adds comments to make it easier to follow the logic flow.
    
    Note: I left the changelog entry as `[Unreleased]` until a green light
    is given.
    
    Fixes #2456.
    
    ## Type of change
    
    - Bug fix (non-breaking change which fixes an issue)
    
    ## Checklist
    
    - [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with
    `./isaaclab.sh --format`
    - [ ] I have made corresponding changes to the documentation
    - [ ] My changes generate no new warnings
    - [ ] I have added tests that prove my fix is effective or that my
    feature works
    - [x] I have updated the changelog and the corresponding version in the
    extension's `config/extension.toml` file
    - [x] I have added my name to the `CONTRIBUTORS.md` or my name already
    exists there
    
    ---------
    Signed-off-by: 's avatarKelly Guo <kellyg@nvidia.com>
    Signed-off-by: 's avatarKelly Guo <kellyguo123@hotmail.com>
    Co-authored-by: 's avatarKelly Guo <kellyg@nvidia.com>
    Co-authored-by: 's avatarKelly Guo <kellyguo123@hotmail.com>
    394a1629
Name
Last commit
Last update
..
config Loading commit data...
docs Loading commit data...
isaaclab Loading commit data...
test Loading commit data...
pyproject.toml Loading commit data...
setup.py Loading commit data...