Part of spamfighter.utils View Source
Превращает xml файл с конфигом в питоновскую структуру настроек
Парсинг xml ===========
<variable>value</variable> >>>variable "value"
<variable type="int">5</variable> >>>variable 5
<parent>
<child>value</child>
<child2>value</child>
</parent>
>>>parent.child
"value"
>>>parent.child2
"value"
<parent>
<items id = 'first'>value1</items>
<items id = 'second'>value2</items>
</parent>
>>>parent.items['first']
"value1"
Структура xml конфига ===================== :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE config>
<config>
<global>
<!-- основная секция. Все что находится в этой секции будет доступно как аттрибуты модуля config -->
<servers>
<!-- список "боевых" серверов. -->
<server id="1">
<hostname>webmorda.netstream.ru</hostname>
</server>
</servers>
<some_my_params>some my value</some_my_params>
</global>
<local>
</local>
<development>
<!-- девелоперские настройки. Эта секция будет подключена в случае если сервер на котором запущено приложение, не в списке "боевых" серверов.
Настройки из этого раздела перезаписывают одноименные настроки из основного раздела -->
<some_my_params>some my value</some_my_params>
</development>
<testing>
<!-- тестировочный раздел. Будет подключен если приложение запущено из под trial. Настройки из этого раздела перетирают одноименные настройки
из основного и девелоперского разделов.
<some_my_params>some my value</some_my_params>
</testing>
</config>
Пример использования ====================
from spamfighter.utils import config # в случае если используется конфигурационный файл ./config.xml - этой строки достаточно config.load("cfg.py") print config.some_my_params
| Function | parse_file | Парсим переданный файл и возвращаем объект Cfg |
| Function | load | Загружаем переданный файл с конфигом или конфиг по умолчанию и |
| Class | Cfg | Класс в который мы заворачиваем хеш. Нужен для того, чтобы нормально отображать штуки типа config.db.dsn |
| Class | ParseException | Исключение кидаемое при попытке распарсить файл с некорректной структурой |
| Function | _parse_dom | Undocumented |
| Function | _get_class_by_name | Undocumented |
| Function | _is_numeric_dict | Undocumented |
| Function | _deep_merge | пробегаемся по всему хешу |
| Function | _get_path | Undocumented |
| Function | _load_file | Загружаем указанный файл и возвращаем его в качестве конфигурационного. |
| Function | _export_config | Экспортирует указанный конфигурационный файл в качетсве атрибутов данного модуля. |
Данный метод НЕ парсит секции global, development и проч, а просто переводит xml в питоновский объект
Использование: from spamfighet.utils.config import parse_file cfg = parse_file('cfg.xml') print cfg.some_my_params
| Parameters | filename | имя файла с конфигом @rtype : Cfg @return :
экземпляр Cfg c настройками
(type: str
) |
Использование: from spamfighther.utils import config config.load("cfg.xml") print config.some_my_param
Предварительно удаляем старые отображения.