mirror of
https://github.com/derrod/legendary.git
synced 2025-01-03 04:45:28 +00:00
50 lines
1.3 KiB
Python
50 lines
1.3 KiB
Python
import configparser
|
|
import os
|
|
import time
|
|
|
|
|
|
class LGDConf(configparser.ConfigParser):
|
|
def __init__(self, *args, **kwargs):
|
|
self.modified = False
|
|
self.read_only = False
|
|
self.modtime = None
|
|
super().__init__(*args, **kwargs)
|
|
self.optionxform = str
|
|
|
|
def read(self, filename):
|
|
# if config file exists, save modification time
|
|
if os.path.exists(filename):
|
|
self.modtime = int(os.stat(filename).st_mtime)
|
|
|
|
return super().read(filename)
|
|
|
|
def write(self, *args, **kwargs):
|
|
self.modified = False
|
|
super().write(*args, **kwargs)
|
|
self.modtime = int(time.time())
|
|
|
|
def set(self, section, option, value=None):
|
|
if self.read_only:
|
|
return
|
|
|
|
# ensure config section exists
|
|
if not self.has_section(section):
|
|
self.add_section(section)
|
|
|
|
self.modified = True
|
|
super().set(section, option, value)
|
|
|
|
def remove_option(self, section, option):
|
|
if self.read_only:
|
|
return False
|
|
|
|
self.modified = True
|
|
return super().remove_option(section, option)
|
|
|
|
def __setitem__(self, key, value):
|
|
if self.read_only:
|
|
return
|
|
|
|
self.modified = True
|
|
super().__setitem__(key, value)
|