Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 17 additions & 7 deletions appdirs.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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)
Expand Down