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
Предварительно удаляем старые отображения.