• Hunter Hansen's avatar
    Converts container.sh into Python utilities (#539) · f565c33d
    Hunter Hansen authored
    This PR replicates the capabilities of `container.sh` in Python, and
    breaks its capabilities up into several files under a new directory
    `/docker/isaaclab_container_utils`, as well as a superior interface in
    `container.py`. The intention of this change is to make our
    container-mediating code more easily readable, debuggable, and
    modifiable. It is also done in the hopes that it can be more easily
    distributed as we see a desire from users to [compose and modify our
    setup](https://github.com/isaac-sim/IsaacLab/pull/455). It also has the
    additional benefit of needing fewer sudo installs because of Python's
    native yaml handling.
    
    The central class, `IsaacLabContainerInterface`, contains a lot of the
    original utility of the script, and several of the current
    `container.py` scripts options simply configure it and call a method.
    @pascal-roth `apptainer_utils.py` and the `./container.py job/push`
    logic are separated out, I'm curious what you think of this delineation.
    I also haven't been able to fully test that end of things as I don't
    have a cluster to use, though I did verify that it worked to the extent
    I could.
    
    I will update the docs when I have received approval
    
    <!-- As you go through the list, delete the ones that are not
    applicable. -->
    
    - Breaking change (fix or feature that would cause existing
    functionality to not work as expected)
    - This change requires a documentation update
    
    - [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with
    `./isaaclab.sh --format`
    - [x] I have made corresponding changes to the documentation
    - [x] My changes generate no new warnings
    - [ ] I have added tests that prove my fix is effective or that my
    feature works
    - [ ] I have run all the tests with `./isaaclab.sh --test` and they pass
    - [ ] 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 avatarHunter Hansen <50837800+hhansen-bdai@users.noreply.github.com>
    Signed-off-by: 's avatarJames Smith <142246516+jsmith-bdai@users.noreply.github.com>
    Co-authored-by: 's avatarJames Smith <142246516+jsmith-bdai@users.noreply.github.com>
    Co-authored-by: 's avatarDavid Hoeller <dhoeller@nvidia.com>
    f565c33d
isaaclab_container_interface.py 7.24 KB