Если необходимо сохранить произвольные графики, не только иерархии, Вы могли бы продвинуть Пост-ГРЭС стороне и попробовать базу данных графика такой как AllegroGraph:
Все в базе данных графика хранится как тройное (исходный узел, край, целевой узел), и это оказывает Вам поддержку первого класса управления структурой графика и запросов его с помощью SQL как язык.
Это не интегрируется хорошо с чем-то, любят, в спящем режиме или Django ORM, но если Вы серьезно относитесь к структурам графика (не только, иерархии как модель Nested Set дают Вам), проверяют его.
я также полагаю, что Oracle наконец добавила поддержку реальных Графиков в их последних продуктах, но я поражен, что она заняла много времени, много проблем могло извлечь выгоду из этой модели.
Вам нужно экранировать значения. Я не уверен, какой именно формат требует Pango, но похоже, что это HTML, и функция cgi.escape может быть всем, что вам нужно.
import cgi
print "<span size='medium'><b>%s</b></span>\n%s" %
(cgi.escape(site_title), cgi.escape(URL))
glib.markup_escape_text
может быть более каноническим подходом при использовании GTK.