ccp4 / DUI

CCP4 DIALS User Interface
GNU General Public License v2.0
5 stars 3 forks source link

Cannot import paths with spaces in them #84

Open luisodls opened 5 years ago

luisodls commented 5 years ago

If the full path of the images has one space DUI is incapable to import

ndevenish commented 5 years ago

This is worse than it looks - it also comes up if e.g. running through CCP4i2 and the CCP4i2 project folder is in a path with spaces, because the output.log entry crashes dials before it even gets to file reading

dagewa commented 4 years ago

This was noted again today by the CCP4 core team. DIALS itself does not have a problem importing paths with spaces when these are quoted at the shell

dagewa commented 1 year ago

This was apparently still an issue at the Prague workshop on Windows laptops.

ndevenish commented 1 year ago

On DUI? What version of CCP4?

dagewa commented 1 year ago

Yes, on DUI1. I think most people had CCP4 8.0.011. We got around it by renaming folders to remove spaces.

dagewa commented 1 year ago

I've just tested this and it does indeed fail, with DUI 2021.11.1 on CCP4 8.0.011 on Windows.

The string in the import field was C:/Users/fcx32934/OneDrive\ -\ Science\ and\ Technology\ Facilities\ Council/Documents/C2sum_1/C2sum_1_*.cbf.gz. The log output shows

DIALS (2018) Acta Cryst. D74, 85-97. https://doi.org/10.1107/S2059798317017235
DIALS 3.8
Traceback (most recent call last):
  File "C:\Users\fcx32934\CCP4-8\8.0\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\Users\fcx32934\CCP4-8\8.0\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\fcx32934\CCP4-8\8.0\lib\site-packages\dials\command_line\dials_import.py", line 952, in <module>
    run()
  File "C:\Users\fcx32934\CCP4-8\8.0\lib\contextlib.py", line 74, in inner
    return func(*args, **kwds)
  File "C:\Users\fcx32934\CCP4-8\8.0\lib\site-packages\dials\command_line\dials_import.py", line 948, in run
    importer.import_image(args)
  File "C:\Users\fcx32934\CCP4-8\8.0\lib\site-packages\dials\command_line\dials_import.py", line 778, in import_image
    args=args, show_diff_phil=False, return_unhandled=True
  File "C:\Users\fcx32934\CCP4-8\8.0\lib\site-packages\dials\util\options.py", line 856, in parse_args
    quick_parse=quick_parse,
  File "C:\Users\fcx32934\CCP4-8\8.0\lib\site-packages\dials\util\options.py", line 547, in parse_args
    load_models=load_models,
  File "C:\Users\fcx32934\CCP4-8\8.0\lib\site-packages\dials\util\options.py", line 205, in __init__
    load_models,
  File "C:\Users\fcx32934\CCP4-8\8.0\lib\site-packages\dials\util\options.py", line 276, in try_read_experiments_from_images
    load_models=load_models,
  File "C:\Users\fcx32934\CCP4-8\8.0\lib\site-packages\dxtbx\src\dxtbx\model\experiment_list.py", line 546, in from_filenames
    format_class = find_format.find_format(filename)
  File "C:\Users\fcx32934\CCP4-8\8.0\lib\site-packages\dxtbx\src\dxtbx\datablock.py", line 307, in find_format
    self._format_class = get_format_class_for_file(filename)
  File "C:\Users\fcx32934\CCP4-8\8.0\lib\site-packages\dxtbx\src\dxtbx\format\Registry.py", line 124, in get_format_class_for_file
    if scheme in format_class.schemes and format_class.understand(image_file):
  File "C:\Users\fcx32934\CCP4-8\8.0\lib\site-packages\dxtbx\src\dxtbx\format\FormatCBF.py", line 22, in understand
    with FormatCBF.open_file(image_file, "rb") as fh:
  File "C:\Users\fcx32934\CCP4-8\8.0\lib\site-packages\dxtbx\src\dxtbx\format\Format.py", line 559, in open_file
    return cls.get_cache_controller().check(filename, fh_func)
  File "C:\Users\fcx32934\CCP4-8\8.0\lib\site-packages\dxtbx\src\dxtbx\filecache_controller.py", line 67, in check
    self._cache = dxtbx.filecache.lazy_file_cache(open_method())
FileNotFoundError: [Errno 2] No such file or directory: '-'