labscript-suite / labscript-utils

Shared modules used by the 𝘭𝘢𝘣𝘴𝘤𝘳𝘪𝘱𝘵 𝘴𝘶𝘪𝘵𝘦. Includes a graphical exception handler, debug tools, configuration management, cross platform filepath conversions, unit conversions and custom GUI widgets.
http://labscriptsuite.org
Other
2 stars 45 forks source link

Permit profile creation in existing directory #37

Closed rpanderson closed 4 years ago

rpanderson commented 4 years ago

Profile creation fails if pathlib.Path.home() / 'labscript-suite' exists.

~/labscript-suite$ labscript-profile-create
Traceback (most recent call last):
  File "/home/rpanderson/labscript-suite/.venv/bin/labscript-profile-create", line 11, in <module>
    load_entry_point('labscript-utils==2.16.0.dev3', 'console_scripts', 'labscript-profile-create')()
  File "/home/rpanderson/labscript-suite/.venv/lib/python3.7/site-packages/labscript_profile/create.py", line 41, in create_profile
    raise FileExistsError(LABSCRIPT_SUITE_PROFILE)

This proposal is to permit existence of pathlib.Path.home() / 'labscript-suite', but:

  1. not if any files of the same name as those in DEFAULT_PROFILE_CONTENTS exist; or, alternatively
  2. not if directories of the same name as those in DEFAULT_PROFILE_CONTENTS exist.

This would permit–at least–installing a virtual environment and/or a local install of the suite in pathlib.Path.home() / 'labscript-suite'.

For (1) above, the dirs_exist_ok parameter of shutil.copytree could be used, but this requires python_version >= '3.8'.