Назначить методы класса из файла YAML - PullRequest
0 голосов
/ 21 сентября 2010

Короче говоря, я написал приложение, которое анализирует текстовые файлы в указанных форматах из разных каналов электронной почты. В настоящее время пользователи могут использовать два формата для правильной загрузки информации. Я также включил простой файл YAML, который позволяет людям, не имеющим опыта программирования (например, системным администраторам), определять основные параметры синтаксического анализа, такие как разделители, для каждого отдельного канала электронной почты.

Как выяснилось, пользователям потребуется гораздо больше форматов, чем я определил. Как в совершенно другом формате алгоритма синтаксического анализа.

Поскольку кому-то, не знакомому с источником, будет трудно постоянно добавлять / обновлять методы синтаксического анализа, моя идея состоит в том, чтобы позволить администратору определять пользовательские методы в файле YAML следующим образом:

parser: !!python/name:modules.custom.parser

Таким образом, администратор может определить свой собственный метод анализа, называемый, например, modules.custom.parser, без необходимости копаться в исходном коде.

Играю ли я с огнем, позволяя администратору динамически загружать свои собственные методы?

1 Ответ

1 голос
/ 21 сентября 2010

Я не думаю, что идея иметь «исполняемые файлы конфигурации» плохая, но я думаю, что сочетание кода YAML и Python может сбить с толку.Возможно, вместо этого вы могли бы пойти по пути Xen, SCons, hellanzb и т. Д., И ваш «конфигурационный файл» был бы просто скриптом Python?

...