diff --git a/appdirs.py b/appdirs.py index 975e9bf..230835c 100644 --- a/appdirs.py +++ b/appdirs.py @@ -41,6 +41,16 @@ system = sys.platform +def path_property(f): + @property + def wrapper(self): + try: + import pathlib + return pathlib.Path(f(self)) + except ImportError: + return f(self) + return wrapper + def user_data_dir(appname=None, appauthor=None, version=None, roaming=False): r"""Return full path to the user-specific data dir for this application. @@ -422,37 +432,37 @@ def __init__(self, appname=None, appauthor=None, version=None, self.roaming = roaming self.multipath = multipath - @property + @path_property def user_data_dir(self): return user_data_dir(self.appname, self.appauthor, version=self.version, roaming=self.roaming) - @property + @path_property def site_data_dir(self): return site_data_dir(self.appname, self.appauthor, version=self.version, multipath=self.multipath) - @property + @path_property def user_config_dir(self): return user_config_dir(self.appname, self.appauthor, version=self.version, roaming=self.roaming) - @property + @path_property def site_config_dir(self): return site_config_dir(self.appname, self.appauthor, version=self.version, multipath=self.multipath) - @property + @path_property def user_cache_dir(self): return user_cache_dir(self.appname, self.appauthor, version=self.version) - @property + @path_property def user_state_dir(self): return user_state_dir(self.appname, self.appauthor, version=self.version) - @property + @path_property def user_log_dir(self): return user_log_dir(self.appname, self.appauthor, version=self.version)