Я предлагаю использовать подклассы ConfigParser.ConfigParser
(или SafeConfigParser
, & c) для безопасного доступа к «защищенным» атрибутам (имена, начинающиеся с одного подчеркивания - «private» - это имена, начинающиеся с двух подчеркиваний,недоступно даже в подклассах ...):
import ConfigParser
class MyParser(ConfigParser.ConfigParser):
def as_dict(self):
d = dict(self._sections)
for k in d:
d[k] = dict(self._defaults, **d[k])
d[k].pop('__name__', None)
return d
Это эмулирует обычную логику парсеров конфигурации и гарантированно работает во всех версиях Python, где есть модуль ConfigParser.py
(до2.7, который является последним из серии 2.*
- зная, что будущих версий Python 2.any не будет, то как совместимость может быть гарантирована ; -).
Если вынеобходимо поддерживать будущие версии Python 3.*
(до версии 3.1 и, вероятно, скоро выйдет версия 3.2, все должно быть в порядке, просто переименовав модуль в строчные configparser
вместо этого, конечно) может потребоваться некоторое внимание / настройки через несколько летдорога, но я бы не ожидал ничего серьезного.