Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def get_log_path(subfolder=None, filename=None, create=True):
"""
Returns the default log path for the platform. This will be:
- macOS: "~/Library/Logs/SUBFOLDER/FILENAME"
- Linux: "$XDG_CACHE_HOME/SUBFOLDER/FILENAME"
- fallback: "~/.cache/SUBFOLDER/FILENAME"
:param str subfolder: The subfolder for the app.
:param str filename: The filename to append for the app.
:param bool create: If ``True``, the folder "" will be created on-demand.
"""
# if-defs for different platforms
if platform.system() == "Darwin":
log_path = osp.join(get_home_dir(), "Library", "Logs")
else:
fallback = osp.join(get_home_dir(), ".cache")
log_path = os.environ.get("XDG_CACHE_HOME", fallback)
# attach subfolder
if subfolder:
log_path = osp.join(log_path, subfolder)
# create dir
if create:
os.makedirs(log_path, exist_ok=True)
# attach filename
if filename:
log_path = osp.join(log_path, filename)
def rel_path(path):
"""
Returns the path relative to the users directory, or the absolute
path if not in a user directory.
"""
usr = osp.abspath(osp.join(get_home_dir(), osp.pardir))
if osp.commonprefix([path, usr]) == usr:
return osp.relpath(path, usr)
else:
return path
def get_autostart_path(filename=None, create=True):
"""
Returns the default cache path for the platform. This will be:
- macOS: "~/Library/LaunchAgents/FILENAME"
- Linux: "$XDG_CONFIG_HOME/autostart/FILENAME"
- fallback: "~/.config/autostart/FILENAME"
:param str filename: The filename to append for the app.
:param bool create: If ``True``, the folder "" will be created on-demand.
"""
if platform.system() == "Darwin":
autostart_path = osp.join(get_home_dir(), "Library", "LaunchAgents")
else:
autostart_path = get_conf_path("autostart", create=create)
# attach filename
if filename:
autostart_path = osp.join(autostart_path, filename)
return autostart_path
def filename(self):
"""Create a .ini filename. This .ini files stores the global preferences.
"""
if self.subfolder is None:
config_file = osp.join(get_home_dir(), '.%s.ini' % self.name)
return config_file
else:
folder = get_conf_path(self.subfolder)
# Save defaults in a "defaults" dir of .spyder2 to not pollute it
if 'defaults' in self.name:
folder = osp.join(folder, 'defaults')
if not osp.isdir(folder):
os.mkdir(folder)
config_file = osp.join(folder, '%s.ini' % self.name)
return config_file
def rel_path(path):
"""
Returns the path relative to the users directory, or the absolute
path if not in a user directory.
"""
usr = osp.abspath(osp.join(get_home_dir(), osp.pardir))
if osp.commonprefix([path, usr]) == usr:
return osp.relpath(path, usr)
else:
return path
def filename(self):
"""Create a .ini filename. This .ini files stores the global preferences.
"""
if self.subfolder is None:
config_file = osp.join(get_home_dir(), '.%s.ini' % self.name)
return config_file
else:
folder = get_conf_path(self.subfolder)
# Save defaults in a "defaults" dir of .spyder2 to not pollute it
if 'defaults' in self.name:
folder = osp.join(folder, 'defaults')
if not osp.isdir(folder):
os.mkdir(folder)
config_file = osp.join(folder, '%s.ini' % self.name)
return config_file