Source code for piecash_utilities.config

import os
import sys


[docs]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)