Я создаю набор файлов SVG, которые включают в себя неудачное количество жестко закодированных значений (они должны печататься с элементами размером в мм, тогда как другие должны масштабироваться в процентах, и большинство значений определяются относительно каждого Другой). Вместо того, чтобы управлять этими числами вручную (не дай бог, я хочу что-то изменить), я подумал, что мог бы использовать мой надежный молоток-питон для этой задачи.
SVG 1.1 изначально не поддерживает какие-либо схемы переменных, которые позволили бы мне делать то, что я хочу, и я не заинтересован в том, чтобы включать в микс javascript или нестабильные черновые спецификации w3c. Одним из очевидных решений является использование форматирования строк для чтения, анализа и замены переменных в моем SVG-файле. Это кажется плохой идеей для больших документов, но имеет преимущество в простоте и портативности.
Во-вторых, я должен был изучить доступные библиотеки python-> svg. К сожалению, кажется, что несколько опций имеют тенденцию быть либо слишком новыми ( pySVG все еще имеет нестабильный интерфейс), либо слишком старыми (не обновляющимися с 2005 года), либо заброшенными. Я не присматривался, но я чувствую, что графические приложения недостаточно гибки для создания моих документов.
Третий вариант, с которым я столкнулся, - это использование какого-либо другого инструмента рисования (например, cairo), который можно убедить выпустить svg. Это имеет (потенциальный) недостаток, заключающийся в том, что он изначально не поддерживает абсолютные размеры элементов, которые так важны для меня, но могут включать возможность вывода PDF, что было бы удобно.
Я уже выполнил поиск в Google, поэтому я ищу информацию от людей, которые использовали любой из упомянутых методов, или кто мог бы знать о каком-то другом подходе. Для меня важна долгосрочная стабильность любого решения, которое было выбрано (это было первоначальной причиной ручного кодирования, а не просто использования иллюстратора).
На данный момент я склоняюсь к первому решению, поэтому приветствуются рекомендации по передовым методам использования python для анализа и замены переменных в файлах XML.