mlcube: Singularity fails in 0.0.10rc0

The output of singularity --version for singularity >=3.8 is as follows: singularity-ce version 3.x.x

The MLCube singularity runner currently doesn’t expect a version prefix as singularity-ce. It fails and exists when parsing the version.

Additional Context

(medperf) hasan@hasan-HP-ZBook-15-G3:~/work/medperf_ws/tmp$ mlcube configure --platform singularity --mlcube mlcube.yaml 
2023-08-02 06:50:32 hasan-HP-ZBook-15-G3 mlcube_singularity.singularity_run[69189] WARNING Config.merge singularity configuration not found in MLCube file (singularity={}).
2023-08-02 06:50:32 hasan-HP-ZBook-15-G3 mlcube_singularity.singularity_client[69189] WARNING Client.init unrecognized container runtime (version_string: singularity-ce version 3.10.0)
Traceback (most recent call last):
  File "/home/hasan/anaconda3/envs/medperf/bin/mlcube", line 8, in <module>
    sys.exit(cli())
  File "/home/hasan/anaconda3/envs/medperf/lib/python3.9/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/home/hasan/anaconda3/envs/medperf/lib/python3.9/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/home/hasan/anaconda3/envs/medperf/lib/python3.9/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/hasan/anaconda3/envs/medperf/lib/python3.9/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/hasan/anaconda3/envs/medperf/lib/python3.9/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/home/hasan/anaconda3/envs/medperf/lib/python3.9/site-packages/mlcube/__main__.py", line 242, in configure
    runner_cls, mlcube_config = parse_cli_args(
  File "/home/hasan/anaconda3/envs/medperf/lib/python3.9/site-packages/mlcube/cli.py", line 72, in parse_cli_args
    mlcube_config = MLCubeConfig.create_mlcube_config(
  File "/home/hasan/anaconda3/envs/medperf/lib/python3.9/site-packages/mlcube/config.py", line 154, in create_mlcube_config
    runner_cls.CONFIG.merge(mlcube_config)
  File "/home/hasan/anaconda3/envs/medperf/lib/python3.9/site-packages/mlcube_singularity/singularity_run.py", line 84, in merge
    client = Client.from_env()
  File "/home/hasan/anaconda3/envs/medperf/lib/python3.9/site-packages/mlcube_singularity/singularity_client.py", line 87, in from_env
    client = Client(executable)
  File "/home/hasan/anaconda3/envs/medperf/lib/python3.9/site-packages/mlcube_singularity/singularity_client.py", line 117, in __init__
    self.init()
  File "/home/hasan/anaconda3/envs/medperf/lib/python3.9/site-packages/mlcube_singularity/singularity_client.py", line 156, in init
    self.version = Version(runtime, semver.VersionInfo.parse(version_string))
  File "/home/hasan/anaconda3/envs/medperf/lib/python3.9/site-packages/semver/version.py", line 646, in parse
    raise ValueError(f"{version} is not valid SemVer string")
ValueError: singularity-ce version 3.10.0 is not valid SemVer string

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Comments: 15 (15 by maintainers)

Most upvoted comments

sure!

name: mockprepsep
description: mockprepsep
authors:
  - { name: "Hasan Kassem" }

platform:
  accelerator_count: 0

docker:
  # Image name.
  image: hasan7/mock-prep-sep:0.0.0
  # Docker build context relative to $MLCUBE_ROOT.
  build_context: "../project"
  # Docker file name within docker build context, default is `Dockerfile`.
  build_file: "Dockerfile"

tasks:
  prepare:
    parameters:
      inputs:
        data_path: vids_files/
        labels_path: labels_files/
        parameters_file: parameters.yaml
      outputs:
        output_path: data/
        output_labels_path: labels/

  sanity_check:
    parameters:
      inputs:
        data_path: data/
        labels_path: labels/
        parameters_file: parameters.yaml
  statistics:
    parameters:
      inputs:
        data_path: data/
        labels_path: labels/
        parameters_file: parameters.yaml
      outputs:
        output_path:
          type: file
          default: statistics.yaml