|
|
@@ -1,112 +0,0 @@
|
|
|
-from PikaStdData import String
|
|
|
-
|
|
|
-class ConfigParser():
|
|
|
- content = ''
|
|
|
- config_dict = {}
|
|
|
-
|
|
|
- def _parse(self):
|
|
|
- self.content = String(self.content).replace('\r', '')
|
|
|
- content = String(self.content)
|
|
|
- lines = content.split('\n')
|
|
|
- for line in lines:
|
|
|
- line = String(line)
|
|
|
- if line.startwith('#'):
|
|
|
- continue
|
|
|
- if line.startwith(';'):
|
|
|
- continue
|
|
|
- if line.startwith('['):
|
|
|
- section = String(line.replace('[', ''))
|
|
|
- section = section.replace(']', '')
|
|
|
- self.config_dict[section] = {}
|
|
|
- continue
|
|
|
-
|
|
|
- if line.strip() == '':
|
|
|
- continue
|
|
|
-
|
|
|
- stmt = line.split('=')
|
|
|
- key = String(stmt[0]).strip()
|
|
|
- value = String(_getvalue(stmt)).strip()
|
|
|
- section_dict = self.config_dict[section]
|
|
|
- section_dict[key] = value
|
|
|
-
|
|
|
- def sections(self):
|
|
|
- section_keys = self.config_dict.keys()
|
|
|
- sections = []
|
|
|
- for section_item in section_keys:
|
|
|
- sections.append(section_item)
|
|
|
- return sections
|
|
|
-
|
|
|
- def options(self, section):
|
|
|
- section_dict = self.config_dict[section]
|
|
|
- option_keys = section_dict.keys()
|
|
|
- options = []
|
|
|
- for option_item in option_keys:
|
|
|
- options.append(option_item)
|
|
|
- return options
|
|
|
-
|
|
|
- def get(self, section, option):
|
|
|
- section_dict = self.config_dict[section]
|
|
|
- return section_dict[option]
|
|
|
-
|
|
|
- def set(self, section, option, value):
|
|
|
- section_dict = self.config_dict[section]
|
|
|
- section_dict[option] = value
|
|
|
-
|
|
|
- # support config[key] = val
|
|
|
- def __set__(self, __key, __val):
|
|
|
- self.config_dict[__key] = __val
|
|
|
-
|
|
|
- # support val = config[key]
|
|
|
- def __get__(self, __key):
|
|
|
- return self.config_dict[__key]
|
|
|
-
|
|
|
- def items(self, section):
|
|
|
- section_dict = self.config_dict[section]
|
|
|
- section_keys = section_dict.keys()
|
|
|
- items = []
|
|
|
- for key in section_keys:
|
|
|
- val = section_dict[key]
|
|
|
- items.append([key, val])
|
|
|
- return items
|
|
|
-
|
|
|
- def __str__(self):
|
|
|
- content = ''
|
|
|
- section_keys = self.config_dict.keys()
|
|
|
- for section_item in section_keys:
|
|
|
- content += '[' + section_item + ']\n'
|
|
|
- section_dict = self.config_dict[section_item]
|
|
|
- section_keys = section_dict.keys()
|
|
|
- for key in section_keys:
|
|
|
- val = section_dict[key]
|
|
|
- content += key + ' = ' + val + '\n'
|
|
|
- content += '\n'
|
|
|
- return content
|
|
|
-
|
|
|
- def write(self, file_name):
|
|
|
- print('Error: write() method not implemented')
|
|
|
- raise
|
|
|
- self.content = self.__str__(self)
|
|
|
- print(self.content)
|
|
|
-
|
|
|
- def read_string(self, content):
|
|
|
- self.content = content
|
|
|
- self._parse()
|
|
|
-
|
|
|
- def read(self, file_name):
|
|
|
- print('Error: read() method not implemented')
|
|
|
- raise
|
|
|
- content = ''
|
|
|
- self.content = content
|
|
|
- self._parse()
|
|
|
-
|
|
|
-def _getvalue(stmt):
|
|
|
- index = 0
|
|
|
- val = ''
|
|
|
- for item in stmt:
|
|
|
- if index > 0:
|
|
|
- if val != '':
|
|
|
- val += ('=' + item)
|
|
|
- else:
|
|
|
- val += item
|
|
|
- index = index + 1
|
|
|
- return val
|