Skip to content

Commit

Permalink
Use appdirs for omero user dir
Browse files Browse the repository at this point in the history
  • Loading branch information
manics committed Aug 5, 2020
1 parent 0c01a0b commit 0f0d44e
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 21 deletions.
1 change: 1 addition & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,7 @@ def read(fname):
},
python_requires='>=3',
install_requires=[
'appdirs',
'future',
'numpy',
'Pillow',
Expand Down
33 changes: 17 additions & 16 deletions src/omero/util/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
from future.utils import native_str
from past.utils import old_div
from builtins import object
from appdirs import user_data_dir, user_cache_dir
import os
import sys
import Ice
Expand All @@ -29,6 +30,8 @@
import omero.ObjectFactoryRegistrar as ofr

from omero.util.decorators import locked
from omero_version import omero_version

import omero_ext.path as path

LOGDIR = os.path.join("var", "log")
Expand All @@ -42,6 +45,9 @@
orig_stdout = sys.stdout
orig_stderr = sys.stderr

# Application name, Owner (Windows only), Major version
APPDIR_DEFAULTS = ('OMERO.cli', 'OME', omero_version.split('.')[0])


def make_logname(self):
"""
Expand Down Expand Up @@ -838,29 +844,24 @@ def get_omero_userdir():
if omero_userdir:
return path.path(omero_userdir)
else:
return old_div(path.path(get_user_dir()), "omero")
return path.path(user_data_dir(*APPDIR_DEFAULTS))


def get_omero_user_cache_dir():
"""Returns the OMERO user cache directory"""
return get_omero_userdir()
omero_userdir = os.environ.get('OMERO_USERDIR', None)
if omero_userdir:
return path.path(omero_userdir)
else:
return path.path(user_cache_dir(*APPDIR_DEFAULTS))


# Other application directories may be added in future, see
# https://pypi.org/project/appdirs/


def get_user_dir():
exceptions_to_handle = (ImportError)
try:
from pywintypes import com_error
from win32com.shell import shellcon, shell
exceptions_to_handle = (ImportError, com_error)
homeprop = shell.SHGetFolderPath(0, shellcon.CSIDL_APPDATA, 0, 0)
except exceptions_to_handle:
homeprop = os.path.expanduser("~")

if "~" == homeprop:
# ticket:5583
raise Exception("Unexpanded '~' from expanduser: see ticket:5583")

return homeprop
return get_omero_userdir()


def edit_path(path_or_obj, start_text):
Expand Down
4 changes: 2 additions & 2 deletions test/unit/clitest/test_sessions.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ def testDefaultSessionsDir(self):

# Default store sessions dir is under user dir
store = self.cli.controls['sessions'].store(None)
assert store.dir == path(get_user_dir()) / 'omero' / 'sessions'
assert store.dir == path(get_user_dir()) / 'sessions'

@pytest.mark.parametrize('environment', (
{'OMERO_USERDIR': None,
Expand Down Expand Up @@ -115,5 +115,5 @@ def testCustomSessionsDir(
elif environment.get('OMERO_USERDIR'):
sdir = path(tmpdir) / environment.get('OMERO_USERDIR') / 'sessions'
else:
sdir = path(get_user_dir()) / 'omero' / 'sessions'
sdir = path(get_user_dir()) / 'sessions'
assert store.dir == str(sdir)
6 changes: 3 additions & 3 deletions test/unit/test_util.py
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ def testTmpdirEnvironment(self, monkeypatch, tmpdir, environment):
elif environment.get('OMERO_USERDIR'):
tdir = tmpdir / environment.get('OMERO_USERDIR') / "tmp"
else:
tdir = path(get_user_dir()) / "omero" / "tmp"
tdir = path(get_user_dir()) / "tmp"

assert value == str(tdir)

Expand All @@ -244,7 +244,7 @@ def testTmpdir2805_1(self, monkeypatch, tmpdir):
tmpfile.write('')

value = pytest.deprecated_call(manager.tmpdir)
assert value == path(get_user_dir()) / "omero" / "tmp"
assert value == path(get_user_dir()) / "tmp"

def testTmpdir2805_2(self, monkeypatch, tmpdir):

Expand All @@ -256,7 +256,7 @@ def testTmpdir2805_2(self, monkeypatch, tmpdir):
tmpfile.write('')

value = pytest.deprecated_call(manager.tmpdir)
assert value == path(get_user_dir()) / "omero" / "tmp"
assert value == path(get_user_dir()) / "tmp"


class TestImageUtils(object):
Expand Down

0 comments on commit 0f0d44e

Please sign in to comment.