Skip to content

Ignoring .DS_Store files (mac issue) #125

@quantixed

Description

@quantixed

Hello, I am using BiaPy via CLI on macOS to do Image Classification. If "mac droppings" i.e. .DS_Store files are present in either the training of testing folders/subfolders, the routine crashes:

[08:41:52.063669] ######################
[08:41:52.063677] #   LOAD TEST DATA   #
[08:41:52.063680] ######################
[08:41:52.063702] ### LOAD ###
[08:41:52.063890] Found 1 classes
Traceback (most recent call last):
  File "/Users/redacted/miniconda3/envs/BiaPy_dev/bin/biapy", line 8, in <module>
    sys.exit(main())
  File "/Users/redacted/BiaPy/biapy/__init__.py", line 68, in main
    _biapy.run_job()
  File "/Users/redacted/BiaPy/biapy/_biapy.py", line 1082, in run_job
    self.test()
  File "/Users/redacted/BiaPy/biapy/_biapy.py", line 253, in test
    self.workflow.test()
  File "/Users/redacted/miniconda3/envs/BiaPy_dev/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 116, in decorate_context
    return func(*args, **kwargs)
  File "/Users/redacted/BiaPy/biapy/engine/base_workflow.py", line 1098, in test
    self.load_test_data()
  File "/Users/redacted/BiaPy/biapy/engine/classification.py", line 274, in load_test_data
    ) = load_and_prepare_cls_test_data(
  File "/Users/redacted/BiaPy/biapy/data/data_manipulation.py", line 1105, in load_and_prepare_cls_test_data
    X_test = samples_from_class_list(
  File "/Users/redacted/BiaPy/biapy/data/data_manipulation.py", line 2207, in samples_from_class_list
    img, _ = load_img_data(img_path, is_3d=is_3d)
  File "/Users/redacted/BiaPy/biapy/data/data_manipulation.py", line 3175, in load_img_data
    data = read_img_as_ndarray(path, is_3d=is_3d)
  File "/Users/redacted/BiaPy/biapy/data/data_manipulation.py", line 3212, in read_img_as_ndarray
    img = imread(path)
  File "/Users/redacted/BiaPy/biapy/data/data_manipulation.py", line 3241, in imread
    return imageio.imread(path)
  File "/Users/redacted/miniconda3/envs/BiaPy_dev/lib/python3.10/site-packages/imageio/__init__.py", line 97, in imread
    return imread_v2(uri, format=format, **kwargs)
  File "/Users/redacted/miniconda3/envs/BiaPy_dev/lib/python3.10/site-packages/imageio/v2.py", line 359, in imread
    with imopen(uri, "ri", **imopen_args) as file:
  File "/Users/redacted/miniconda3/envs/BiaPy_dev/lib/python3.10/site-packages/imageio/core/imopen.py", line 281, in imopen
    raise err_type(err_msg)
ValueError: Could not find a backend to open `/Users/redacted/Desktop/biapy_stv/2d/test/all/.DS_Store`` with iomode `ri`.

I can resolve by doing find . -name ".DS_Store" -delete in the training and test folders.

Perhaps BiaPy could skip hidden files? Or maybe check for their presence at the start of the routine as the crash occurs when they're encountered, so if only present in test folder, the training proceeds OK before the crash.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions