• Ö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