Source code for piecash_utilities.config

import os
import sys


# def get_latest_file():
#     if sys.platform.startswith("win"):
#         try:
#             import winreg
#         except ImportError:
#             import _winreg as winreg
#
#         explorer = winreg.OpenKey(
#             winreg.HKEY_CURRENT_USER,
#             "Software\\GSettings\\org\\gnucash\\history"
#         )
#         value, type = winreg.QueryValueEx(explorer, "file0")
#         return value
#     elif sys.platform.startswith("linux"):
#         import subprocess
#         output_dconf = subprocess.check_output(["dconf", "dump", "/org/gnucash/history/"]).decode()
#         from configparser import ConfigParser
#         conf = ConfigParser()
#         conf.read_string(output_dconf)
#         return conf["/"]["file0"][1:-1]
#     else:
#         raise NotImplemented("not yet implemented for sys.platform = '{}'".format(sys.platform))


[docs]def get_user_config_path(): from os.path import expanduser home = expanduser("~") if sys.platform.startswith("win") or sys.platform.startswith("linux"): return os.path.join(home, ".gnucash") else: raise NotImplemented("not yet implemented for sys.platform = '{}'".format(sys.platform))
[docs]def update_config_user(lines, separator=";; lines automatically added\n;; everything below this line will be scraped"): # add the list of lines to the end of the config.user file # separating the original content and the new content # through a separator path = os.path.join(get_user_config_path(), "config.user") if os.path.exists(path): with open(path, "r") as fin: original = fin.read() else: original = "" if separator in original: original = original[:original.index(separator)] if not original.endswith("\n"): original += "\n" original += separator + "\n" original += "\n".join(lines) with open(path, "w") as fout: fout.write(original)