Углубленное использование¶
Конфигурация ВСПТД-параметров¶
Есть возможность создавать собственные конфигурации ВСПТД-параметров для дальнейшего их применения.
Конфигурация влияет на строковое представление ВСПТД-структур, валидацию параметров, а также разбор строк на ВСПТД-структуры.
Настройка конфигурации производится с помощью класса vsptd.VSPTDSettings.
Описание API¶
Создание конфигурации¶
Примечание
Инициализация конфигурации производится со стандартными настройками.
Соответственно все классы (например, vsptd.vsptd.Trp) также инициализируются со стандартными настройками.
Значения параметров по умолчанию можно изучить в описании API класса.
>>> my_settings = VSPTDSettings()
Изменение параметров¶
>>> my_settings.trp_start = '~'
>>> my_settings.prefix_min = 5
>>> my_settings.prefix_max = 100
>>> my_settings.prefix_regexp = '.*'
Применение конфигурации¶
>>> Trp.settings = my_settings
>>> TrpStr.settings = my_settings
>>> TrpExpr.settings = my_settings
Предупреждение
Применить настройки можно и к экземплярам классов, делать однако так не надо.
Работа с исключениями¶
Исключения, выбрасываемые модулями, содержат подробную информацию о возникших ошибках.
Любое исключение содержит в себе два параметра:
- описание ошибки;
- объект (или объекты в
tuple), который привёл к возникновению ошибки.
Обработать исключение и получить из него параметры можно следующим образом:
>>> try:
... Trp('A', 'B', {'z': 0})
... except TypeError as e:
... print(e.args)
... print(e.args[0]) # описание ошибки
... print(e.args[1]) # объект, который привёл к возникновению ошибки
('Значение должно быть str, int, float, bool, Trp, TrpExpr, не dict', {'z': 0})
Значение должно быть str, int, float, bool, Trp, TrpExpr, не dict
{'z': 0}
Использование других типов данных в качестве значения триплета¶
Можно использовать и типы данных, что не поддерживаются в библиотеке в качестве значения триплета (например, триплетная строка). Для этого их нужно просто представлять в виде строки.
>>> Trp('A', 'B', str([1, 2, 3]))
$A.B='[1, 2, 3]';