You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
916 B
42 lines
916 B
# -*- coding: utf-8 -*-
|
|
"""
|
|
:authors: python273
|
|
:license: Apache License, Version 2.0, see LICENSE file
|
|
|
|
:copyright: (c) 2019 python273
|
|
"""
|
|
|
|
|
|
import json
|
|
|
|
from .base import BaseConfig
|
|
|
|
|
|
class Config(BaseConfig):
|
|
""" Класс конфигурации в файле
|
|
|
|
:param filename: имя файла
|
|
"""
|
|
|
|
__slots__ = ('_filename',)
|
|
|
|
def __init__(self, section, filename='.jconfig'):
|
|
self._filename = filename
|
|
|
|
super(Config, self).__init__(section, filename=filename)
|
|
|
|
def load(self, filename, **kwargs):
|
|
try:
|
|
with open(filename, 'r') as f:
|
|
settings = json.load(f)
|
|
except (IOError, ValueError):
|
|
settings = {}
|
|
|
|
settings.setdefault(self.section_name, {})
|
|
|
|
return settings
|
|
|
|
def save(self):
|
|
with open(self._filename, 'w') as f:
|
|
json.dump(self._settings, f, indent=2, sort_keys=True)
|